diff options
Diffstat (limited to 'Zend')
139 files changed, 5857 insertions, 5992 deletions
diff --git a/Zend/Zend.m4 b/Zend/Zend.m4 index 904f188681..6de6b0cf13 100644 --- a/Zend/Zend.m4 +++ b/Zend/Zend.m4 @@ -115,8 +115,6 @@ AC_ZEND_BROKEN_SPRINTF AC_CHECK_FUNCS(finite isfinite isinf isnan) ZEND_FP_EXCEPT - -ZEND_CHECK_FLOAT_PRECISION ]) diff --git a/Zend/acinclude.m4 b/Zend/acinclude.m4 index 37068a316b..77b9bbdeb4 100644 --- a/Zend/acinclude.m4 +++ b/Zend/acinclude.m4 @@ -4,7 +4,7 @@ dnl This file contains local autoconf functions. AC_DEFUN([LIBZEND_BISON_CHECK],[ # we only support certain bison versions - bison_version_list="1.28 1.35 1.75 1.875 2.0 2.1 2.2 2.3 2.4" + bison_version_list="1.28 1.35 1.75 1.875 2.0 2.1 2.2 2.3" # for standalone build of Zend Engine test -z "$SED" && SED=sed @@ -105,117 +105,3 @@ int main(void) AC_DEFUN([AM_SET_LIBTOOL_VARIABLE],[ LIBTOOL='$(SHELL) $(top_builddir)/libtool $1' ]) - -dnl x87 floating point internal precision control checks -dnl See: http://wiki.php.net/rfc/rounding -AC_DEFUN([ZEND_CHECK_FLOAT_PRECISION],[ - AC_MSG_CHECKING([for usable _FPU_SETCW]) - AC_TRY_LINK([ - #include <fpu_control.h> - ],[ - fpu_control_t fpu_oldcw, fpu_cw; - volatile double result; - double a = 2877.0; - volatile double b = 1000000.0; - - _FPU_GETCW(fpu_oldcw); - fpu_cw = (fpu_oldcw & ~_FPU_EXTENDED & ~_FPU_SINGLE) | _FPU_DOUBLE; - _FPU_SETCW(fpu_cw); - result = a / b; - _FPU_SETCW(fpu_oldcw); - ], [ac_cfp_have__fpu_setcw=yes], [ac_cfp_have__fpu_setcw=no]) - if test "$ac_cfp_have__fpu_setcw" = "yes" ; then - AC_DEFINE(HAVE__FPU_SETCW, 1, [whether _FPU_SETCW is present and usable]) - AC_MSG_RESULT(yes) - else - AC_MSG_RESULT(no) - fi - - AC_MSG_CHECKING([for usable fpsetprec]) - AC_TRY_LINK([ - #include <machine/ieeefp.h> - ],[ - fp_prec_t fpu_oldprec; - volatile double result; - double a = 2877.0; - volatile double b = 1000000.0; - - fpu_oldprec = fpgetprec(); - fpsetprec(FP_PD); - result = a / b; - fpsetprec(fpu_oldprec); - ], [ac_cfp_have_fpsetprec=yes], [ac_cfp_have_fpsetprec=no]) - if test "$ac_cfp_have_fpsetprec" = "yes" ; then - AC_DEFINE(HAVE_FPSETPREC, 1, [whether fpsetprec is present and usable]) - AC_MSG_RESULT(yes) - else - AC_MSG_RESULT(no) - fi - - AC_MSG_CHECKING([for usable _controlfp]) - AC_TRY_LINK([ - #include <float.h> - ],[ - unsigned int fpu_oldcw; - volatile double result; - double a = 2877.0; - volatile double b = 1000000.0; - - fpu_oldcw = _controlfp(0, 0); - _controlfp(_PC_53, _MCW_PC); - result = a / b; - _controlfp(fpu_oldcw, _MCW_PC); - ], [ac_cfp_have__controlfp=yes], [ac_cfp_have__controlfp=no]) - if test "$ac_cfp_have__controlfp" = "yes" ; then - AC_DEFINE(HAVE__CONTROLFP, 1, [whether _controlfp is present usable]) - AC_MSG_RESULT(yes) - else - AC_MSG_RESULT(no) - fi - - AC_MSG_CHECKING([for usable _controlfp_s]) - AC_TRY_LINK([ - #include <float.h> - ],[ - unsigned int fpu_oldcw, fpu_cw; - volatile double result; - double a = 2877.0; - volatile double b = 1000000.0; - - _controlfp_s(&fpu_cw, 0, 0); - fpu_oldcw = fpu_cw; - _controlfp_s(&fpu_cw, _PC_53, _MCW_PC); - result = a / b; - _controlfp_s(&fpu_cw, fpu_oldcw, _MCW_PC); - ], [ac_cfp_have__controlfp_s=yes], [ac_cfp_have__controlfp_s=no]) - if test "$ac_cfp_have__controlfp_s" = "yes" ; then - AC_DEFINE(HAVE__CONTROLFP_S, 1, [whether _controlfp_s is present and usable]) - AC_MSG_RESULT(yes) - else - AC_MSG_RESULT(no) - fi - - AC_MSG_CHECKING([whether FPU control word can be manipulated by inline assembler]) - AC_TRY_LINK([ - /* nothing */ - ],[ - unsigned int oldcw, cw; - volatile double result; - double a = 2877.0; - volatile double b = 1000000.0; - - __asm__ __volatile__ ("fnstcw %0" : "=m" (*&oldcw)); - cw = (oldcw & ~0x0 & ~0x300) | 0x200; - __asm__ __volatile__ ("fldcw %0" : : "m" (*&cw)); - - result = a / b; - - __asm__ __volatile__ ("fldcw %0" : : "m" (*&oldcw)); - ], [ac_cfp_have_fpu_inline_asm_x86=yes], [ac_cfp_have_fpu_inline_asm_x86=no]) - if test "$ac_cfp_have_fpu_inline_asm_x86" = "yes" ; then - AC_DEFINE(HAVE_FPU_INLINE_ASM_X86, 1, [whether FPU control word can be manipulated by inline assembler]) - AC_MSG_RESULT(yes) - else - AC_MSG_RESULT(no) - fi -]) diff --git a/Zend/tests/bug38469.phpt b/Zend/tests/bug38469.phpt index 6afcaf5fd3..db507df357 100644 --- a/Zend/tests/bug38469.phpt +++ b/Zend/tests/bug38469.phpt @@ -8,16 +8,6 @@ var_dump($a); $b = array(array()); $b[0][0] = $b; var_dump($b); - -function f() { - $a = array(); - $a[0] = $a; - var_dump($a); - $b = array(array()); - $b[0][0] = $b; - var_dump($b); -} -f(); ?> --EXPECT-- array(1) { @@ -36,19 +26,3 @@ array(1) { } } } -array(1) { - [0]=> - array(0) { - } -} -array(1) { - [0]=> - array(1) { - [0]=> - array(1) { - [0]=> - array(0) { - } - } - } -} diff --git a/Zend/tests/bug42802.phpt b/Zend/tests/bug42802.phpt index 2aa7061f35..80ae02ba5e 100755 --- a/Zend/tests/bug42802.phpt +++ b/Zend/tests/bug42802.phpt @@ -11,30 +11,35 @@ 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(\bar $bar) { +function test5(Exception $e) { + echo "ok\n"; +} +function test6(::bar $bar) { echo "bug\n"; } $x = new bar(); -$y = new \Exception(); +$y = new Exception(); test1($x); test2($x); test3($x); test4($y); -test5($x); +test5($y); +test6($x); --EXPECTF-- ok ok ok ok +ok -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 +Catchable fatal error: Argument 1 passed to foo::test6() must be an instance of bar, instance of foo::bar given, called in %sbug42802.php on line 23 diff --git a/Zend/tests/bug42819.phpt b/Zend/tests/bug42819.phpt index f4387eb93b..565a019fac 100755 --- a/Zend/tests/bug42819.phpt +++ b/Zend/tests/bug42819.phpt @@ -4,100 +4,88 @@ 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::foo::C; +echo ::foo::C; +echo ::foo::foo::C; echo ArrayObject::STD_PROP_LIST . "\n"; echo E_ERROR . "\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"; + +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); @@ -138,24 +126,20 @@ print_r(bar5::$a4); print_r(bar5::$a5); print_r(bar5::$a6); print_r(bar5::$a7); -function oops($a = array(foo\unknown)){} -oops(); ?> ---EXPECTF-- -first -foo\C -foo\foo\C -foo\foo\foo::C -foo\foo::C -foo\foo::C +--EXPECT-- +foo::C +foo::C +foo::foo::C +foo::C +foo::foo::C 1 1 -second -foo\C -foo\foo\C -foo\foo\foo::C -foo\C -foo\foo::C +foo::C +foo::C +foo::foo::C +foo::C +foo::foo::C 1 1 Array @@ -164,11 +148,11 @@ Array ) Array ( - [12] => 0 + [11] => 0 ) Array ( - [32] => 0 + [22] => 0 ) Array ( @@ -192,11 +176,11 @@ Array ) Array ( - [12] => 11 + [11] => 11 ) Array ( - [32] => 11 + [22] => 11 ) Array ( @@ -216,31 +200,31 @@ Array ) Array ( - [11] => 12 + [11] => 11 ) Array ( - [12] => 12 + [11] => 11 ) Array ( - [32] => 12 + [22] => 11 ) Array ( - [11] => 12 + [11] => 11 ) Array ( - [22] => 12 + [22] => 11 ) Array ( - [1] => 12 + [1] => 11 ) Array ( - [1] => 12 + [1] => 11 ) Array ( @@ -248,11 +232,11 @@ Array ) Array ( - [12] => 1 + [11] => 1 ) Array ( - [32] => 1 + [22] => 1 ) Array ( @@ -276,11 +260,11 @@ Array ) Array ( - [12] => 1 + [11] => 1 ) Array ( - [32] => 1 + [22] => 1 ) Array ( @@ -298,5 +282,3 @@ 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 921f0090a9..0a6c7d7876 100755 --- a/Zend/tests/bug42820.phpt +++ b/Zend/tests/bug42820.phpt @@ -7,16 +7,16 @@ const ok = 0; class foo { const ok = 0; } -var_dump(defined('ns\\ok')); -var_dump(defined('ns\\bug')); -var_dump(defined('\\ns\\ok')); -var_dump(defined('\\ns\\bug')); -var_dump(defined('ns\\foo::ok')); -var_dump(defined('ns\\foo::bug')); -var_dump(defined('\\ns\\foo::ok')); -var_dump(defined('\\ns\\foo::bug')); -var_dump(defined('ns\\bar::bug')); -var_dump(defined('\\ns\\bar::bug')); +var_dump(defined('ns::ok')); +var_dump(defined('ns::bug')); +var_dump(defined('::ns::ok')); +var_dump(defined('::ns::bug')); +var_dump(defined('ns::foo::ok')); +var_dump(defined('ns::foo::bug')); +var_dump(defined('::ns::foo::ok')); +var_dump(defined('::ns::foo::bug')); +var_dump(defined('ns::bar::bug')); +var_dump(defined('::ns::bar::bug')); --EXPECT-- bool(true) bool(false) diff --git a/Zend/tests/bug42859.phpt b/Zend/tests/bug42859.phpt index 755f41f8d6..931e7fe0f7 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..2832acaeb8 100755 --- a/Zend/tests/bug43128.phpt +++ b/Zend/tests/bug43128.phpt @@ -1,7 +1,5 @@ --TEST-- Bug #43128 (Very long class name causes segfault) ---INI-- -memory_limit=128000000 --FILE-- <?php diff --git a/Zend/tests/bug43183.phpt b/Zend/tests/bug43183.phpt index a8ca698e9f..61313eb2c6 100755 --- a/Zend/tests/bug43183.phpt +++ b/Zend/tests/bug43183.phpt @@ -3,10 +3,10 @@ Bug #43183 ("use" of the same class in difference scripts results in a fatal err --FILE-- <?php namespace Test; -use Test\Foo; +use Test::Foo; class Foo {} class Bar {} -use Test\Bar; +use Test::Bar; echo "ok\n"; --EXPECT-- ok
\ No newline at end of file diff --git a/Zend/tests/bug43332_1.phpt b/Zend/tests/bug43332_1.phpt index 807c6cb545..ef32162100 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 b8adef3b13..916f6fa354 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 an invalid class name in %sbug43332_2.php on line 5 +Fatal error: '::self' is a wrong class name in %sbug43332_2.php on line 5 diff --git a/Zend/tests/bug43343.phpt b/Zend/tests/bug43343.phpt index 12f64fbd24..fa1d993ab8 100644 --- a/Zend/tests/bug43343.phpt +++ b/Zend/tests/bug43343.phpt @@ -8,4 +8,4 @@ $foo = 'bar'; var_dump(new namespace::$foo); ?> --EXPECTF-- -Parse error: syntax error, unexpected T_PAAMAYIM_NEKUDOTAYIM, expecting T_NS_SEPARATOR in %sbug43343.php on line 5 +Fatal error: Cannot use 'namespace' as a class name in %sbug43343.php on line 5 diff --git a/Zend/tests/bug43344_10.phpt b/Zend/tests/bug43344_10.phpt index e9f918cd61..d80a06ba05 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 b55cdccdea..4daa236f87 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 4d1e154f31..79dfc65cea 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 c6aaf92fb3..d4fff4ffdd 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 57766afa94..1c55559e26 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 579ed81ada..26a6b46a3b 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 97e08b3664..20feaf9afe 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 645ef33e7f..2ccd029825 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 38e1961aad..0597b585e0 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 94e00d9e1f..fab79feec2 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 eb694f7118..a9272d7472 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 31604e7a94..b3c5dfbdb7 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 ea70cf1039..bce0601abe 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 1abf9747c7..defdba810a 100644 --- a/Zend/tests/bug44653.phpt +++ b/Zend/tests/bug44653.phpt @@ -14,17 +14,13 @@ class B { static function fooBar() { echo "bag2\n"; } } function fooBar() { echo __FUNCTION__ . PHP_EOL; } -var_dump(\A\XX); +var_dump(A::XX); A::fooBar(); -\A\fooBar(); -B::fooBar(); fooBar(); -\B\fooBar(); +B::fooBar(); ?> --EXPECT-- int(1) -bag1 -A\fooBar -bag2 -B\fooBar -B\fooBar +A::fooBar +B::fooBar +B::fooBar diff --git a/Zend/tests/class_alias_012.phpt b/Zend/tests/class_alias_012.phpt index dd1c9b1072..01839668b8 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 4991d0fd31..d032e26541 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 c79c077187..d694e10752 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 930f2ee0e4..6e5c0093e8 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 a0dd249d55..4bcc5d9d0c 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 e2c7d9245e..1c2452cd7f 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 dd90e127f4..79049623f0 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 bar); +var_dump(new foo::bar); var_dump(new stdClass); -var_dump(new \baz); +var_dump(new ::baz); ?> --EXPECTF-- -object(foo\bar)#%d (0) { +object(foo::bar)#%d (0) { } -object(foo\bar)#%d (0) { +object(foo::bar)#%d (0) { } -object(foo\bar)#%d (0) { +object(foo::bar)#%d (0) { } diff --git a/Zend/tests/class_constants_004.phpt b/Zend/tests/class_constants_004.phpt index 73a42ede7a..104ceb1bb6 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 8af96a49fc..4ee1ee2925 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/closure_027.phpt b/Zend/tests/closure_027.phpt index f26e114045..7787f729e5 100644 --- a/Zend/tests/closure_027.phpt +++ b/Zend/tests/closure_027.phpt @@ -25,7 +25,7 @@ NULL Notice: Undefined variable: y in %s on line %d -Warning: Missing argument 1 for {closure}(), called in %s on line %d and defined in %s on line %d +Warning: Missing argument 1 for (), called in %s on line %d and defined in %s on line %d NULL Catchable fatal error: Argument 1 passed to test() must be an instance of Closure, instance of stdClass given, called in %s on line %d and defined in %s on line %d diff --git a/Zend/tests/constants_003.phpt b/Zend/tests/constants_003.phpt index 205f95f036..ec3eb6d4ff 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 69369aa3d9..787ec26e72 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 6458a07825..24851531bc 100644 --- a/Zend/tests/constants_006.phpt +++ b/Zend/tests/constants_006.phpt @@ -26,7 +26,7 @@ var_dump(__namespace__); string(%d) "%s" string(%d) "%s" int(%d) -string(21) "test\foo::__construct" -string(8) "test\foo" +string(22) "test::foo::__construct" +string(9) "test::foo" string(11) "__construct" string(4) "test" diff --git a/Zend/tests/constants_009.phpt b/Zend/tests/constants_009.phpt index ea986dd3c7..c84760be81 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,10 +12,8 @@ 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/hex_overflow_32bit.phpt b/Zend/tests/hex_overflow_32bit.phpt index 0f192f3497..36e9a7e9d3 100644 --- a/Zend/tests/hex_overflow_32bit.phpt +++ b/Zend/tests/hex_overflow_32bit.phpt @@ -22,7 +22,7 @@ foreach ($doubles as $d) { echo "Done\n"; ?> --EXPECTF-- -float(4.0833602971%dE+14) +float(4083360297110%d) float(4.7223664828%dE+21) float(1.3521606402%dE+31) float(1.9807040628%dE+27) diff --git a/Zend/tests/inter_02.phpt b/Zend/tests/inter_02.phpt index 34e8baa5dc..18db230b21 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 be78784d55..f4d8a03cd8 100644 --- a/Zend/tests/interface_exists_002.phpt +++ b/Zend/tests/interface_exists_002.phpt @@ -13,8 +13,8 @@ interface IBar extends IFoo { } var_dump(interface_exists('IFoo')); -var_dump(interface_exists('foo\\IFoo')); -var_dump(interface_exists('FOO\\ITEST')); +var_dump(interface_exists('foo::IFoo')); +var_dump(interface_exists('FOO::ITEST')); ?> --EXPECT-- diff --git a/Zend/tests/lsb_014.phpt b/Zend/tests/lsb_014.phpt index 19cf913710..34ee7b48ce 100644 --- a/Zend/tests/lsb_014.phpt +++ b/Zend/tests/lsb_014.phpt @@ -1,5 +1,5 @@ ---TEST-- -ZE2 Late Static Binding access to static::const through defined() and get_constant() +--TEST-- +ZE2 Late Static Binding access to static::const through defined() anf get_constant() --FILE-- <?php diff --git a/Zend/tests/ns_001.phpt b/Zend/tests/ns_001.phpt index 67715947af..6821756a43 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 3d9e09869d..7faca97cd3 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 4372722c25..26c21a9ff0 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 d293f65dce..2aa4a809d9 100755 --- a/Zend/tests/ns_004.phpt +++ b/Zend/tests/ns_004.phpt @@ -1,9 +1,9 @@ --TEST-- -004: Using global class name from namespace (unqualified - fail) +004: Name conflict (php name) --FILE-- <?php -namespace test\ns1; +namespace test::ns1; echo get_class(new Exception()),"\n"; ---EXPECTF-- -Fatal error: Class 'test\ns1\Exception' not found in %sns_004.php on line %d
\ No newline at end of file +--EXPECT-- +Exception diff --git a/Zend/tests/ns_005.phpt b/Zend/tests/ns_005.phpt index c082afc481..fc1d6570fd 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 1c0ec3ab08..f4027408d4 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 2f4d1361dc..60ccced504 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 2c2c9180cf..1c0d116483 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 3481316f28..3d6aa225d6 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 28ef61bcdd..95172e0ec3 100755 --- a/Zend/tests/ns_010.phpt +++ b/Zend/tests/ns_010.phpt @@ -15,27 +15,35 @@ class Foo { } } new Foo(); -new Y\Foo(); -new \X\Foo(); +new X::Foo(); +new Y::Foo(); +new ::X::Foo(); Foo::bar(); -Y\Foo::bar(); -\X\Foo::bar(); +X::Foo::bar(); +Y::Foo::bar(); +::X::Foo::bar(); echo Foo::C; -echo Y\Foo::C; -echo \X\Foo::C; +echo X::Foo::C; +echo Y::Foo::C; +echo ::X::Foo::C; echo Foo::$var; -echo Y\Foo::$var; -echo \X\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 1706f2a00d..c1d9ac3018 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 034f124924..ce16db1ab9 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 ef73b1395f..945b6bc4ec 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 6bcab51c83..9614b481a4 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 ae2c818345..1ad05b963f 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 bee8b5bee3..e278625e61 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 888d8e5ef4..15ff1efee8 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 5c2495c631..be8b4b7d34 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 c3db786867..c42e97ed18 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 ec4fda0298..9d2e8a7ccb 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 405468399f..01609bb607 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 7aebe1d5a2..6944ca403f 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 bc1681c122..4be9dc700a 100755 --- a/Zend/tests/ns_023.phpt +++ b/Zend/tests/ns_023.phpt @@ -2,10 +2,10 @@ 023: __NAMESPACE__ constant --FILE-- <?php -namespace test\foo; +namespace test::foo; var_dump(__NAMESPACE__); --EXPECT-- -string(8) "test\foo" +string(9) "test::foo" --UEXPECT-- -unicode(8) "test\foo" +unicode(9) "test::foo" diff --git a/Zend/tests/ns_025.phpt b/Zend/tests/ns_025.phpt index 917a710d95..e5c8ab0044 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 af2bf2ca55..ad8654db5f 100755 --- a/Zend/tests/ns_026.phpt +++ b/Zend/tests/ns_026.phpt @@ -18,16 +18,13 @@ function Bar() { } $x = new Foo; -\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 +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 diff --git a/Zend/tests/ns_027.inc b/Zend/tests/ns_027.inc index 3823818290..014bc40552 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 88ef22f93b..064d0521f9 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 ec23dac818..1b34a594b1 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 f1aa954ae3..d719e9e7cf 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 69724159ee..8aa3223f7e 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 840c08621c..3991c5a107 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 5717a33685..86b24fcdc4 100755 --- a/Zend/tests/ns_032.phpt +++ b/Zend/tests/ns_032.phpt @@ -12,8 +12,8 @@ function foo() { echo __FUNCTION__,"\n"; } -call_user_func(__NAMESPACE__."\\foo"); -call_user_func(__NAMESPACE__."\\test::foo"); +call_user_func(__NAMESPACE__."::foo"); +call_user_func(__NAMESPACE__."::test::foo"); --EXPECT-- foo Test::foo diff --git a/Zend/tests/ns_034.phpt b/Zend/tests/ns_034.phpt index 76775f1180..f8669cfb74 100755 --- a/Zend/tests/ns_034.phpt +++ b/Zend/tests/ns_034.phpt @@ -10,18 +10,23 @@ class Foo { function f1($x=Foo::C) { echo $x; } -function f2($x=B\Foo::C) { +function f2($x=A::Foo::C) { echo $x; } -function f3($x=\A\Foo::C) { +function f3($x=B::Foo::C) { + echo $x; +} +function f4($x=::A::Foo::C) { echo $x; } echo Foo::C; -echo B\Foo::C; -echo \A\Foo::C; +echo A::Foo::C; +echo B::Foo::C; +echo ::A::Foo::C; f1(); f2(); f3(); +f4(); --EXPECT-- ok ok @@ -29,3 +34,5 @@ ok ok ok ok +ok +ok diff --git a/Zend/tests/ns_035.phpt b/Zend/tests/ns_035.phpt index fcc771a74e..259d17f6e3 100755 --- a/Zend/tests/ns_035.phpt +++ b/Zend/tests/ns_035.phpt @@ -5,16 +5,14 @@ --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 245cf7d5b5..6fee2cb006 100755 --- a/Zend/tests/ns_036.phpt +++ b/Zend/tests/ns_036.phpt @@ -12,23 +12,28 @@ class ArrayObject { function f1($x = ArrayObject::STD_PROP_LIST) { var_dump($x); } -function f2($x = \ArrayObject::STD_PROP_LIST) { +function f2($x = ::ArrayObject::STD_PROP_LIST) { var_dump($x); } -function f3($x = \A\ArrayObject::STD_PROP_LIST) { +function f3($x = A::ArrayObject::STD_PROP_LIST) { var_dump($x); } -function f4($x = B\ArrayObject::STD_PROP_LIST) { +function f4($x = B::ArrayObject::STD_PROP_LIST) { + var_dump($x); +} +function f5($x = ::A::ArrayObject::STD_PROP_LIST) { var_dump($x); } var_dump(ArrayObject::STD_PROP_LIST); -var_dump(\ArrayObject::STD_PROP_LIST); -var_dump(B\ArrayObject::STD_PROP_LIST); -var_dump(\A\ArrayObject::STD_PROP_LIST); +var_dump(::ArrayObject::STD_PROP_LIST); +var_dump(A::ArrayObject::STD_PROP_LIST); +var_dump(B::ArrayObject::STD_PROP_LIST); +var_dump(::A::ArrayObject::STD_PROP_LIST); f1(); f2(); f3(); f4(); +f5(); ?> --EXPECT-- int(2) @@ -36,6 +41,8 @@ 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 db0a76e940..ed36e0bb57 100755 --- a/Zend/tests/ns_037.phpt +++ b/Zend/tests/ns_037.phpt @@ -15,27 +15,35 @@ class X { } } new X(); -new Y\X(); -new \X\X(); +new X::X(); +new Y::X(); +new ::X::X(); X::bar(); -Y\X::bar(); -\X\X::bar(); +X::X::bar(); +Y::X::bar(); +::X::X::bar(); echo X::C; -echo Y\X::C; -echo \X\X::C; +echo X::X::C; +echo Y::X::C; +echo ::X::X::C; echo X::$var; -echo Y\X::$var; -echo \X\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 f3a8c8cc63..fcaa3c4454 100755 --- a/Zend/tests/ns_038.phpt +++ b/Zend/tests/ns_038.phpt @@ -6,8 +6,8 @@ namespace Exception; function foo() { echo "ok\n"; } -\Exception\foo(); -\Exception::bar(); +Exception::foo(); +Exception::bar(); --EXPECTF-- ok diff --git a/Zend/tests/ns_040.phpt b/Zend/tests/ns_040.phpt index 42a3ac07e9..fb2314466c 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 0632fc9815..889f3d82c9 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 ba420a7c80..eecd5f9256 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 bd5ee7440b..63bd05eaaf 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 dbdee2e523..d379b97a24 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 d45f9cf99d..d8c942948e 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 d5203f14dc..e48f0cef24 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 73e32a0de7..89795da256 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 db21f89103..3837643cf2 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 91e516579b..3e5ccc6783 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 f827ec858d..9171f6c4b1 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 b95b53f78b..07985ba106 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 cb0a05ff9f..1f2c4a073f 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 bc5ab12cdb..8df545face 100644 --- a/Zend/tests/ns_053.phpt +++ b/Zend/tests/ns_053.phpt @@ -2,11 +2,11 @@ 053: Run-time constant definition --FILE-- <?php -namespace test\ns1; +namespace test::ns1; -define(__NAMESPACE__ . '\\NAME', basename(__FILE__)); +define(__NAMESPACE__ . '::NAME', basename(__FILE__)); echo NAME."\n"; -echo \test\ns1\NAME."\n"; +echo test::ns1::NAME."\n"; --EXPECT-- ns_053.php ns_053.php diff --git a/Zend/tests/ns_054.phpt b/Zend/tests/ns_054.phpt index 54ab958611..0eb9e0448f 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 a692e47601..83d0613c1e 100755 --- a/Zend/tests/ns_055.phpt +++ b/Zend/tests/ns_055.phpt @@ -2,27 +2,32 @@ 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) { + function test3(Exception $x) { + echo "ok\n"; + } + function test4(::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 2390608d4e..0bc4f0087d 100755 --- a/Zend/tests/ns_056.phpt +++ b/Zend/tests/ns_056.phpt @@ -4,16 +4,15 @@ <?php if (!extension_loaded("spl")) die("skip SPL is no available"); ?> --FILE-- <?php -namespace test\ns1; -use \SplObserver; +namespace test::ns1; 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 13bf3054cc..cfa02f923f 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 namespace) +057: Usage of 'namespace' in compound names (inside namespase) --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,27 +22,26 @@ class foo { } } -function f1($x=namespace\C) { +function f1($x=namespace::C) { return $x; } -function f2($x=namespace\foo::C) { +function f2($x=namespace::foo::C) { return $x; } -function f3(namespace\foo $x) { +function f3(namespace::foo $x) { return "ok\n"; } -echo namespace\C; -echo namespace\foo(); -echo namespace\foo::C; -echo namespace\foo::C2; -echo namespace\foo::$var; -echo namespace\foo::bar(); -echo namespace\f1(); -echo namespace\f2(); -echo namespace\f3(new namespace\foo()); -echo namespace\unknown; +echo namespace::C; +echo namespace::foo(); +echo namespace::foo::C; +echo namespace::foo::C2; +echo namespace::foo::$var; +echo namespace::foo::bar(); +echo namespace::f1(); +echo namespace::f2(); +echo namespace::f3(new namespace::foo()); ?> --EXPECTF-- const ok @@ -55,5 +54,3 @@ 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 7a0cd97d92..6c86f10f9d 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,29 +20,28 @@ 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\unknown; +echo namespace::C; +echo namespace::foo(); +echo namespace::foo::C; +echo namespace::foo::C2; +echo namespace::foo::$var; +echo namespace::foo::bar(); +echo namespace::f1(); +echo namespace::f2(); +echo namespace::f3(new namespace::foo()); ?> ---EXPECTF-- +--EXPECT-- const ok func ok const ok @@ -53,5 +52,3 @@ 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_060.phpt b/Zend/tests/ns_060.phpt index 16c8024f00..cc86d0e087 100644 --- a/Zend/tests/ns_060.phpt +++ b/Zend/tests/ns_060.phpt @@ -3,21 +3,21 @@ --FILE-- <?php namespace Foo; -use Bar\A as B; +use Bar::A as B; class A {} $a = new B; $b = new A; echo get_class($a)."\n"; echo get_class($b)."\n"; namespace Bar; -use Foo\A as B; +use Foo::A as B; $a = new B; $b = new A; echo get_class($a)."\n"; echo get_class($b)."\n"; class A {} --EXPECT-- -Bar\A -Foo\A -Foo\A -Bar\A +Bar::A +Foo::A +Foo::A +Bar::A diff --git a/Zend/tests/ns_061.phpt b/Zend/tests/ns_061.phpt index 948f675d6d..a02f63d71f 100644 --- a/Zend/tests/ns_061.phpt +++ b/Zend/tests/ns_061.phpt @@ -3,7 +3,7 @@ --FILE-- <?php class A {} -use \A as B; +use ::A as B; echo get_class(new B)."\n"; --EXPECT-- A diff --git a/Zend/tests/ns_062.phpt b/Zend/tests/ns_062.phpt index d795da4c68..07043dbf68 100644 --- a/Zend/tests/ns_062.phpt +++ b/Zend/tests/ns_062.phpt @@ -1,10 +1,10 @@ --TEST-- -062: use \global class +062: use ::global class --FILE-- <?php namespace Foo; -use \stdClass; -use \stdClass as A; +use ::stdClass; +use ::stdClass as A; echo get_class(new stdClass)."\n"; echo get_class(new A)."\n"; --EXPECT-- diff --git a/Zend/tests/ns_064.phpt b/Zend/tests/ns_064.phpt index 0a7c4bc82d..29e9e56714 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 963a74e140..a625a4a1b4 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 40ccd1e153..8d7e7fbb1a 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 881589cf2c..3a7d9a521f 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 c3c14b1468..09327b276d 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 b94eb30ead..c5096278db 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/zend_strtod.phpt b/Zend/tests/zend_strtod.phpt index 7f4bca5966..1b11be0388 100644 --- a/Zend/tests/zend_strtod.phpt +++ b/Zend/tests/zend_strtod.phpt @@ -15,5 +15,5 @@ echo "Done\n"; float(-100) float(808792757210) float(-4.5646456464565E+27) -float(-1.1276204760067E+16) +float(-11276204760067000) Done diff --git a/Zend/zend.h b/Zend/zend.h index af9e09aa1c..b499020ef5 100644 --- a/Zend/zend.h +++ b/Zend/zend.h @@ -516,7 +516,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_UNQUALIFIED 0x10 +#define IS_CONSTANT_RT_NS_CHECK 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 59ea7ab2bc..cf31d6ce3d 100644 --- a/Zend/zend_API.c +++ b/Zend/zend_API.c @@ -451,7 +451,7 @@ static char *zend_parse_arg_impl(int arg_num, zval **arg, va_list *va, char **sp } } break; - case 'A': + case 'a': { zval **p = va_arg(*va, zval **); @@ -459,14 +459,14 @@ static char *zend_parse_arg_impl(int arg_num, zval **arg, va_list *va, char **sp *p = NULL; break; } - if (Z_TYPE_PP(arg) == IS_ARRAY || (c == 'A' && Z_TYPE_PP(arg) == IS_OBJECT)) { + if (Z_TYPE_PP(arg) == IS_ARRAY) { *p = *arg; } else { return "array"; } } break; - case 'H': + case 'h': { HashTable **p = va_arg(*va, HashTable **); @@ -476,11 +476,6 @@ static char *zend_parse_arg_impl(int arg_num, zval **arg, va_list *va, char **sp } if (Z_TYPE_PP(arg) == IS_ARRAY) { *p = Z_ARRVAL_PP(arg); - } else if(c == 'H' && Z_TYPE_PP(arg) == IS_OBJECT) { - *p = HASH_OF(*arg); - if(*p == NULL) { - return "array"; - } } else { return "array"; } @@ -675,8 +670,7 @@ static int zend_parse_va_args(int num_args, char *type_spec, va_list *va, int fl case 'o': case 'O': case 'z': case 'Z': case 'C': case 'h': - case 'f': case 'A': - case 'H': + case 'f': max_num_args++; break; @@ -1800,8 +1794,8 @@ ZEND_API int zend_register_functions(zend_class_entry *scope, const zend_functio if (scope) { class_name_len = strlen(scope->name); - if ((lc_class_name = zend_memrchr(scope->name, '\\', class_name_len))) { - ++lc_class_name; + if ((lc_class_name = zend_memrchr(scope->name, ':', class_name_len))) { + lc_class_name++; class_name_len -= (lc_class_name - scope->name); lc_class_name = zend_str_tolower_dup(lc_class_name, class_name_len); } else { @@ -2329,8 +2323,8 @@ static int zend_is_callable_check_class(const char *name, int name_len, zend_fca } else { fcc->called_scope = EG(called_scope); fcc->calling_scope = EG(scope); - if (!fcc->object_ptr) { - fcc->object_ptr = EG(This); + if (!fcc->object_pp) { + fcc->object_pp = EG(This) ? &EG(This) : NULL; } ret = 1; } @@ -2343,8 +2337,8 @@ static int zend_is_callable_check_class(const char *name, int name_len, zend_fca } else { fcc->called_scope = EG(called_scope); fcc->calling_scope = EG(scope)->parent; - if (!fcc->object_ptr) { - fcc->object_ptr = EG(This); + if (!fcc->object_pp) { + fcc->object_pp = EG(This) ? &EG(This) : NULL; } ret = 1; } @@ -2355,8 +2349,8 @@ static int zend_is_callable_check_class(const char *name, int name_len, zend_fca } else { fcc->called_scope = EG(called_scope); fcc->calling_scope = EG(called_scope); - if (!fcc->object_ptr) { - fcc->object_ptr = EG(This); + if (!fcc->object_pp) { + fcc->object_pp = EG(This) ? &EG(This) : NULL; } ret = 1; } @@ -2364,13 +2358,13 @@ static int zend_is_callable_check_class(const char *name, int name_len, zend_fca zend_class_entry *scope = EG(active_op_array) ? EG(active_op_array)->scope : NULL; fcc->calling_scope = *pce; - if (scope && !fcc->object_ptr && EG(This) && + if (scope && !fcc->object_pp && EG(This) && instanceof_function(Z_OBJCE_P(EG(This)), scope TSRMLS_CC) && instanceof_function(scope, fcc->calling_scope TSRMLS_CC)) { - fcc->object_ptr = EG(This); - fcc->called_scope = Z_OBJCE_P(fcc->object_ptr); + fcc->object_pp = &EG(This); + fcc->called_scope = Z_OBJCE_PP(fcc->object_pp); } else { - fcc->called_scope = fcc->object_ptr ? Z_OBJCE_P(fcc->object_ptr) : fcc->calling_scope; + fcc->called_scope = fcc->object_pp ? Z_OBJCE_PP(fcc->object_pp) : fcc->calling_scope; } ret = 1; } else { @@ -2400,11 +2394,13 @@ static int zend_is_callable_check_func(int check_flags, zval *callable, zend_fca fcc->function_handler = NULL; if (!ce_org) { - /* Skip leading \ */ - if (Z_STRVAL_P(callable)[0] == '\\') { - mlen = Z_STRLEN_P(callable) - 1; - mname = Z_STRVAL_P(callable) + 1; - lmname = zend_str_tolower_dup(Z_STRVAL_P(callable) + 1, mlen); + /* Skip leading :: */ + if (Z_STRVAL_P(callable)[0] == ':' && + Z_STRVAL_P(callable)[1] == ':' + ) { + mlen = Z_STRLEN_P(callable) - 2; + mname = Z_STRVAL_P(callable) + 2; + lmname = zend_str_tolower_dup(Z_STRVAL_P(callable) + 2, mlen); } else { mlen = Z_STRLEN_P(callable); mname = Z_STRVAL_P(callable); @@ -2469,23 +2465,10 @@ static int zend_is_callable_check_func(int check_flags, zval *callable, zend_fca lmname = zend_str_tolower_dup(mname, mlen); if (zend_hash_find(ftable, lmname, mlen+1, (void**)&fcc->function_handler) == SUCCESS) { retval = 1; - if ((fcc->function_handler->op_array.fn_flags & ZEND_ACC_CHANGED) && - EG(scope) && - instanceof_function(fcc->function_handler->common.scope, EG(scope) TSRMLS_CC)) { - zend_function *priv_fbc; - - if (zend_hash_find(&EG(scope)->function_table, lmname, mlen+1, (void **) &priv_fbc)==SUCCESS - && priv_fbc->common.fn_flags & ZEND_ACC_PRIVATE - && priv_fbc->common.scope == EG(scope)) { - fcc->function_handler = priv_fbc; - } - } - } else if (fcc->object_ptr) { - if (Z_OBJ_HT_P(fcc->object_ptr)->get_method) { - fcc->function_handler = Z_OBJ_HT_P(fcc->object_ptr)->get_method(&fcc->object_ptr, mname, mlen TSRMLS_CC); - retval = fcc->function_handler ? 1 : 0; - call_via_handler = 1; - } + } else if (fcc->object_pp && Z_OBJ_HT_PP(fcc->object_pp)->get_method) { + fcc->function_handler = Z_OBJ_HT_PP(fcc->object_pp)->get_method(fcc->object_pp, mname, mlen TSRMLS_CC); + retval = fcc->function_handler ? 1 : 0; + call_via_handler = 1; } else if (fcc->calling_scope) { if (fcc->calling_scope->get_static_method) { fcc->function_handler = fcc->calling_scope->get_static_method(fcc->calling_scope, mname, mlen TSRMLS_CC); @@ -2498,7 +2481,7 @@ static int zend_is_callable_check_func(int check_flags, zval *callable, zend_fca if (retval) { if (fcc->calling_scope && !call_via_handler) { - if (!fcc->object_ptr && !(fcc->function_handler->common.fn_flags & ZEND_ACC_STATIC)) { + if (!fcc->object_pp && !(fcc->function_handler->common.fn_flags & ZEND_ACC_STATIC)) { int severity; char *verb; if (fcc->function_handler->common.fn_flags & ZEND_ACC_ALLOW_STATIC) { @@ -2513,7 +2496,7 @@ static int zend_is_callable_check_func(int check_flags, zval *callable, zend_fca retval = 0; } if (EG(This) && instanceof_function(Z_OBJCE_P(EG(This)), fcc->calling_scope TSRMLS_CC)) { - fcc->object_ptr = EG(This); + fcc->object_pp = &EG(This); if (error) { zend_spprintf(error, 0, "non-static method %s::%s() %s be called statically, assuming $this from compatible context %s", fcc->calling_scope->name, fcc->function_handler->common.function_name, verb, Z_OBJCE_P(EG(This))->name); } else if (retval) { @@ -2529,7 +2512,7 @@ static int zend_is_callable_check_func(int check_flags, zval *callable, zend_fca } if (retval && (check_flags & IS_CALLABLE_CHECK_NO_ACCESS) == 0) { if (fcc->function_handler->op_array.fn_flags & ZEND_ACC_PRIVATE) { - if (!zend_check_private(fcc->function_handler, fcc->object_ptr ? Z_OBJCE_P(fcc->object_ptr) : EG(scope), lmname, mlen TSRMLS_CC)) { + if (!zend_check_private(fcc->function_handler, fcc->object_pp ? Z_OBJCE_PP(fcc->object_pp) : EG(scope), lmname, mlen TSRMLS_CC)) { if (error) { if (*error) { efree(*error); @@ -2560,8 +2543,8 @@ static int zend_is_callable_check_func(int check_flags, zval *callable, zend_fca } efree(lmname); - if (fcc->object_ptr) { - fcc->called_scope = Z_OBJCE_P(fcc->object_ptr); + if (fcc->object_pp) { + fcc->called_scope = Z_OBJCE_PP(fcc->object_pp); } if (retval) { fcc->initialized = 1; @@ -2570,7 +2553,7 @@ static int zend_is_callable_check_func(int check_flags, zval *callable, zend_fca } /* }}} */ -ZEND_API zend_bool zend_is_callable_ex(zval *callable, zval *object_ptr, uint check_flags, char **callable_name, int *callable_name_len, zend_fcall_info_cache *fcc, char **error TSRMLS_DC) /* {{{ */ +ZEND_API zend_bool zend_is_callable_ex(zval *callable, zval **object_pp, uint check_flags, char **callable_name, int *callable_name_len, zend_fcall_info_cache *fcc, char **error TSRMLS_DC) /* {{{ */ { zend_bool ret; int callable_name_len_local; @@ -2594,22 +2577,22 @@ ZEND_API zend_bool zend_is_callable_ex(zval *callable, zval *object_ptr, uint ch fcc->called_scope = NULL; fcc->function_handler = NULL; fcc->calling_scope = NULL; - fcc->object_ptr = NULL; + fcc->object_pp = NULL; - if (object_ptr && Z_TYPE_P(object_ptr) != IS_OBJECT) { - object_ptr = NULL; + if (object_pp && (!*object_pp || Z_TYPE_PP(object_pp) != IS_OBJECT)) { + object_pp = NULL; } - if (object_ptr && + if (object_pp && (!EG(objects_store).object_buckets || - !EG(objects_store).object_buckets[Z_OBJ_HANDLE_P(object_ptr)].valid)) { + !EG(objects_store).object_buckets[Z_OBJ_HANDLE_PP(object_pp)].valid)) { return 0; } switch (Z_TYPE_P(callable)) { case IS_STRING: - if (object_ptr) { - fcc->object_ptr = object_ptr; - fcc->calling_scope = Z_OBJCE_P(object_ptr); + if (object_pp && *object_pp) { + fcc->object_pp = object_pp; + fcc->calling_scope = Z_OBJCE_PP(object_pp); if (callable_name) { char *ptr; @@ -2687,7 +2670,7 @@ ZEND_API zend_bool zend_is_callable_ex(zval *callable, zval *object_ptr, uint ch fcc->calling_scope = Z_OBJCE_PP(obj); /* TBFixed: what if it's overloaded? */ - fcc->object_ptr = *obj; + fcc->object_pp = obj; if (callable_name) { char *ptr; @@ -2740,7 +2723,7 @@ ZEND_API zend_bool zend_is_callable_ex(zval *callable, zval *object_ptr, uint ch return 0; case IS_OBJECT: - if (Z_OBJ_HANDLER_P(callable, get_closure) && Z_OBJ_HANDLER_P(callable, get_closure)(callable, &fcc->calling_scope, &fcc->function_handler, &fcc->object_ptr TSRMLS_CC) == SUCCESS) { + if (Z_OBJ_HANDLER_P(callable, get_closure) && Z_OBJ_HANDLER_P(callable, get_closure)(callable, &fcc->calling_scope, &fcc->function_handler, NULL, &fcc->object_pp TSRMLS_CC) == SUCCESS) { fcc->called_scope = fcc->calling_scope; if (callable_name) { zend_class_entry *ce = Z_OBJCE_P(callable); /* TBFixed: what if it's overloaded? */ @@ -2811,7 +2794,7 @@ ZEND_API int zend_fcall_info_init(zval *callable, uint check_flags, zend_fcall_i fci->size = sizeof(*fci); fci->function_table = fcc->calling_scope ? &fcc->calling_scope->function_table : EG(function_table); - fci->object_ptr = fcc->object_ptr; + fci->object_pp = fcc->object_pp; fci->function_name = callable; fci->retval_ptr_ptr = NULL; fci->param_count = 0; diff --git a/Zend/zend_API.h b/Zend/zend_API.h index 2249f98e8b..d8b2b3fcff 100644 --- a/Zend/zend_API.h +++ b/Zend/zend_API.h @@ -48,7 +48,7 @@ typedef struct _zend_fcall_info { zval **retval_ptr_ptr; zend_uint param_count; zval ***params; - zval *object_ptr; + zval **object_pp; zend_bool no_separation; } zend_fcall_info; @@ -57,10 +57,10 @@ typedef struct _zend_fcall_info_cache { zend_function *function_handler; zend_class_entry *calling_scope; zend_class_entry *called_scope; - zval *object_ptr; + zval **object_pp; } zend_fcall_info_cache; -#define ZEND_NS_NAME(ns, name) ns"\\"name +#define ZEND_NS_NAME(ns, name) ns"::"name #define ZEND_FN(name) zif_##name #define ZEND_MN(name) zim_##name @@ -101,7 +101,7 @@ typedef struct _zend_fcall_info_cache { #define ZEND_ARG_OBJ_INFO(pass_by_ref, name, classname, allow_null) { #name, sizeof(#name)-1, #classname, sizeof(#classname)-1, 0, allow_null, pass_by_ref, 0, 0 }, #define ZEND_ARG_ARRAY_INFO(pass_by_ref, name, allow_null) { #name, sizeof(#name)-1, NULL, 0, 1, allow_null, pass_by_ref, 0, 0 }, #define ZEND_BEGIN_ARG_INFO_EX(name, pass_rest_by_reference, return_reference, required_num_args) \ - static const zend_arg_info name[] = { \ + const zend_arg_info name[] = { \ { NULL, 0, NULL, 0, 0, 0, pass_rest_by_reference, return_reference, required_num_args }, #define ZEND_BEGIN_ARG_INFO(name, pass_rest_by_reference) \ ZEND_BEGIN_ARG_INFO_EX(name, pass_rest_by_reference, ZEND_RETURN_VALUE, -1) @@ -277,7 +277,7 @@ ZEND_API void zend_wrong_param_count(TSRMLS_D); #define IS_CALLABLE_STRICT (IS_CALLABLE_CHECK_IS_STATIC) -ZEND_API zend_bool zend_is_callable_ex(zval *callable, zval *object_ptr, uint check_flags, char **callable_name, int *callable_name_len, zend_fcall_info_cache *fcc, char **error TSRMLS_DC); +ZEND_API zend_bool zend_is_callable_ex(zval *callable, zval **object_pp, uint check_flags, char **callable_name, int *callable_name_len, zend_fcall_info_cache *fcc, char **error TSRMLS_DC); ZEND_API zend_bool zend_is_callable(zval *callable, uint check_flags, char **callable_name TSRMLS_DC); ZEND_API zend_bool zend_make_callable(zval *callable, char **callable_name TSRMLS_DC); ZEND_API const char *zend_get_module_version(const char *module_name); diff --git a/Zend/zend_alloc.c b/Zend/zend_alloc.c index 3c6a17067b..1e11cf86ce 100644 --- a/Zend/zend_alloc.c +++ b/Zend/zend_alloc.c @@ -1068,26 +1068,16 @@ ZEND_API zend_mm_heap *zend_mm_startup_ex(const zend_mm_mem_handlers *handlers, } if (internal) { int i; - zend_mm_free_block *p, *q, *orig; + zend_mm_free_block *p; zend_mm_heap *mm_heap = _zend_mm_alloc_int(heap, sizeof(zend_mm_heap) ZEND_FILE_LINE_CC ZEND_FILE_LINE_EMPTY_CC); *mm_heap = *heap; p = ZEND_MM_SMALL_FREE_BUCKET(mm_heap, 0); - orig = ZEND_MM_SMALL_FREE_BUCKET(heap, 0); for (i = 0; i < ZEND_MM_NUM_BUCKETS; i++) { - q = p; - while (q->prev_free_block != orig) { - q = q->prev_free_block; - } - q->prev_free_block = p; - q = p; - while (q->next_free_block != orig) { - q = q->next_free_block; - } - q->next_free_block = p; + p->prev_free_block->next_free_block = p; + p->next_free_block->prev_free_block = p; p = (zend_mm_free_block*)((char*)p + sizeof(zend_mm_free_block*) * 2); - orig = (zend_mm_free_block*)((char*)orig + sizeof(zend_mm_free_block*) * 2); if (mm_heap->large_free_buckets[i]) { mm_heap->large_free_buckets[i]->parent = &mm_heap->large_free_buckets[i]; } diff --git a/Zend/zend_alloc.h b/Zend/zend_alloc.h index 0090c813e7..ae93b18a8b 100644 --- a/Zend/zend_alloc.h +++ b/Zend/zend_alloc.h @@ -200,12 +200,12 @@ ZEND_API size_t _zend_mm_block_size(zend_mm_heap *heap, void *p ZEND_FILE_LINE_D #define zend_mm_alloc(heap, size) _zend_mm_alloc((heap), (size) ZEND_FILE_LINE_CC ZEND_FILE_LINE_EMPTY_CC) #define zend_mm_free(heap, p) _zend_mm_free((heap), (p) ZEND_FILE_LINE_CC ZEND_FILE_LINE_EMPTY_CC) #define zend_mm_realloc(heap, p, size) _zend_mm_realloc((heap), (p), (size) ZEND_FILE_LINE_CC ZEND_FILE_LINE_EMPTY_CC) -#define zend_mm_block_size(heap, p) _zend_mm_block_size((heap), (p) ZEND_FILE_LINE_CC ZEND_FILE_LINE_EMPTY_CC) +#define zend_mm_block_size(heap, p) _zend_mm_block_size((heap), (p), ZEND_FILE_LINE_CC ZEND_FILE_LINE_EMPTY_CC) #define zend_mm_alloc_rel(heap, size) _zend_mm_alloc((heap), (size) ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_CC) #define zend_mm_free_rel(heap, p) _zend_mm_free((heap), (p) ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_CC) #define zend_mm_realloc_rel(heap, p, size) _zend_mm_realloc((heap), (p), (size) ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_CC) -#define zend_mm_block_size_rel(heap, p) _zend_mm_block_size((heap), (p) ZEND_FILE_LINE_CC ZEND_FILE_LINE_EMPTY_CC) +#define zend_mm_block_size_rel(heap, p) _zend_mm_block_size((heap), (p), ZEND_FILE_LINE_CC ZEND_FILE_LINE_EMPTY_CC) /* Heaps with user defined storage */ typedef struct _zend_mm_storage zend_mm_storage; diff --git a/Zend/zend_builtin_functions.c b/Zend/zend_builtin_functions.c index 0a936ed7f4..0e3dba8418 100644 --- a/Zend/zend_builtin_functions.c +++ b/Zend/zend_builtin_functions.c @@ -33,7 +33,7 @@ static ZEND_FUNCTION(zend_version); static ZEND_FUNCTION(func_num_args); static ZEND_FUNCTION(func_get_arg); static ZEND_FUNCTION(func_get_args); -static ZEND_FUNCTION(strlen); +static ZEND_NAMED_FUNCTION(zend_if_strlen); static ZEND_FUNCTION(strcmp); static ZEND_FUNCTION(strncmp); static ZEND_FUNCTION(strcasecmp); @@ -92,153 +92,276 @@ static ZEND_FUNCTION(gc_enable); static ZEND_FUNCTION(gc_disable); /* {{{ arginfo */ -ZEND_BEGIN_ARG_INFO(arginfo_zend__void, 0) +static +ZEND_BEGIN_ARG_INFO(arginfo_zend_version, 0) ZEND_END_ARG_INFO() +static +ZEND_BEGIN_ARG_INFO(arginfo_gc_collect_cycles, 0) +ZEND_END_ARG_INFO() + +static +ZEND_BEGIN_ARG_INFO(arginfo_gc_enabled, 0) +ZEND_END_ARG_INFO() + +static +ZEND_BEGIN_ARG_INFO(arginfo_gc_enable, 0) +ZEND_END_ARG_INFO() + +static +ZEND_BEGIN_ARG_INFO(arginfo_gc_disable, 0) +ZEND_END_ARG_INFO() + +static +ZEND_BEGIN_ARG_INFO(arginfo_func_num_args, 0) +ZEND_END_ARG_INFO() + +static ZEND_BEGIN_ARG_INFO_EX(arginfo_func_get_arg, 0, 0, 1) ZEND_ARG_INFO(0, arg_num) ZEND_END_ARG_INFO() +static +ZEND_BEGIN_ARG_INFO(arginfo_func_get_args, 0) +ZEND_END_ARG_INFO() + +static ZEND_BEGIN_ARG_INFO_EX(arginfo_strlen, 0, 0, 1) ZEND_ARG_INFO(0, str) ZEND_END_ARG_INFO() +static ZEND_BEGIN_ARG_INFO_EX(arginfo_strcmp, 0, 0, 2) ZEND_ARG_INFO(0, str1) ZEND_ARG_INFO(0, str2) ZEND_END_ARG_INFO() +static ZEND_BEGIN_ARG_INFO_EX(arginfo_strncmp, 0, 0, 3) ZEND_ARG_INFO(0, str1) ZEND_ARG_INFO(0, str2) ZEND_ARG_INFO(0, len) ZEND_END_ARG_INFO() +static +ZEND_BEGIN_ARG_INFO_EX(arginfo_strcasecmp, 0, 0, 2) + ZEND_ARG_INFO(0, str1) + ZEND_ARG_INFO(0, str2) +ZEND_END_ARG_INFO() + +static +ZEND_BEGIN_ARG_INFO_EX(arginfo_strncasecmp, 0, 0, 3) + ZEND_ARG_INFO(0, str1) + ZEND_ARG_INFO(0, str2) + ZEND_ARG_INFO(0, len) +ZEND_END_ARG_INFO() + +static ZEND_BEGIN_ARG_INFO_EX(arginfo_each, 0, 0, 1) ZEND_ARG_INFO(1, arr) ZEND_END_ARG_INFO() +static ZEND_BEGIN_ARG_INFO_EX(arginfo_error_reporting, 0, 0, 1) ZEND_ARG_INFO(0, new_error_level) ZEND_END_ARG_INFO() +static ZEND_BEGIN_ARG_INFO_EX(arginfo_define, 0, 0, 3) ZEND_ARG_INFO(0, constant_name) ZEND_ARG_INFO(0, value) ZEND_ARG_INFO(0, case_insensitive) ZEND_END_ARG_INFO() +static ZEND_BEGIN_ARG_INFO_EX(arginfo_defined, 0, 0, 1) ZEND_ARG_INFO(0, constant_name) ZEND_END_ARG_INFO() +static ZEND_BEGIN_ARG_INFO_EX(arginfo_get_class, 0, 0, 0) ZEND_ARG_INFO(0, object) ZEND_END_ARG_INFO() +static +ZEND_BEGIN_ARG_INFO(arginfo_get_called_class, 0) +ZEND_END_ARG_INFO() + +static +ZEND_BEGIN_ARG_INFO_EX(arginfo_get_parent_class, 0, 0, 0) + ZEND_ARG_INFO(0, object) +ZEND_END_ARG_INFO() + +static ZEND_BEGIN_ARG_INFO_EX(arginfo_is_subclass_of, 0, 0, 2) ZEND_ARG_INFO(0, object) ZEND_ARG_INFO(0, class_name) ZEND_END_ARG_INFO() +static +ZEND_BEGIN_ARG_INFO_EX(arginfo_is_a, 0, 0, 2) + ZEND_ARG_INFO(0, object) + ZEND_ARG_INFO(0, class_name) +ZEND_END_ARG_INFO() + +static ZEND_BEGIN_ARG_INFO_EX(arginfo_get_class_vars, 0, 0, 1) ZEND_ARG_INFO(0, class_name) ZEND_END_ARG_INFO() +static ZEND_BEGIN_ARG_INFO_EX(arginfo_get_object_vars, 0, 0, 1) ZEND_ARG_INFO(0, obj) ZEND_END_ARG_INFO() +static ZEND_BEGIN_ARG_INFO_EX(arginfo_get_class_methods, 0, 0, 1) ZEND_ARG_INFO(0, class) ZEND_END_ARG_INFO() +static ZEND_BEGIN_ARG_INFO_EX(arginfo_method_exists, 0, 0, 2) ZEND_ARG_INFO(0, object) ZEND_ARG_INFO(0, method) ZEND_END_ARG_INFO() +static ZEND_BEGIN_ARG_INFO_EX(arginfo_property_exists, 0, 0, 2) ZEND_ARG_INFO(0, object_or_class) ZEND_ARG_INFO(0, property_name) ZEND_END_ARG_INFO() +static ZEND_BEGIN_ARG_INFO_EX(arginfo_class_exists, 0, 0, 1) ZEND_ARG_INFO(0, classname) ZEND_ARG_INFO(0, autoload) ZEND_END_ARG_INFO() +static +ZEND_BEGIN_ARG_INFO_EX(arginfo_interface_exists, 0, 0, 1) + ZEND_ARG_INFO(0, classname) + ZEND_ARG_INFO(0, autoload) +ZEND_END_ARG_INFO() + +static ZEND_BEGIN_ARG_INFO_EX(arginfo_function_exists, 0, 0, 1) ZEND_ARG_INFO(0, function_name) ZEND_END_ARG_INFO() +static ZEND_BEGIN_ARG_INFO_EX(arginfo_class_alias, 0, 0, 2) ZEND_ARG_INFO(0, user_class_name) ZEND_ARG_INFO(0, alias_name) ZEND_ARG_INFO(0, autoload) ZEND_END_ARG_INFO() +static +ZEND_BEGIN_ARG_INFO(arginfo_get_included_files, 0) +ZEND_END_ARG_INFO() + +static ZEND_BEGIN_ARG_INFO_EX(arginfo_trigger_error, 0, 0, 1) ZEND_ARG_INFO(0, messsage) ZEND_ARG_INFO(0, error_type) ZEND_END_ARG_INFO() +static ZEND_BEGIN_ARG_INFO_EX(arginfo_set_error_handler, 0, 0, 1) ZEND_ARG_INFO(0, error_handler) ZEND_ARG_INFO(0, error_types) ZEND_END_ARG_INFO() +static +ZEND_BEGIN_ARG_INFO(arginfo_restore_error_handler, 0) +ZEND_END_ARG_INFO() + +static ZEND_BEGIN_ARG_INFO_EX(arginfo_set_exception_handler, 0, 0, 1) ZEND_ARG_INFO(0, exception_handler) ZEND_END_ARG_INFO() +static +ZEND_BEGIN_ARG_INFO(arginfo_restore_exception_handler, 0) +ZEND_END_ARG_INFO() + +static +ZEND_BEGIN_ARG_INFO(arginfo_get_declared_classes, 0) +ZEND_END_ARG_INFO() + +static +ZEND_BEGIN_ARG_INFO(arginfo_get_declared_interfaces, 0) +ZEND_END_ARG_INFO() + +static +ZEND_BEGIN_ARG_INFO(arginfo_get_defined_functions, 0) +ZEND_END_ARG_INFO() + +static +ZEND_BEGIN_ARG_INFO(arginfo_get_defined_vars, 0) +ZEND_END_ARG_INFO() + +static ZEND_BEGIN_ARG_INFO_EX(arginfo_create_function, 0, 0, 2) ZEND_ARG_INFO(0, args) ZEND_ARG_INFO(0, code) ZEND_END_ARG_INFO() +static ZEND_BEGIN_ARG_INFO_EX(arginfo_get_resource_type, 0, 0, 1) ZEND_ARG_INFO(0, res) ZEND_END_ARG_INFO() +static ZEND_BEGIN_ARG_INFO_EX(arginfo_get_loaded_extensions, 0, 0, 0) ZEND_ARG_INFO(0, zend_extensions) ZEND_END_ARG_INFO() +static ZEND_BEGIN_ARG_INFO_EX(arginfo_get_defined_constants, 0, 0, 0) ZEND_ARG_INFO(0, categorize) ZEND_END_ARG_INFO() +static +ZEND_BEGIN_ARG_INFO(arginfo_debug_print_backtrace, 0) +ZEND_END_ARG_INFO() + +static ZEND_BEGIN_ARG_INFO_EX(arginfo_debug_backtrace, 0, 0, 0) ZEND_ARG_INFO(0, provide_object) ZEND_END_ARG_INFO() +static ZEND_BEGIN_ARG_INFO_EX(arginfo_extension_loaded, 0, 0, 1) ZEND_ARG_INFO(0, extension_name) ZEND_END_ARG_INFO() + +static +ZEND_BEGIN_ARG_INFO_EX(arginfo_get_extension_funcs, 0, 0, 1) + ZEND_ARG_INFO(0, extension_name) +ZEND_END_ARG_INFO() /* }}} */ static const zend_function_entry builtin_functions[] = { - ZEND_FE(zend_version, arginfo_zend__void) - ZEND_FE(func_num_args, arginfo_zend__void) + ZEND_FE(zend_version, arginfo_zend_version) + ZEND_FE(func_num_args, arginfo_func_num_args) ZEND_FE(func_get_arg, arginfo_func_get_arg) - ZEND_FE(func_get_args, arginfo_zend__void) - ZEND_FE(strlen, arginfo_strlen) + ZEND_FE(func_get_args, arginfo_func_get_args) + { "strlen", zend_if_strlen, arginfo_strlen }, ZEND_FE(strcmp, arginfo_strcmp) ZEND_FE(strncmp, arginfo_strncmp) - ZEND_FE(strcasecmp, arginfo_strcmp) - ZEND_FE(strncasecmp, arginfo_strncmp) + ZEND_FE(strcasecmp, arginfo_strcasecmp) + ZEND_FE(strncasecmp, arginfo_strncasecmp) ZEND_FE(each, arginfo_each) ZEND_FE(error_reporting, arginfo_error_reporting) ZEND_FE(define, arginfo_define) ZEND_FE(defined, arginfo_defined) ZEND_FE(get_class, arginfo_get_class) - ZEND_FE(get_called_class, arginfo_zend__void) - ZEND_FE(get_parent_class, arginfo_get_class) + ZEND_FE(get_called_class, arginfo_get_called_class) + ZEND_FE(get_parent_class, arginfo_get_parent_class) ZEND_FE(method_exists, arginfo_method_exists) ZEND_FE(property_exists, arginfo_property_exists) ZEND_FE(class_exists, arginfo_class_exists) - ZEND_FE(interface_exists, arginfo_class_exists) + ZEND_FE(interface_exists, arginfo_interface_exists) ZEND_FE(function_exists, arginfo_function_exists) ZEND_FE(class_alias, arginfo_class_alias) #if ZEND_DEBUG @@ -247,41 +370,41 @@ static const zend_function_entry builtin_functions[] = { ZEND_FE(crash, NULL) #endif #endif - ZEND_FE(get_included_files, arginfo_zend__void) - ZEND_FALIAS(get_required_files, get_included_files, arginfo_zend__void) + ZEND_FE(get_included_files, arginfo_get_included_files) + ZEND_FALIAS(get_required_files, get_included_files, arginfo_get_included_files) ZEND_FE(is_subclass_of, arginfo_is_subclass_of) - ZEND_FE(is_a, arginfo_is_subclass_of) + ZEND_FE(is_a, arginfo_is_a) ZEND_FE(get_class_vars, arginfo_get_class_vars) ZEND_FE(get_object_vars, arginfo_get_object_vars) ZEND_FE(get_class_methods, arginfo_get_class_methods) ZEND_FE(trigger_error, arginfo_trigger_error) ZEND_FALIAS(user_error, trigger_error, arginfo_trigger_error) - ZEND_FE(set_error_handler, arginfo_set_error_handler) - ZEND_FE(restore_error_handler, arginfo_zend__void) + ZEND_FE(set_error_handler, arginfo_set_error_handler) + ZEND_FE(restore_error_handler, arginfo_restore_error_handler) ZEND_FE(set_exception_handler, arginfo_set_exception_handler) - ZEND_FE(restore_exception_handler, arginfo_zend__void) - ZEND_FE(get_declared_classes, arginfo_zend__void) - ZEND_FE(get_declared_interfaces, arginfo_zend__void) - ZEND_FE(get_defined_functions, arginfo_zend__void) - ZEND_FE(get_defined_vars, arginfo_zend__void) - ZEND_FE(create_function, arginfo_create_function) - ZEND_FE(get_resource_type, arginfo_get_resource_type) + ZEND_FE(restore_exception_handler, arginfo_restore_exception_handler) + ZEND_FE(get_declared_classes, arginfo_get_declared_classes) + ZEND_FE(get_declared_interfaces, arginfo_get_declared_interfaces) + ZEND_FE(get_defined_functions, arginfo_get_defined_functions) + ZEND_FE(get_defined_vars, arginfo_get_defined_vars) + ZEND_FE(create_function, arginfo_create_function) + ZEND_FE(get_resource_type, arginfo_get_resource_type) ZEND_FE(get_loaded_extensions, arginfo_get_loaded_extensions) ZEND_FE(extension_loaded, arginfo_extension_loaded) - ZEND_FE(get_extension_funcs, arginfo_extension_loaded) + ZEND_FE(get_extension_funcs, arginfo_get_extension_funcs) ZEND_FE(get_defined_constants, arginfo_get_defined_constants) - ZEND_FE(debug_backtrace, arginfo_debug_backtrace) - ZEND_FE(debug_print_backtrace, arginfo_zend__void) + ZEND_FE(debug_backtrace, arginfo_debug_backtrace) + ZEND_FE(debug_print_backtrace, arginfo_debug_print_backtrace) #if ZEND_DEBUG ZEND_FE(zend_test_func, NULL) #ifdef ZTS ZEND_FE(zend_thread_id, NULL) #endif #endif - ZEND_FE(gc_collect_cycles, arginfo_zend__void) - ZEND_FE(gc_enabled, arginfo_zend__void) - ZEND_FE(gc_enable, arginfo_zend__void) - ZEND_FE(gc_disable, arginfo_zend__void) + ZEND_FE(gc_collect_cycles, arginfo_gc_collect_cycles) + ZEND_FE(gc_enabled, arginfo_gc_enabled) + ZEND_FE(gc_enable, arginfo_gc_enable) + ZEND_FE(gc_disable, arginfo_gc_disable) { NULL, NULL, NULL } }; @@ -422,7 +545,7 @@ ZEND_FUNCTION(func_get_args) /* {{{ proto int strlen(string str) Get string length */ -ZEND_FUNCTION(strlen) +ZEND_NAMED_FUNCTION(zend_if_strlen) { char *s1; int s1_len; diff --git a/Zend/zend_closures.c b/Zend/zend_closures.c index b5f7e0ea0e..f0fba8e174 100644 --- a/Zend/zend_closures.c +++ b/Zend/zend_closures.c @@ -136,8 +136,7 @@ static zend_function *zend_closure_get_method(zval **object_ptr, char *method_na static zval *zend_closure_read_property(zval *object, zval *member, int type TSRMLS_DC) /* {{{ */ { ZEND_CLOSURE_PROPERTY_ERROR(); - Z_ADDREF(EG(uninitialized_zval)); - return &EG(uninitialized_zval); + return NULL; } /* }}} */ @@ -209,7 +208,7 @@ static zend_object_value zend_closure_new(zend_class_entry *class_type TSRMLS_DC } /* }}} */ -int zend_closure_get_closure(zval *obj, zend_class_entry **ce_ptr, zend_function **fptr_ptr, zval **zobj_ptr TSRMLS_DC) /* {{{ */ +int zend_closure_get_closure(zval *obj, zend_class_entry **ce_ptr, zend_function **fptr_ptr, zval **zobj_ptr, zval ***zobj_ptr_ptr TSRMLS_DC) /* {{{ */ { zend_closure *closure; @@ -224,11 +223,17 @@ int zend_closure_get_closure(zval *obj, zend_class_entry **ce_ptr, zend_function if (zobj_ptr) { *zobj_ptr = closure->this_ptr; } + if (zobj_ptr_ptr) { + *zobj_ptr_ptr = &closure->this_ptr; + } *ce_ptr = Z_OBJCE_P(closure->this_ptr); } else { if (zobj_ptr) { *zobj_ptr = NULL; } + if (zobj_ptr_ptr) { + *zobj_ptr_ptr = NULL; + } *ce_ptr = closure->func.common.scope; } return SUCCESS; diff --git a/Zend/zend_compile.c b/Zend/zend_compile.c index c8017da0ef..daf67de39f 100644 --- a/Zend/zend_compile.c +++ b/Zend/zend_compile.c @@ -138,8 +138,6 @@ void zend_init_compiler_data_structures(TSRMLS_D) CG(in_compilation) = 0; CG(start_lineno) = 0; CG(current_namespace) = NULL; - CG(in_namespace) = 0; - CG(has_bracketed_namespaces) = 0; CG(current_import) = NULL; init_compiler_declarables(TSRMLS_C); zend_hash_apply(CG(auto_globals), (apply_func_t) zend_auto_global_arm TSRMLS_CC); @@ -585,7 +583,6 @@ void zend_do_assign(znode *result, znode *variable, const znode *value TSRMLS_DC CG(active_op_array)->vars[value->u.var].name, CG(active_op_array)->vars[value->u.var].name_len, 1); SET_UNUSED(opline->op2); - opline->op2.u.EA.type = ZEND_FETCH_LOCAL; value = &opline->result; } } @@ -612,13 +609,10 @@ 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); @@ -627,14 +621,10 @@ 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; */ - /* TBFixed: this can realloc opcodes, leaving last_op pointing wrong */ + 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); @@ -1252,9 +1242,9 @@ void zend_do_begin_function_declaration(znode *function_token, znode *function_n int short_class_name_length; char *short_class_lcname; - if ((short_class_name = zend_memrchr(CG(active_class_entry)->name, '\\', CG(active_class_entry)->name_length))) { - short_class_name_length = CG(active_class_entry)->name_length - (short_class_name - CG(active_class_entry)->name) - 1; - ++short_class_name; + if ((short_class_name = zend_memrchr(CG(active_class_entry)->name, ':', CG(active_class_entry)->name_length))) { + short_class_name++; + short_class_name_length = CG(active_class_entry)->name_length - (short_class_name - CG(active_class_entry)->name); } else { short_class_name = CG(active_class_entry)->name; short_class_name_length = CG(active_class_entry)->name_length; @@ -1397,7 +1387,7 @@ void zend_do_begin_lambda_function_declaration(znode *result, znode *function_to zend_op *current_op; function_name.op_type = IS_CONST; - ZVAL_STRINGL(&function_name.u.constant, "{closure}", sizeof("{closure}")-1, 1); + ZVAL_STRINGL(&function_name.u.constant, "", sizeof("")-1, 1); zend_do_begin_function_declaration(function_token, &function_name, 0, return_reference, NULL TSRMLS_CC); @@ -1412,7 +1402,7 @@ void zend_do_begin_lambda_function_declaration(znode *result, znode *function_to if (is_static) { CG(active_op_array)->fn_flags |= ZEND_ACC_STATIC; } - CG(active_op_array)->fn_flags |= ZEND_ACC_CLOSURE; + CG(active_op_array)->fn_flags |= ZEND_ACC_CLOSURE; } @@ -1544,28 +1534,32 @@ int zend_do_begin_function_call(znode *function_name, zend_bool check_namespace { zend_function *function; char *lcname; - char *is_compound = memchr(Z_STRVAL(function_name->u.constant), '\\', Z_STRLEN(function_name->u.constant)); + int prefix_len = 0; - zend_resolve_non_class_name(function_name, check_namespace TSRMLS_CC); - - if (check_namespace && CG(current_namespace) && !is_compound) { - /* We assume we call function from the current namespace - if it is not prefixed. */ + if (check_namespace && CG(current_namespace)) { + /* We assume we call function from the current namespace + if it is not prefixed. */ + znode tmp; - /* In run-time PHP will check for function with full name and - internal function with short name */ - zend_do_begin_dynamic_function_call(function_name, 1 TSRMLS_CC); - return 1; - } + 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_STRLEN_P(CG(current_namespace)) + 2; + } + lcname = zend_str_tolower_dup(function_name->u.constant.value.str.val, function_name->u.constant.value.str.len); if ((zend_hash_find(CG(function_table), lcname, function_name->u.constant.value.str.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, 0 TSRMLS_CC); - efree(lcname); - return 1; /* Dynamic */ - } + ((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); + efree(lcname); + return 1; /* Dynamic */ + } efree(function_name->u.constant.value.str.val); function_name->u.constant.value.str.val = lcname; @@ -1631,15 +1625,14 @@ void zend_do_clone(znode *result, const znode *expr TSRMLS_DC) } -void zend_do_begin_dynamic_function_call(znode *function_name, int ns_call TSRMLS_DC) +void zend_do_begin_dynamic_function_call(znode *function_name, int prefix_len TSRMLS_DC) { unsigned char *ptr = NULL; - zend_op *opline, *opline2; + zend_op *opline; opline = get_next_op(CG(active_op_array) TSRMLS_CC); - if (ns_call) { - char *slash; - int prefix_len, name_len; + + if (prefix_len) { /* 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; @@ -1650,20 +1643,14 @@ void zend_do_begin_dynamic_function_call(znode *function_name, int ns_call TSRML Z_STRVAL(opline->op1.u.constant) = zend_str_tolower_dup(Z_STRVAL(opline->op2.u.constant), Z_STRLEN(opline->op2.u.constant)); Z_STRLEN(opline->op1.u.constant) = Z_STRLEN(opline->op2.u.constant); opline->extended_value = zend_hash_func(Z_STRVAL(opline->op1.u.constant), Z_STRLEN(opline->op1.u.constant) + 1); - slash = zend_memrchr(Z_STRVAL(opline->op1.u.constant), '\\', Z_STRLEN(opline->op1.u.constant)); - prefix_len = slash-Z_STRVAL(opline->op1.u.constant)+1; - 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; - Z_TYPE(opline2->op1.u.constant) = IS_LONG; - if(!slash) { - zend_error(E_CORE_ERROR, "Namespaced name %s should contain slash", Z_STRVAL(opline->op1.u.constant)); - } - /* 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_hash_func(slash+1, name_len+1); + opline = get_next_op(CG(active_op_array) TSRMLS_CC); + opline->opcode = ZEND_OP_DATA; + opline->op1.op_type = IS_CONST; + Z_TYPE(opline->op1.u.constant) = IS_STRING; + Z_STRLEN(opline->op1.u.constant) = Z_STRLEN(function_name->u.constant) - prefix_len; + Z_STRVAL(opline->op1.u.constant) = zend_str_tolower_dup(Z_STRVAL(function_name->u.constant) + prefix_len, Z_STRLEN(opline->op1.u.constant)); + SET_UNUSED(opline->op2); + opline->extended_value = zend_hash_func(Z_STRVAL(opline->op1.u.constant), Z_STRLEN(opline->op1.u.constant) + 1); } else { opline->opcode = ZEND_INIT_FCALL_BY_NAME; opline->op2 = *function_name; @@ -1679,58 +1666,10 @@ void zend_do_begin_dynamic_function_call(znode *function_name, int ns_call TSRML } } - zend_stack_push(&CG(function_call_stack), (void *) &ptr, sizeof(zend_function *)); - zend_do_extended_fcall_begin(TSRMLS_C); -} - -void zend_resolve_non_class_name(znode *element_name, zend_bool check_namespace TSRMLS_DC) -{ - znode tmp; - int len; - zval **ns; - char *lcname, *compound = memchr(Z_STRVAL(element_name->u.constant), '\\', Z_STRLEN(element_name->u.constant)); - if (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 && CG(current_import)) { - len = compound - Z_STRVAL(element_name->u.constant); - lcname = zend_str_tolower_dup(Z_STRVAL(element_name->u.constant), len); - /* Check if first part of compound name is an import name */ - if (zend_hash_find(CG(current_import), lcname, len+1, (void**)&ns) == SUCCESS) { - /* Substitute import name */ - tmp.op_type = IS_CONST; - tmp.u.constant = **ns; - zval_copy_ctor(&tmp.u.constant); - len += 1; - Z_STRLEN(element_name->u.constant) -= len; - memmove(Z_STRVAL(element_name->u.constant), Z_STRVAL(element_name->u.constant)+len, Z_STRLEN(element_name->u.constant)+1); - zend_do_build_namespace_name(&tmp, &tmp, element_name TSRMLS_CC); - *element_name = tmp; - efree(lcname); - return; - } - efree(lcname); - } - if (CG(current_namespace)) { - tmp = *element_name; - Z_STRLEN(tmp.u.constant) = sizeof("\\")-1 + Z_STRLEN(element_name->u.constant) + Z_STRLEN_P(CG(current_namespace)); - Z_STRVAL(tmp.u.constant) = (char *) emalloc(Z_STRLEN(tmp.u.constant)+1); - memcpy(Z_STRVAL(tmp.u.constant), Z_STRVAL_P(CG(current_namespace)), Z_STRLEN_P(CG(current_namespace))); - memcpy(&(Z_STRVAL(tmp.u.constant)[Z_STRLEN_P(CG(current_namespace))]), "\\", sizeof("\\")-1); - memcpy(&(Z_STRVAL(tmp.u.constant)[Z_STRLEN_P(CG(current_namespace)) + sizeof("\\")-1]), Z_STRVAL(element_name->u.constant), Z_STRLEN(element_name->u.constant)+1); - STR_FREE(Z_STRVAL(element_name->u.constant)); - *element_name = tmp; - } + zend_stack_push(&CG(function_call_stack), (void *) &ptr, sizeof(zend_function *)); + zend_do_extended_fcall_begin(TSRMLS_C); } void zend_resolve_class_name(znode *class_name, ulong *fetch_type, int check_ns_name TSRMLS_DC) @@ -1741,51 +1680,40 @@ void zend_resolve_class_name(znode *class_name, ulong *fetch_type, int check_ns_ znode tmp; int len; - compound = memchr(Z_STRVAL(class_name->u.constant), '\\', Z_STRLEN(class_name->u.constant)); + compound = memchr(Z_STRVAL(class_name->u.constant), ':', Z_STRLEN(class_name->u.constant)); if (compound) { - /* This is a compound class name that contains namespace prefix */ - if (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); + /* This is a compound class name that cotains namespace prefix */ + if (Z_TYPE(class_name->u.constant) == IS_STRING && + Z_STRVAL(class_name->u.constant)[0] == ':') { + /* The STRING name has "::" prefix */ + Z_STRLEN(class_name->u.constant) -= 2; + memmove(Z_STRVAL(class_name->u.constant), Z_STRVAL(class_name->u.constant)+2, Z_STRLEN(class_name->u.constant)+1); Z_STRVAL(class_name->u.constant) = erealloc( Z_STRVAL(class_name->u.constant), Z_STRLEN(class_name->u.constant) + 1); if (ZEND_FETCH_CLASS_DEFAULT != zend_get_class_fetch_type(Z_STRVAL(class_name->u.constant), Z_STRLEN(class_name->u.constant))) { - zend_error(E_COMPILE_ERROR, "'\\%s' is an invalid class name", Z_STRVAL(class_name->u.constant)); + zend_error(E_COMPILE_ERROR, "'::%s' is a wrong class name", Z_STRVAL(class_name->u.constant)); } - } else { - if (CG(current_import)) { - len = compound - Z_STRVAL(class_name->u.constant); - lcname = zend_str_tolower_dup(Z_STRVAL(class_name->u.constant), len); - /* Check if first part of compound name is an import name */ - if (zend_hash_find(CG(current_import), lcname, len+1, (void**)&ns) == SUCCESS) { - /* Substitute import name */ - tmp.op_type = IS_CONST; - tmp.u.constant = **ns; - zval_copy_ctor(&tmp.u.constant); - len += 1; - Z_STRLEN(class_name->u.constant) -= len; - memmove(Z_STRVAL(class_name->u.constant), Z_STRVAL(class_name->u.constant)+len, Z_STRLEN(class_name->u.constant)+1); - zend_do_build_namespace_name(&tmp, &tmp, class_name TSRMLS_CC); - *class_name = tmp; - efree(lcname); - return; - } - efree(lcname); - } - /* Here name is not prefixed with \ and not imported */ - if (CG(current_namespace)) { + } else if (CG(current_import)) { + len = compound - Z_STRVAL(class_name->u.constant); + lcname = zend_str_tolower_dup(Z_STRVAL(class_name->u.constant), len); + /* Check if first part of compound name is an import name */ + if (zend_hash_find(CG(current_import), lcname, len+1, (void**)&ns) == SUCCESS) { + /* Substitute import name */ tmp.op_type = IS_CONST; - tmp.u.constant = *CG(current_namespace); + tmp.u.constant = **ns; zval_copy_ctor(&tmp.u.constant); + len += 2; + Z_STRLEN(class_name->u.constant) -= len; + memmove(Z_STRVAL(class_name->u.constant), Z_STRVAL(class_name->u.constant)+len, Z_STRLEN(class_name->u.constant)+1); zend_do_build_namespace_name(&tmp, &tmp, class_name TSRMLS_CC); *class_name = tmp; } + efree(lcname); } } else if (CG(current_import) || CG(current_namespace)) { - /* this is a plain name (without \) */ + /* this is a plain name (without ::) */ lcname = zend_str_tolower_dup(Z_STRVAL(class_name->u.constant), Z_STRLEN(class_name->u.constant)); if (CG(current_import) && @@ -1795,7 +1723,23 @@ 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)) { - /* plain name, no import - prepend current namespace to it */ + 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_hash_find(CG(class_table), lcname, Z_STRLEN(class_name->u.constant)+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); @@ -1958,7 +1902,7 @@ void zend_release_labels(TSRMLS_D) /* {{{ */ } /* }}} */ -void zend_do_build_full_name(znode *result, znode *prefix, znode *name, int is_class_member TSRMLS_DC) +void zend_do_build_full_name(znode *result, znode *prefix, znode *name TSRMLS_DC) { zend_uint length; @@ -1968,21 +1912,12 @@ void zend_do_build_full_name(znode *result, znode *prefix, znode *name, int is_c *result = *prefix; } - if (is_class_member) { - length = sizeof("::")-1 + result->u.constant.value.str.len + name->u.constant.value.str.len; - result->u.constant.value.str.val = erealloc(result->u.constant.value.str.val, length+1); - memcpy(&result->u.constant.value.str.val[result->u.constant.value.str.len], "::", sizeof("::")-1); - memcpy(&result->u.constant.value.str.val[result->u.constant.value.str.len + sizeof("::")-1], name->u.constant.value.str.val, name->u.constant.value.str.len+1); - STR_FREE(name->u.constant.value.str.val); - result->u.constant.value.str.len = length; - } else { - length = sizeof("\\")-1 + result->u.constant.value.str.len + name->u.constant.value.str.len; - result->u.constant.value.str.val = erealloc(result->u.constant.value.str.val, length+1); - memcpy(&result->u.constant.value.str.val[result->u.constant.value.str.len], "\\", sizeof("\\")-1); - memcpy(&result->u.constant.value.str.val[result->u.constant.value.str.len + sizeof("\\")-1], name->u.constant.value.str.val, name->u.constant.value.str.len+1); - STR_FREE(name->u.constant.value.str.val); - result->u.constant.value.str.len = length; - } + length = sizeof("::")-1 + result->u.constant.value.str.len + name->u.constant.value.str.len; + result->u.constant.value.str.val = erealloc(result->u.constant.value.str.val, length+1); + memcpy(&result->u.constant.value.str.val[result->u.constant.value.str.len], "::", sizeof("::")-1); + memcpy(&result->u.constant.value.str.val[result->u.constant.value.str.len + sizeof("::")-1], name->u.constant.value.str.val, name->u.constant.value.str.len+1); + STR_FREE(name->u.constant.value.str.val); + result->u.constant.value.str.len = length; } int zend_do_begin_class_member_function_call(znode *class_name, znode *method_name TSRMLS_DC) @@ -1992,11 +1927,10 @@ int zend_do_begin_class_member_function_call(znode *class_name, znode *method_na zend_op *opline; ulong fetch_type = 0; -#if 0 if (class_name->op_type == IS_CONST && Z_TYPE(class_name->u.constant) == IS_STRING && Z_STRLEN(class_name->u.constant) == 0) { - /* namespace\func() not in namespace */ + /* namespace::func() not in namespace */ zval_dtor(&class_name->u.constant); if (CG(current_namespace)) { znode tmp; @@ -2009,7 +1943,6 @@ int zend_do_begin_class_member_function_call(znode *class_name, znode *method_na } return zend_do_begin_function_call(method_name, 0 TSRMLS_CC); } -#endif if (method_name->op_type == IS_CONST) { char *lcname = zend_str_tolower_dup(Z_STRVAL(method_name->u.constant), Z_STRLEN(method_name->u.constant)); @@ -2032,12 +1965,13 @@ 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. */ char *nsname, *fname; unsigned int nsname_len, len; @@ -2049,11 +1983,17 @@ int zend_do_begin_class_member_function_call(znode *class_name, znode *method_na nsname = Z_STRVAL(class_node.u.constant); nsname_len = Z_STRLEN(class_node.u.constant); - len = nsname_len + 1 + Z_STRLEN(method_name->u.constant); + if (fetch_type & ZEND_FETCH_CLASS_RT_NS_NAME) { + /* Remove namespace name */ + nsname = (char *)memchr(nsname, ':', nsname_len) + 2; + nsname_len -= (nsname - Z_STRVAL(class_node.u.constant)); + } + len = nsname_len + 2 + Z_STRLEN(method_name->u.constant); fname = emalloc(len + 1); memcpy(fname, nsname, nsname_len); - fname[nsname_len] = '\\'; - memcpy(fname + nsname_len + 1, + fname[nsname_len] = ':'; + fname[nsname_len + 1] = ':'; + memcpy(fname + nsname_len + 2, Z_STRVAL(method_name->u.constant), Z_STRLEN(method_name->u.constant)+1); zend_str_tolower(fname, len); @@ -2583,8 +2523,8 @@ static zend_bool zend_do_perform_implementation_check(const zend_function *fe, c char *colon; if (fe->common.type != ZEND_USER_FUNCTION || - strchr(proto->common.arg_info[i].class_name, '\\') != NULL || - (colon = zend_memrchr(fe->common.arg_info[i].class_name, '\\', fe->common.arg_info[i].class_name_len)) == NULL || + strchr(proto->common.arg_info[i].class_name, ':') != NULL || + (colon = zend_memrchr(fe->common.arg_info[i].class_name, ':', fe->common.arg_info[i].class_name_len)) == NULL || strcasecmp(colon+1, proto->common.arg_info[i].class_name) != 0) { return 0; } @@ -3831,20 +3771,7 @@ static zend_constant* zend_get_ct_const(const zval *const_name, int all_internal { zend_constant *c = NULL; - if (Z_STRVAL_P(const_name)[0] == '\\') { - if (zend_hash_find(EG(zend_constants), Z_STRVAL_P(const_name)+1, Z_STRLEN_P(const_name), (void **) &c) == FAILURE) { - char *lookup_name = zend_str_tolower_dup(Z_STRVAL_P(const_name)+1, Z_STRLEN_P(const_name)-1); - - if (zend_hash_find(EG(zend_constants), lookup_name, Z_STRLEN_P(const_name), (void **) &c)==SUCCESS) { - if ((c->flags & CONST_CT_SUBST) && !(c->flags & CONST_CS)) { - efree(lookup_name); - return c; - } - } - efree(lookup_name); - return NULL; - } - } else if (zend_hash_find(EG(zend_constants), Z_STRVAL_P(const_name), Z_STRLEN_P(const_name)+1, (void **) &c) == FAILURE) { + if (zend_hash_find(EG(zend_constants), Z_STRVAL_P(const_name), Z_STRLEN_P(const_name)+1, (void **) &c) == FAILURE) { char *lookup_name = zend_str_tolower_dup(Z_STRVAL_P(const_name), Z_STRLEN_P(const_name)); if (zend_hash_find(EG(zend_constants), lookup_name, Z_STRLEN_P(const_name)+1, (void **) &c)==SUCCESS) { @@ -3888,88 +3815,112 @@ static int zend_constant_ct_subst(znode *result, zval *const_name, int all_inter void zend_do_fetch_constant(znode *result, znode *constant_container, znode *constant_name, int mode, zend_bool check_namespace TSRMLS_DC) /* {{{ */ { - znode tmp; - zend_op *opline; - int type; - char *compound; ulong fetch_type = 0; + znode tmp; + + if (constant_container && + constant_container->op_type == IS_CONST && + Z_TYPE(constant_container->u.constant) == IS_STRING && + Z_STRLEN(constant_container->u.constant) == 0) { + /* namespace::const */ + zval_dtor(&constant_container->u.constant); + check_namespace = 1; + constant_container = NULL; + fetch_type = ZEND_FETCH_CLASS_RT_NS_CHECK | IS_CONSTANT_RT_NS_CHECK; + } + + switch (mode) { + case ZEND_CT: + if (constant_container) { + int type = zend_get_class_fetch_type(Z_STRVAL(constant_container->u.constant), Z_STRLEN(constant_container->u.constant)); - if (constant_container) { - switch (mode) { - case ZEND_CT: - /* this is a class constant */ - type = zend_get_class_fetch_type(Z_STRVAL(constant_container->u.constant), Z_STRLEN(constant_container->u.constant)); - if (ZEND_FETCH_CLASS_STATIC == type) { zend_error(E_ERROR, "\"static::\" is not allowed in compile-time constants"); } else if (ZEND_FETCH_CLASS_DEFAULT == type) { zend_resolve_class_name(constant_container, &fetch_type, 1 TSRMLS_CC); } - zend_do_build_full_name(NULL, constant_container, constant_name, 1 TSRMLS_CC); + zend_do_build_full_name(NULL, constant_container, constant_name TSRMLS_CC); *result = *constant_container; result->u.constant.type = IS_CONSTANT | fetch_type; - break; - case ZEND_RT: - if (constant_container->op_type == IS_CONST && - ZEND_FETCH_CLASS_DEFAULT == zend_get_class_fetch_type(Z_STRVAL(constant_container->u.constant), Z_STRLEN(constant_container->u.constant))) { - zend_resolve_class_name(constant_container, &fetch_type, 1 TSRMLS_CC); - } else { - zend_do_fetch_class(&tmp, constant_container TSRMLS_CC); + } else if (fetch_type || !zend_constant_ct_subst(result, &constant_name->u.constant, 0 TSRMLS_CC)) { + if (check_namespace && CG(current_namespace)) { + /* We assume we use constant from the current namespace + if it is not prefixed. */ + tmp.op_type = IS_CONST; + tmp.u.constant = *CG(current_namespace); + zval_copy_ctor(&tmp.u.constant); + zend_do_build_namespace_name(&tmp, &tmp, constant_name TSRMLS_CC); + *constant_name = tmp; + fetch_type |= IS_CONSTANT_RT_NS_CHECK; + } + *result = *constant_name; + result->u.constant.type = IS_CONSTANT | fetch_type; + } + break; + case ZEND_RT: + if (constant_container || + !zend_constant_ct_subst(result, &constant_name->u.constant, (!CG(current_namespace) || !check_namespace) TSRMLS_CC)) { + zend_op *opline; + + if (constant_container) { + if (constant_container->op_type == IS_CONST && + ZEND_FETCH_CLASS_DEFAULT == zend_get_class_fetch_type(Z_STRVAL(constant_container->u.constant), Z_STRLEN(constant_container->u.constant))) { + zend_resolve_class_name(constant_container, &fetch_type, 1 TSRMLS_CC); + } else { + zend_do_fetch_class(&tmp, constant_container TSRMLS_CC); + constant_container = &tmp; + } + } else if (check_namespace && CG(current_namespace)) { + /* We assume we use constant from the current namespace + if it is not prefixed. */ + tmp.op_type = IS_CONST; + tmp.u.constant = *CG(current_namespace); + zval_copy_ctor(&tmp.u.constant); constant_container = &tmp; + fetch_type |= IS_CONSTANT_RT_NS_CHECK; } opline = get_next_op(CG(active_op_array) TSRMLS_CC); opline->opcode = ZEND_FETCH_CONSTANT; + opline->extended_value = fetch_type & ~ZEND_FETCH_CLASS_RT_NS_NAME; opline->result.op_type = IS_TMP_VAR; opline->result.u.var = get_temporary_variable(CG(active_op_array)); - opline->op1 = *constant_container; + if (constant_container) { + opline->op1 = *constant_container; + } else { + SET_UNUSED(opline->op1); + } 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: - compound = memchr(Z_STRVAL(constant_name->u.constant), '\\', Z_STRLEN(constant_name->u.constant)); - /* this is a namespace constant, or an unprefixed constant */ - - if (zend_constant_ct_subst(result, &constant_name->u.constant, 0 TSRMLS_CC)) { - break; - } - zend_resolve_non_class_name(constant_name, check_namespace TSRMLS_CC); - - if(!compound) { - fetch_type |= IS_CONSTANT_UNQUALIFIED; - } - - *result = *constant_name; - result->u.constant.type = IS_CONSTANT | fetch_type; - break; - case ZEND_RT: - compound = 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; - } + if (opline->op1.op_type == IS_CONST) { + /* Prebuild ns::func name to speedup run-time check. + The additional names are stored in additional OP_DATA opcode. */ + char *nsname; + unsigned int nsname_len; + + opline = get_next_op(CG(active_op_array) TSRMLS_CC); + opline->opcode = ZEND_OP_DATA; + opline->op1.op_type = IS_CONST; + SET_UNUSED(opline->op2); + + nsname = Z_STRVAL(constant_container->u.constant); + nsname_len = Z_STRLEN(constant_container->u.constant); + if (fetch_type & ZEND_FETCH_CLASS_RT_NS_NAME) { + /* Remove namespace name */ + nsname = (char *)memchr(nsname, ':', nsname_len) + 2; + nsname_len -= (nsname - Z_STRVAL(constant_container->u.constant)); + } - 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) { - /* the name is unambiguous */ - opline->extended_value = 0; - } else { - opline->extended_value = IS_CONSTANT_UNQUALIFIED; + Z_TYPE(opline->op1.u.constant) = IS_STRING; + Z_STRVAL(opline->op1.u.constant) = emalloc(nsname_len + 2 + Z_STRLEN(constant_name->u.constant) + 1); + zend_str_tolower_copy(Z_STRVAL(opline->op1.u.constant), nsname, nsname_len); + Z_STRVAL(opline->op1.u.constant)[nsname_len] = ':'; + Z_STRVAL(opline->op1.u.constant)[nsname_len+1] = ':'; + memcpy(Z_STRVAL(opline->op1.u.constant)+nsname_len+2, Z_STRVAL(constant_name->u.constant), Z_STRLEN(constant_name->u.constant) + 1); + Z_STRLEN(opline->op1.u.constant) = nsname_len + 2 + Z_STRLEN(constant_name->u.constant); + opline->extended_value = zend_hash_func(Z_STRVAL(opline->op1.u.constant), Z_STRLEN(opline->op1.u.constant) + 1); + } } - opline->op2 = *constant_name; break; } } @@ -4681,13 +4632,12 @@ void zend_do_declare_stmt(znode *var, znode *val TSRMLS_DC) zend_multibyte_yyinput_again(old_input_filter, old_encoding TSRMLS_CC); } } - efree(val->u.constant.value.str.val); #else /* !ZEND_MULTIBYTE */ } else if (!zend_binary_strcasecmp(var->u.constant.value.str.val, var->u.constant.value.str.len, "encoding", sizeof("encoding")-1)) { /* Do not generate any kind of warning for encoding declares */ /* zend_error(E_COMPILE_WARNING, "Declare encoding [%s] not supported", val->u.constant.value.str.val); */ - zval_dtor(&val->u.constant); #endif /* ZEND_MULTIBYTE */ + efree(val->u.constant.value.str.val); } else { zend_error(E_COMPILE_WARNING, "Unsupported declare '%s'", var->u.constant.value.str.val); zval_dtor(&val->u.constant); @@ -4952,9 +4902,6 @@ 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: @@ -5066,7 +5013,7 @@ void zend_do_build_namespace_name(znode *result, znode *prefix, znode *name TSRM *result = *prefix; if (Z_TYPE(result->u.constant) == IS_STRING && Z_STRLEN(result->u.constant) == 0) { - /* namespace\ */ + /* namespace:: */ if (CG(current_namespace)) { znode tmp; @@ -5084,32 +5031,15 @@ void zend_do_build_namespace_name(znode *result, znode *prefix, znode *name TSRM Z_STRLEN(result->u.constant) = 0; } /* prefix = result */ - zend_do_build_full_name(NULL, result, name, 0 TSRMLS_CC); + zend_do_build_full_name(NULL, result, name TSRMLS_CC); } /* }}} */ -void zend_do_begin_namespace(const znode *name, zend_bool with_bracket TSRMLS_DC) /* {{{ */ +void zend_do_namespace(const znode *name TSRMLS_DC) /* {{{ */ { char *lcname; - /* 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) { + if (CG(active_op_array)->last > 0) { /* ignore ZEND_EXT_STMT and ZEND_TICKS */ int num = CG(active_op_array)->last; while (num > 0 && @@ -5117,45 +5047,31 @@ void zend_do_begin_namespace(const znode *name, zend_bool with_bracket TSRMLS_DC CG(active_op_array)->opcodes[num-1].opcode == ZEND_TICKS)) { --num; } - if (num > 0) { + if (!CG(current_namespace) && num > 0) { zend_error(E_COMPILE_ERROR, "Namespace declaration statement has to be the very first statement in the script"); } } - - CG(in_namespace) = 1; - if (with_bracket) { - CG(has_bracketed_namespaces) = 1; + lcname = zend_str_tolower_dup(Z_STRVAL(name->u.constant), Z_STRLEN(name->u.constant)); + if (((Z_STRLEN(name->u.constant) == sizeof("self")-1) && + !memcmp(lcname, "self", sizeof("self")-1)) || + ((Z_STRLEN(name->u.constant) == sizeof("parent")-1) && + !memcmp(lcname, "parent", sizeof("parent")-1))) { + zend_error(E_COMPILE_ERROR, "Cannot use '%s' as namespace name", Z_STRVAL(name->u.constant)); } + efree(lcname); - if (name) { - lcname = zend_str_tolower_dup(Z_STRVAL(name->u.constant), Z_STRLEN(name->u.constant)); - if (((Z_STRLEN(name->u.constant) == sizeof("self")-1) && - !memcmp(lcname, "self", sizeof("self")-1)) || - ((Z_STRLEN(name->u.constant) == sizeof("parent")-1) && - !memcmp(lcname, "parent", sizeof("parent")-1))) { - zend_error(E_COMPILE_ERROR, "Cannot use '%s' as namespace name", Z_STRVAL(name->u.constant)); - } - efree(lcname); - - if (CG(current_namespace)) { - zval_dtor(CG(current_namespace)); - } else { - ALLOC_ZVAL(CG(current_namespace)); - } - *CG(current_namespace) = name->u.constant; + if (CG(current_namespace)) { + zval_dtor(CG(current_namespace)); } else { - if (CG(current_namespace)) { - zval_dtor(CG(current_namespace)); - FREE_ZVAL(CG(current_namespace)); - CG(current_namespace) = NULL; - } + ALLOC_ZVAL(CG(current_namespace)); } - if (CG(current_import)) { zend_hash_destroy(CG(current_import)); efree(CG(current_import)); CG(current_import) = NULL; } + + *CG(current_namespace) = name->u.constant; } /* }}} */ @@ -5178,10 +5094,10 @@ void zend_do_use(znode *ns_name, znode *new_name, int is_global TSRMLS_DC) /* {{ } else { char *p; - /* The form "use A\B" is eqivalent to "use A\B as B". - So we extract the last part of compound name to use as a new_name */ + /* The form "use A::B" is eqivalent to "use A::B as B". + So we extract the last part of compound name ti use as a new_name */ name = &tmp; - p = zend_memrchr(Z_STRVAL_P(ns), '\\', Z_STRLEN_P(ns)); + p = zend_memrchr(Z_STRVAL_P(ns), ':', Z_STRLEN_P(ns)); if (p) { ZVAL_STRING(name, p+1, 1); } else { @@ -5202,15 +5118,16 @@ void zend_do_use(znode *ns_name, znode *new_name, int is_global TSRMLS_DC) /* {{ if (CG(current_namespace)) { /* Prefix import name with current namespace name to avoid conflicts with classes */ - char *ns_name = emalloc(Z_STRLEN_P(CG(current_namespace)) + 1 + Z_STRLEN_P(name) + 1); + char *ns_name = emalloc(Z_STRLEN_P(CG(current_namespace)) + 2 + Z_STRLEN_P(name) + 1); zend_str_tolower_copy(ns_name, Z_STRVAL_P(CG(current_namespace)), Z_STRLEN_P(CG(current_namespace))); - ns_name[Z_STRLEN_P(CG(current_namespace))] = '\\'; - memcpy(ns_name+Z_STRLEN_P(CG(current_namespace))+1, lcname, Z_STRLEN_P(name)+1); - if (zend_hash_exists(CG(class_table), ns_name, Z_STRLEN_P(CG(current_namespace)) + 1 + Z_STRLEN_P(name)+1)) { + ns_name[Z_STRLEN_P(CG(current_namespace))] = ':'; + ns_name[Z_STRLEN_P(CG(current_namespace))+1] = ':'; + memcpy(ns_name+Z_STRLEN_P(CG(current_namespace))+2, lcname, Z_STRLEN_P(name)+1); + if (zend_hash_exists(CG(class_table), ns_name, Z_STRLEN_P(CG(current_namespace)) + 2 + Z_STRLEN_P(name)+1)) { char *tmp = zend_str_tolower_dup(Z_STRVAL_P(ns), Z_STRLEN_P(ns)); - if (Z_STRLEN_P(ns) != Z_STRLEN_P(CG(current_namespace)) + 1 + Z_STRLEN_P(name) || + if (Z_STRLEN_P(ns) != Z_STRLEN_P(CG(current_namespace)) + 2 + Z_STRLEN_P(name) || memcmp(tmp, ns_name, Z_STRLEN_P(ns))) { zend_error(E_COMPILE_ERROR, "Cannot use %s as %s because the name is already in use", Z_STRVAL_P(ns), Z_STRVAL_P(name)); } @@ -5253,7 +5170,7 @@ void zend_do_declare_constant(znode *name, znode *value TSRMLS_DC) /* {{{ */ } if (CG(current_namespace)) { - /* Prefix constant name with name of current namespace, lowercased */ + /* Prefix constant name with name of current namespace */ znode tmp; tmp.op_type = IS_CONST; @@ -5271,17 +5188,8 @@ 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) /* {{{ */ +void zend_do_end_compilation(TSRMLS_D) /* {{{ */ { - CG(in_namespace) = 0; if (CG(current_namespace)) { zval_dtor(CG(current_namespace)); FREE_ZVAL(CG(current_namespace)); @@ -5295,13 +5203,6 @@ void zend_do_end_namespace(TSRMLS_D) /* {{{ */ } /* }}} */ -void zend_do_end_compilation(TSRMLS_D) /* {{{ */ -{ - CG(has_bracketed_namespaces) = 0; - zend_do_end_namespace(TSRMLS_C); -} -/* }}} */ - /* {{{ zend_dirname Returns directory name component of path */ ZEND_API size_t zend_dirname(char *path, size_t len) diff --git a/Zend/zend_compile.h b/Zend/zend_compile.h index c607604cae..cb76bc4780 100644 --- a/Zend/zend_compile.h +++ b/Zend/zend_compile.h @@ -359,7 +359,6 @@ ZEND_API char *zend_get_compiled_filename(TSRMLS_D); ZEND_API int zend_get_compiled_lineno(TSRMLS_D); ZEND_API size_t zend_get_scanned_file_offset(TSRMLS_D); -void zend_resolve_non_class_name(znode *element_name, zend_bool check_namespace TSRMLS_DC); void zend_resolve_class_name(znode *class_name, ulong *fetch_type, int check_ns_name TSRMLS_DC); ZEND_API char* zend_get_compiled_variable_name(const zend_op_array *op_array, zend_uint var, int* name_len); @@ -428,7 +427,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, int is_class_member TSRMLS_DC); +void zend_do_build_full_name(znode *result, znode *prefix, znode *name 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); @@ -537,9 +536,7 @@ 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_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_namespace(const znode *name TSRMLS_DC); void zend_do_use(znode *name, znode *new_name, int is_global TSRMLS_DC); void zend_do_end_compilation(TSRMLS_D); @@ -638,6 +635,8 @@ 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_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 cdf4dcac65..f215a885ba 100644 --- a/Zend/zend_constants.c +++ b/Zend/zend_constants.c @@ -277,26 +277,27 @@ ZEND_API int zend_get_constant_ex(const char *name, uint name_len, zval *result, zend_constant *c; int retval = 1; char *colon; - zend_class_entry *ce = NULL; - char *class_name; - zval **ret_constant; - - /* Skip leading \\ */ - if (name[0] == '\\') { - name += 1; - name_len -= 1; - } + /* Skip leading :: */ + if (name[0] == ':' && name[1] == ':') { + name += 2; + name_len -= 2; + flags &= ZEND_FETCH_CLASS_SILENT; + } + if ((colon = zend_memrchr(name, ':', name_len)) && - colon > name && (*(colon - 1) == ':')) { + colon > name && + *(colon-1) == ':') { + /* compound constant name */ + zend_class_entry *ce = NULL; int class_name_len = colon - name - 1; int const_name_len = name_len - class_name_len - 2; - char *constant_name = colon + 1; - char *lcname; + char *constant_name = constant_name = colon + 1; + char *class_name = estrndup(name, class_name_len); + char *lcname = zend_str_tolower_dup(class_name, class_name_len); + zval **ret_constant; - class_name = estrndup(name, class_name_len); - lcname = zend_str_tolower_dup(class_name, class_name_len); if (!scope) { if (EG(in_execution)) { scope = EG(scope); @@ -333,58 +334,62 @@ ZEND_API int zend_get_constant_ex(const char *name, uint name_len, zval *result, } efree(lcname); } else { + /* Check for namespace constant */ + char *nsname; + unsigned int nsname_len; + + /* Concatenate lowercase namespace name and constant name */ + lcname = erealloc(lcname, class_name_len + 2 + const_name_len + 1); + lcname[class_name_len] = ':'; + lcname[class_name_len+1] = ':'; + memcpy(lcname + class_name_len + 2, constant_name, const_name_len + 1); + + nsname = lcname; + nsname_len = class_name_len + 2 + const_name_len; + if (flags & ZEND_FETCH_CLASS_RT_NS_NAME) { + nsname = (char *)memchr(nsname, ':', nsname_len) + 2; + nsname_len -= (nsname - lcname); + } + + if (zend_hash_find(EG(zend_constants), nsname, nsname_len+1, (void **) &c) == SUCCESS) { + efree(lcname); + efree(class_name); + *result = c->value; + zval_update_constant_ex(&result, (void*)1, NULL TSRMLS_CC); + zval_copy_ctor(result); + Z_SET_REFCOUNT_P(result, 1); + Z_UNSET_ISREF_P(result); + return 1; + } efree(lcname); - ce = zend_fetch_class(class_name, class_name_len, flags TSRMLS_CC); + + if ((flags & IS_CONSTANT_RT_NS_CHECK) == 0) { + /* Check for class */ + ce = zend_fetch_class(class_name, class_name_len, flags TSRMLS_CC); + } } + if (retval && ce) { if (zend_hash_find(&ce->constants_table, constant_name, const_name_len+1, (void **) &ret_constant) != SUCCESS) { retval = 0; + } + } else { + if ((flags & ZEND_FETCH_CLASS_RT_NS_NAME) == 0) { + if ((flags & IS_CONSTANT_RT_NS_CHECK) != 0) { + name = constant_name; + name_len = const_name_len; + efree(class_name); + retval = 1; + return zend_get_constant(name, name_len, result TSRMLS_CC); + } if ((flags & ZEND_FETCH_CLASS_SILENT) == 0) { - zend_error(E_ERROR, "Undefined class constant '%s::%s'", class_name, constant_name); + zend_error(E_ERROR, "Class '%s' not found", class_name); } } - } else if (!ce) { retval = 0; } efree(class_name); - goto finish; - } - - /* non-class constant */ - if ((colon = zend_memrchr(name, '\\', name_len)) != NULL) { - /* compound constant name */ - int prefix_len = colon - name; - int const_name_len = name_len - prefix_len - 1; - char *constant_name = colon + 1; - char *lcname; - - lcname = zend_str_tolower_dup(name, prefix_len); - /* Check for namespace constant */ - /* Concatenate lowercase namespace name and constant name */ - lcname = erealloc(lcname, prefix_len + 1 + const_name_len + 1); - lcname[prefix_len] = '\\'; - memcpy(lcname + prefix_len + 1, constant_name, const_name_len + 1); - - if (zend_hash_find(EG(zend_constants), lcname, prefix_len + 1 + const_name_len + 1, (void **) &c) == SUCCESS) { - efree(lcname); - *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); - /* 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_get_constant(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_exceptions.c b/Zend/zend_exceptions.c index 564c653474..aeab6e6421 100644 --- a/Zend/zend_exceptions.c +++ b/Zend/zend_exceptions.c @@ -551,7 +551,7 @@ ZEND_METHOD(exception, __toString) fci.function_table = &Z_OBJCE_P(exception)->function_table; fci.function_name = &fname; fci.symbol_table = NULL; - fci.object_ptr = exception; + fci.object_pp = &exception; fci.retval_ptr_ptr = &trace; fci.param_count = 0; fci.params = NULL; @@ -605,6 +605,7 @@ ZEND_METHOD(exception, __toString) * And never try to change the state of exceptions and never implement anything * that gives the user anything to accomplish this. */ +static ZEND_BEGIN_ARG_INFO_EX(arginfo_exception___construct, 0, 0, 0) ZEND_ARG_INFO(0, message) ZEND_ARG_INFO(0, code) @@ -625,6 +626,7 @@ const static zend_function_entry default_exception_functions[] = { {NULL, NULL, NULL} }; +static ZEND_BEGIN_ARG_INFO_EX(arginfo_error_exception___construct, 0, 0, 0) ZEND_ARG_INFO(0, message) ZEND_ARG_INFO(0, code) diff --git a/Zend/zend_execute_API.c b/Zend/zend_execute_API.c index f356b8d910..96aa0bad23 100644 --- a/Zend/zend_execute_API.c +++ b/Zend/zend_execute_API.c @@ -146,7 +146,6 @@ void init_executor(TSRMLS_D) /* {{{ */ EG(in_execution) = 0; EG(in_autoload) = NULL; EG(autoload_func) = NULL; - EG(error_handling) = EH_NORMAL; zend_vm_stack_init(TSRMLS_C); zend_vm_stack_push((void *) NULL TSRMLS_CC); @@ -504,64 +503,29 @@ ZEND_API int zval_update_constant_ex(zval **pp, void *arg, zend_class_entry *sco is_ref = Z_ISREF_P(p); if (!zend_get_constant_ex(p->value.str.val, p->value.str.len, &const_value, scope, Z_REAL_TYPE_P(p) TSRMLS_CC)) { - char *actual = Z_STRVAL_P(p); - - if ((colon = zend_memrchr(Z_STRVAL_P(p), ':', Z_STRLEN_P(p)))) { - zend_error(E_ERROR, "Undefined class constant '%s'", Z_STRVAL_P(p)); + if ((colon = zend_memrchr(Z_STRVAL_P(p), ':', Z_STRLEN_P(p))) && + colon > Z_STRVAL_P(p) && + *(colon-1) == ':') { + if ((Z_TYPE_P(p) & IS_CONSTANT_RT_NS_CHECK) == 0) { + zend_error(E_ERROR, "Undefined class constant '%s'", Z_STRVAL_P(p)); + } else if (Z_TYPE_P(p) & ZEND_FETCH_CLASS_RT_NS_CHECK) { + zend_error(E_ERROR, "Undefined constant '%s'", Z_STRVAL_P(p)); + } Z_STRLEN_P(p) -= ((colon - Z_STRVAL_P(p)) + 1); if (inline_change) { - colon = estrndup(colon, Z_STRLEN_P(p)); + colon = estrndup(colon + 1, Z_STRLEN_P(p)); efree(Z_STRVAL_P(p)); Z_STRVAL_P(p) = colon; } else { Z_STRVAL_P(p) = colon + 1; } - } else { - char *save = actual, *slash; - int actual_len = Z_STRLEN_P(p); - if ((Z_TYPE_P(p) & IS_CONSTANT_UNQUALIFIED) && (slash = (char *)zend_memrchr(actual, '\\', actual_len))) { - actual = slash + 1; - actual_len -= (actual - Z_STRVAL_P(p)); - if (inline_change) { - actual = estrndup(actual, actual_len); - Z_STRVAL_P(p) = actual; - Z_STRLEN_P(p) = actual_len; - } - } - if (actual[0] == '\\') { - if (inline_change) { - memmove(Z_STRVAL_P(p), Z_STRVAL_P(p)+1, Z_STRLEN_P(p)); - --Z_STRLEN_P(p); - } else { - ++actual; - } - --actual_len; - } - if ((Z_TYPE_P(p) & IS_CONSTANT_UNQUALIFIED) == 0) { - int fix_save = 0; - if (save[0] == '\\') { - save++; - fix_save = 1; - } - zend_error(E_ERROR, "Undefined constant '%s'", save); - if (fix_save) { - save--; - } - if (inline_change) { - efree(save); - } - save = NULL; - } - if (inline_change && save && save != actual) { - efree(save); - } - zend_error(E_NOTICE, "Use of undefined constant %s - assumed '%s'", actual, actual); - p->type = IS_STRING; - if (!inline_change) { - Z_STRVAL_P(p) = actual; - Z_STRLEN_P(p) = actual_len; - zval_copy_ctor(p); - } + } else if (Z_TYPE_P(p) & ZEND_FETCH_CLASS_RT_NS_CHECK) { + zend_error(E_ERROR, "Undefined constant '%s'", Z_STRVAL_P(p)); + } + zend_error(E_NOTICE, "Use of undefined constant %s - assumed '%s'", Z_STRVAL_P(p), Z_STRVAL_P(p)); + p->type = IS_STRING; + if (!inline_change) { + zval_copy_ctor(p); } } else { if (inline_change) { @@ -606,29 +570,20 @@ ZEND_API int zval_update_constant_ex(zval **pp, void *arg, zend_class_entry *sco continue; } if (!zend_get_constant_ex(str_index, str_index_len - 3, &const_value, scope, str_index[str_index_len - 2] TSRMLS_CC)) { - char *actual, *save = str_index; - if ((colon = zend_memrchr(str_index, ':', str_index_len - 3))) { - zend_error(E_ERROR, "Undefined class constant '%s'", str_index); - str_index_len -= ((colon - str_index) + 1); - str_index = colon; - } else { - if (str_index[str_index_len - 2] & IS_CONSTANT_UNQUALIFIED) { - actual = (char *)zend_memrchr(str_index, '\\', str_index_len - 3) + 1; - str_index_len -= (actual - str_index); - str_index = actual; - } - if (str_index[0] == '\\') { - ++str_index; - --str_index_len; + if ((colon = zend_memrchr(str_index, ':', str_index_len - 3)) && + colon > str_index && + *(colon-1) == ':') { + if ((str_index[str_index_len - 2] & IS_CONSTANT_RT_NS_CHECK) == 0) { + zend_error(E_ERROR, "Undefined class constant '%s'", str_index); + } else if (str_index[str_index_len - 2] & ZEND_FETCH_CLASS_RT_NS_CHECK) { + zend_error(E_ERROR, "Undefined constant '%s'", str_index); } - if (save[0] == '\\') { - ++save; - } - if ((str_index[str_index_len - 2] & IS_CONSTANT_UNQUALIFIED) == 0) { - zend_error(E_ERROR, "Undefined constant '%s'", save); - } - zend_error(E_NOTICE, "Use of undefined constant %s - assumed '%s'", str_index, str_index); - } + str_index_len -= ((colon - str_index) + 1); + str_index = colon + 1; + } else if (str_index[str_index_len - 2] & ZEND_FETCH_CLASS_RT_NS_CHECK) { + zend_error(E_ERROR, "Undefined constant '%s'", str_index); + } + zend_error(E_NOTICE, "Use of undefined constant %s - assumed '%s'", str_index, str_index); ZVAL_STRINGL(&const_value, str_index, str_index_len-3, 1); } @@ -715,7 +670,7 @@ int call_user_function_ex(HashTable *function_table, zval **object_pp, zval *fun fci.size = sizeof(fci); fci.function_table = function_table; - fci.object_ptr = object_pp ? *object_pp : NULL; + fci.object_pp = object_pp; fci.function_name = function_name; fci.retval_ptr_ptr = retval_ptr_ptr; fci.param_count = param_count; @@ -782,7 +737,7 @@ int zend_call_function(zend_fcall_info *fci, zend_fcall_info_cache *fci_cache TS fci_cache = &fci_cache_local; } - if (!zend_is_callable_ex(fci->function_name, fci->object_ptr, IS_CALLABLE_CHECK_SILENT, &callable_name, NULL, fci_cache, &error TSRMLS_CC)) { + if (!zend_is_callable_ex(fci->function_name, fci->object_pp, IS_CALLABLE_CHECK_SILENT, &callable_name, NULL, fci_cache, &error TSRMLS_CC)) { if (error) { zend_error(E_WARNING, "Invalid callback %s, %s", callable_name, error); efree(error); @@ -805,10 +760,10 @@ int zend_call_function(zend_fcall_info *fci, zend_fcall_info_cache *fci_cache TS EX(function_state).function = fci_cache->function_handler; calling_scope = fci_cache->calling_scope; called_scope = fci_cache->called_scope; - fci->object_ptr = fci_cache->object_ptr; - EX(object) = fci->object_ptr; - if (fci->object_ptr && Z_TYPE_P(fci->object_ptr) == IS_OBJECT && - (!EG(objects_store).object_buckets || !EG(objects_store).object_buckets[Z_OBJ_HANDLE_P(fci->object_ptr)].valid)) { + fci->object_pp = fci_cache->object_pp; + EX(object) = fci->object_pp ? *fci->object_pp : NULL; + if (fci->object_pp && *fci->object_pp && Z_TYPE_PP(fci->object_pp) == IS_OBJECT && + (!EG(objects_store).object_buckets || !EG(objects_store).object_buckets[Z_OBJ_HANDLE_PP(fci->object_pp)].valid)) { return FAILURE; } @@ -886,11 +841,11 @@ int zend_call_function(zend_fcall_info *fci, zend_fcall_info_cache *fci_cache TS EG(called_scope) = NULL; } - if (fci->object_ptr) { + if (fci->object_pp) { if ((EX(function_state).function->common.fn_flags & ZEND_ACC_STATIC)) { EG(This) = NULL; } else { - EG(This) = fci->object_ptr; + EG(This) = *fci->object_pp; if (!PZVAL_IS_REF(EG(This))) { Z_ADDREF_P(EG(This)); /* For $this pointer */ @@ -943,11 +898,14 @@ int zend_call_function(zend_fcall_info *fci, zend_fcall_info_cache *fci_cache TS EG(opline_ptr) = original_opline_ptr; } else if (EX(function_state).function->type == ZEND_INTERNAL_FUNCTION) { int call_via_handler = (EX(function_state).function->common.fn_flags & ZEND_ACC_CALL_VIA_HANDLER) != 0; + zend_error_handling error_handling; + zend_save_error_handling(&error_handling TSRMLS_CC); ALLOC_INIT_ZVAL(*fci->retval_ptr_ptr); if (EX(function_state).function->common.scope) { EG(scope) = EX(function_state).function->common.scope; } - ((zend_internal_function *) EX(function_state).function)->handler(fci->param_count, *fci->retval_ptr_ptr, fci->retval_ptr_ptr, fci->object_ptr, 1 TSRMLS_CC); + ((zend_internal_function *) EX(function_state).function)->handler(fci->param_count, *fci->retval_ptr_ptr, fci->retval_ptr_ptr, (fci->object_pp?*fci->object_pp:NULL), 1 TSRMLS_CC); + zend_restore_error_handling(&error_handling TSRMLS_CC); /* We shouldn't fix bad extensions here, because it can break proper ones (Bug #34045) if (!EX(function_state).function->common.return_reference) @@ -967,8 +925,11 @@ int zend_call_function(zend_fcall_info *fci, zend_fcall_info_cache *fci_cache TS ALLOC_INIT_ZVAL(*fci->retval_ptr_ptr); /* Not sure what should be done here if it's a static method */ - if (fci->object_ptr) { - Z_OBJ_HT_P(fci->object_ptr)->call_method(EX(function_state).function->common.function_name, fci->param_count, *fci->retval_ptr_ptr, fci->retval_ptr_ptr, fci->object_ptr, 1 TSRMLS_CC); + if (fci->object_pp) { + zend_error_handling error_handling; + zend_save_error_handling(&error_handling TSRMLS_CC); + Z_OBJ_HT_PP(fci->object_pp)->call_method(EX(function_state).function->common.function_name, fci->param_count, *fci->retval_ptr_ptr, fci->retval_ptr_ptr, *fci->object_pp, 1 TSRMLS_CC); + zend_restore_error_handling(&error_handling TSRMLS_CC); } else { zend_error_noreturn(E_ERROR, "Cannot call overloaded function for non-object"); } @@ -1006,9 +967,10 @@ ZEND_API int zend_lookup_class_ex(const char *name, int name_length, int use_aut zval autoload_function; zval *class_name_ptr; zval *retval_ptr = NULL; - int retval, lc_length; + int retval; char *lc_name; char *lc_free; + zval *exception; zend_fcall_info fcall_info; zend_fcall_info_cache fcall_cache; char dummy = 1; @@ -1020,14 +982,13 @@ ZEND_API int zend_lookup_class_ex(const char *name, int name_length, int use_aut lc_free = lc_name = do_alloca(name_length + 1, use_heap); zend_str_tolower_copy(lc_name, name, name_length); - lc_length = name_length + 1; - if (lc_name[0] == '\\') { - lc_name += 1; - lc_length -= 1; + if (lc_name[0] == ':' && lc_name[1] == ':') { + lc_name += 2; + name_length -= 2; } - if (zend_hash_find(EG(class_table), lc_name, lc_length, (void **) ce) == SUCCESS) { + if (zend_hash_find(EG(class_table), lc_name, name_length + 1, (void **) ce) == SUCCESS) { free_alloca(lc_free, use_heap); return SUCCESS; } @@ -1045,7 +1006,7 @@ ZEND_API int zend_lookup_class_ex(const char *name, int name_length, int use_aut zend_hash_init(EG(in_autoload), 0, NULL, NULL, 0); } - if (zend_hash_add(EG(in_autoload), lc_name, lc_length, (void**)&dummy, sizeof(char), NULL) == FAILURE) { + if (zend_hash_add(EG(in_autoload), lc_name, name_length + 1, (void**)&dummy, sizeof(char), NULL) == FAILURE) { free_alloca(lc_free, use_heap); return FAILURE; } @@ -1065,35 +1026,42 @@ ZEND_API int zend_lookup_class_ex(const char *name, int name_length, int use_aut fcall_info.retval_ptr_ptr = &retval_ptr; fcall_info.param_count = 1; fcall_info.params = args; - fcall_info.object_ptr = NULL; + fcall_info.object_pp = NULL; fcall_info.no_separation = 1; fcall_cache.initialized = EG(autoload_func) ? 1 : 0; fcall_cache.function_handler = EG(autoload_func); fcall_cache.calling_scope = NULL; fcall_cache.called_scope = NULL; - fcall_cache.object_ptr = NULL; + fcall_cache.object_pp = NULL; + exception = EG(exception); zend_exception_save(TSRMLS_C); retval = zend_call_function(&fcall_info, &fcall_cache TSRMLS_CC); - zend_exception_restore(TSRMLS_C); - EG(autoload_func) = fcall_cache.function_handler; zval_ptr_dtor(&class_name_ptr); - zend_hash_del(EG(in_autoload), lc_name, lc_length); + zend_hash_del(EG(in_autoload), lc_name, name_length + 1); - if (retval_ptr) { - zval_ptr_dtor(&retval_ptr); + if (retval == FAILURE) { + zend_exception_restore(TSRMLS_C); + free_alloca(lc_free, use_heap); + return FAILURE; } - if (retval == FAILURE) { + if (EG(exception) && exception) { + zend_exception_restore(TSRMLS_C); free_alloca(lc_free, use_heap); + zend_error(E_ERROR, "Function %s(%s) threw an exception of type '%s'", ZEND_AUTOLOAD_FUNC_NAME, name, Z_OBJCE_P(EG(exception))->name); return FAILURE; } + zend_exception_restore(TSRMLS_C); + if (retval_ptr) { + zval_ptr_dtor(&retval_ptr); + } - retval = zend_hash_find(EG(class_table), lc_name, lc_length, (void **) ce); + retval = zend_hash_find(EG(class_table), lc_name, name_length + 1, (void **) ce); free_alloca(lc_free, use_heap); return retval; } @@ -1467,6 +1435,7 @@ zend_class_entry *zend_fetch_class(const char *class_name, uint class_name_len, { zend_class_entry **pce; int use_autoload = (fetch_type & ZEND_FETCH_CLASS_NO_AUTOLOAD) == 0; + int rt_ns_check = (fetch_type & ZEND_FETCH_CLASS_RT_NS_CHECK) ? 1 : 0; int silent = (fetch_type & ZEND_FETCH_CLASS_SILENT) != 0; fetch_type &= ZEND_FETCH_CLASS_MASK; @@ -1500,14 +1469,36 @@ check_fetch_type: break; } - if (zend_lookup_class_ex(class_name, class_name_len, use_autoload, &pce TSRMLS_CC) == FAILURE) { + if (zend_lookup_class_ex(class_name, class_name_len, (!rt_ns_check & use_autoload), &pce TSRMLS_CC) == FAILURE) { + if (rt_ns_check) { + /* Check if we have internal class with the same name */ + char *php_name; + uint php_name_len; + + php_name = zend_memrchr(class_name, ':', class_name_len); + if (php_name) { + php_name++; + php_name_len = class_name_len - (php_name - class_name); + php_name = zend_str_tolower_dup(php_name, php_name_len); + if (zend_hash_find(EG(class_table), php_name, php_name_len + 1, (void **) &pce) == SUCCESS && + (*pce)->type == ZEND_INTERNAL_CLASS + ) { + efree(php_name); + return *pce; + } + efree(php_name); + } + } if (use_autoload) { - if (!silent && !EG(exception)) { + if (rt_ns_check && zend_lookup_class_ex(class_name, class_name_len, 1, &pce TSRMLS_CC) == SUCCESS) { + return *pce; + } + if (!silent) { if (fetch_type == ZEND_FETCH_CLASS_INTERFACE) { zend_error(E_ERROR, "Interface '%s' not found", class_name); } else { zend_error(E_ERROR, "Class '%s' not found", class_name); - } + } } } return NULL; @@ -1617,20 +1608,8 @@ ZEND_API int zend_delete_global_variable(char *name, int name_len TSRMLS_DC) /* ZEND_API void zend_rebuild_symbol_table(TSRMLS_D) /* {{{ */ { zend_uint i; - zend_execute_data *ex; if (!EG(active_symbol_table)) { - - /* Search for last called user function */ - ex = EG(current_execute_data); - while (ex && !ex->op_array) { - ex = ex->prev_execute_data; - } - if (ex && ex->symbol_table) { - EG(active_symbol_table) = ex->symbol_table; - return; - } - if (EG(symtable_cache_ptr)>=EG(symtable_cache)) { /*printf("Cache hit! Reusing %x\n", symtable_cache[symtable_cache_ptr]);*/ EG(active_symbol_table) = *(EG(symtable_cache_ptr)--); @@ -1639,24 +1618,24 @@ ZEND_API void zend_rebuild_symbol_table(TSRMLS_D) /* {{{ */ zend_hash_init(EG(active_symbol_table), 0, NULL, ZVAL_PTR_DTOR, 0); /*printf("Cache miss! Initialized %x\n", EG(active_symbol_table));*/ } - if (ex && ex->op_array) { - ex->symbol_table = EG(active_symbol_table); + if (EG(current_execute_data) && EG(current_execute_data)->op_array) { + EG(current_execute_data)->symbol_table = EG(active_symbol_table); - if (ex->op_array->this_var != -1 && - !ex->CVs[ex->op_array->this_var] && + if (EG(current_execute_data)->op_array->this_var != -1 && + !EG(current_execute_data)->CVs[EG(current_execute_data)->op_array->this_var] && EG(This)) { - ex->CVs[ex->op_array->this_var] = (zval**)ex->CVs + ex->op_array->last_var + ex->op_array->this_var; - *ex->CVs[ex->op_array->this_var] = EG(This); + EG(current_execute_data)->CVs[EG(current_execute_data)->op_array->this_var] = (zval**)EG(current_execute_data)->CVs + EG(current_execute_data)->op_array->last_var + EG(current_execute_data)->op_array->this_var; + *EG(current_execute_data)->CVs[EG(current_execute_data)->op_array->this_var] = EG(This); } - for (i = 0; i < ex->op_array->last_var; i++) { - if (ex->CVs[i]) { + for (i = 0; i < EG(current_execute_data)->op_array->last_var; i++) { + if (EG(current_execute_data)->CVs[i]) { zend_hash_quick_update(EG(active_symbol_table), - ex->op_array->vars[i].name, - ex->op_array->vars[i].name_len + 1, - ex->op_array->vars[i].hash_value, - (void**)ex->CVs[i], + EG(current_execute_data)->op_array->vars[i].name, + EG(current_execute_data)->op_array->vars[i].name_len + 1, + EG(current_execute_data)->op_array->vars[i].hash_value, + (void**)EG(current_execute_data)->CVs[i], sizeof(zval*), - (void**)&ex->CVs[i]); + (void**)&EG(current_execute_data)->CVs[i]); } } } diff --git a/Zend/zend_globals.h b/Zend/zend_globals.h index d30dd89b11..88fe44e083 100644 --- a/Zend/zend_globals.h +++ b/Zend/zend_globals.h @@ -134,8 +134,6 @@ struct _zend_compiler_globals { zval *current_namespace; HashTable *current_import; - zend_bool in_namespace; - zend_bool has_bracketed_namespaces; HashTable *labels; zend_stack labels_stack; diff --git a/Zend/zend_ini_scanner.c b/Zend/zend_ini_scanner.c index cdfb643632..c19b8f0b9c 100644 --- a/Zend/zend_ini_scanner.c +++ b/Zend/zend_ini_scanner.c @@ -1,4 +1,4 @@ -/* Generated by re2c 0.13.5 on Wed Nov 5 22:35:51 2008 */ +/* Generated by re2c 0.13.5 on Sun Aug 17 23:55:27 2008 */ #line 1 "Zend/zend_ini_scanner.l" /* +----------------------------------------------------------------------+ @@ -190,7 +190,7 @@ int zend_ini_scanner_get_lineno(TSRMLS_D) */ char *zend_ini_scanner_get_filename(TSRMLS_D) { - return ini_filename ? ini_filename : "Unknown"; + return ini_filename; } /* }}} */ @@ -246,10 +246,21 @@ static void zend_ini_escape_string(zval *lval, char *str, int len, char quote_ty if (*s == '\\') { s++; if (s >= end) { - *t++ = '\\'; continue; } switch (*s) { + case 'n': + *t++ = '\n'; + Z_STRLEN_P(lval)--; + break; + case 'r': + *t++ = '\r'; + Z_STRLEN_P(lval)--; + break; + case 't': + *t++ = '\t'; + Z_STRLEN_P(lval)--; + break; case '"': if (*s != quote_type) { *t++ = '\\'; @@ -294,7 +305,7 @@ restart: } -#line 298 "Zend/zend_ini_scanner.c" +#line 309 "Zend/zend_ini_scanner.c" { YYCTYPE yych; unsigned int yyaccept = 0; @@ -399,7 +410,6 @@ yyc_INITIAL: case '|': case '}': case '~': goto yy9; - case '#': goto yy11; case '0': case '1': case '2': @@ -452,20 +462,20 @@ yyc_INITIAL: case 'v': case 'w': case 'x': - case 'z': goto yy12; - case ';': goto yy14; - case '=': goto yy15; + case 'z': goto yy11; + case ';': goto yy13; + case '=': goto yy14; case 'F': - case 'f': goto yy17; + case 'f': goto yy16; case 'N': - case 'n': goto yy18; + case 'n': goto yy17; case 'O': - case 'o': goto yy19; + case 'o': goto yy18; case 'T': - case 't': goto yy20; + case 't': goto yy19; case 'Y': - case 'y': goto yy21; - case '[': goto yy22; + case 'y': goto yy20; + case '[': goto yy21; default: goto yy2; } yy2: @@ -477,80 +487,75 @@ yy2: { return 0; } -#line 481 "Zend/zend_ini_scanner.c" +#line 491 "Zend/zend_ini_scanner.c" yy4: YYDEBUG(4, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - goto yy62; + goto yy56; yy5: YYDEBUG(5, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 467 "Zend/zend_ini_scanner.l" +#line 474 "Zend/zend_ini_scanner.l" { /* eat whitespace */ goto restart; } -#line 495 "Zend/zend_ini_scanner.c" +#line 505 "Zend/zend_ini_scanner.c" yy6: YYDEBUG(6, *YYCURSOR); ++YYCURSOR; yy7: YYDEBUG(7, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 472 "Zend/zend_ini_scanner.l" +#line 479 "Zend/zend_ini_scanner.l" { SCNG(lineno)++; return END_OF_LINE; } -#line 507 "Zend/zend_ini_scanner.c" +#line 517 "Zend/zend_ini_scanner.c" yy8: YYDEBUG(8, *YYCURSOR); yych = *++YYCURSOR; - if (yych == '\n') goto yy60; + if (yych == '\n') goto yy54; goto yy7; yy9: YYDEBUG(9, *YYCURSOR); ++YYCURSOR; YYDEBUG(10, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 422 "Zend/zend_ini_scanner.l" +#line 433 "Zend/zend_ini_scanner.l" { /* Disallow these chars outside option values */ return yytext[0]; } -#line 522 "Zend/zend_ini_scanner.c" +#line 532 "Zend/zend_ini_scanner.c" yy11: YYDEBUG(11, *YYCURSOR); - yyaccept = 1; - yych = *(YYMARKER = ++YYCURSOR); - goto yy56; -yy12: - YYDEBUG(12, *YYCURSOR); ++YYCURSOR; yych = *YYCURSOR; - goto yy25; -yy13: - YYDEBUG(13, *YYCURSOR); + goto yy24; +yy12: + YYDEBUG(12, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 382 "Zend/zend_ini_scanner.l" +#line 393 "Zend/zend_ini_scanner.l" { /* Get option name */ RETURN_TOKEN(TC_LABEL, yytext, yyleng); } -#line 540 "Zend/zend_ini_scanner.c" -yy14: - YYDEBUG(14, *YYCURSOR); +#line 545 "Zend/zend_ini_scanner.c" +yy13: + YYDEBUG(13, *YYCURSOR); yyaccept = 1; yych = *(YYMARKER = ++YYCURSOR); - goto yy51; -yy15: - YYDEBUG(15, *YYCURSOR); + goto yy50; +yy14: + YYDEBUG(14, *YYCURSOR); ++YYCURSOR; yych = *YYCURSOR; - goto yy49; -yy16: - YYDEBUG(16, *YYCURSOR); + goto yy48; +yy15: + YYDEBUG(15, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 386 "Zend/zend_ini_scanner.l" +#line 397 "Zend/zend_ini_scanner.l" { /* Start option value */ if (SCNG(scanner_mode) == ZEND_INI_SCANNER_RAW) { yy_push_state(ST_RAW TSRMLS_CC); @@ -559,63 +564,63 @@ yy16: } return '='; } -#line 563 "Zend/zend_ini_scanner.c" +#line 568 "Zend/zend_ini_scanner.c" +yy16: + YYDEBUG(16, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'A') goto yy44; + if (yych == 'a') goto yy44; + goto yy24; yy17: YYDEBUG(17, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'A') goto yy45; - if (yych == 'a') goto yy45; - goto yy25; -yy18: - YYDEBUG(18, *YYCURSOR); - yych = *++YYCURSOR; if (yych <= 'U') { - if (yych == 'O') goto yy41; - if (yych <= 'T') goto yy25; - goto yy42; + if (yych == 'O') goto yy40; + if (yych <= 'T') goto yy24; + goto yy41; } else { if (yych <= 'o') { - if (yych <= 'n') goto yy25; - goto yy41; + if (yych <= 'n') goto yy24; + goto yy40; } else { - if (yych == 'u') goto yy42; - goto yy25; + if (yych == 'u') goto yy41; + goto yy24; } } -yy19: - YYDEBUG(19, *YYCURSOR); +yy18: + YYDEBUG(18, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'N') { - if (yych == 'F') goto yy36; - if (yych <= 'M') goto yy25; - goto yy30; + if (yych == 'F') goto yy35; + if (yych <= 'M') goto yy24; + goto yy29; } else { if (yych <= 'f') { - if (yych <= 'e') goto yy25; - goto yy36; + if (yych <= 'e') goto yy24; + goto yy35; } else { - if (yych == 'n') goto yy30; - goto yy25; + if (yych == 'n') goto yy29; + goto yy24; } } +yy19: + YYDEBUG(19, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'R') goto yy33; + if (yych == 'r') goto yy33; + goto yy24; yy20: YYDEBUG(20, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'R') goto yy34; - if (yych == 'r') goto yy34; - goto yy25; + if (yych == 'E') goto yy25; + if (yych == 'e') goto yy25; + goto yy24; yy21: YYDEBUG(21, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy26; - if (yych == 'e') goto yy26; - goto yy25; -yy22: - YYDEBUG(22, *YYCURSOR); ++YYCURSOR; - YYDEBUG(23, *YYCURSOR); + YYDEBUG(22, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 320 "Zend/zend_ini_scanner.l" +#line 331 "Zend/zend_ini_scanner.l" { /* Section start */ /* Enter section data lookup state */ if (SCNG(scanner_mode) == ZEND_INI_SCANNER_RAW) { @@ -625,37 +630,37 @@ yy22: } return TC_SECTION; } -#line 629 "Zend/zend_ini_scanner.c" -yy24: - YYDEBUG(24, *YYCURSOR); +#line 634 "Zend/zend_ini_scanner.c" +yy23: + YYDEBUG(23, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; -yy25: - YYDEBUG(25, *YYCURSOR); +yy24: + YYDEBUG(24, *YYCURSOR); if (yybm[0+yych] & 32) { - goto yy24; + goto yy23; } - if (yych == '[') goto yy27; - goto yy13; + if (yych == '[') goto yy26; + goto yy12; +yy25: + YYDEBUG(25, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'S') goto yy29; + if (yych == 's') goto yy29; + goto yy24; yy26: YYDEBUG(26, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'S') goto yy30; - if (yych == 's') goto yy30; - goto yy25; -yy27: - YYDEBUG(27, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - YYDEBUG(28, *YYCURSOR); + YYDEBUG(27, *YYCURSOR); if (yybm[0+yych] & 64) { - goto yy27; + goto yy26; } - YYDEBUG(29, *YYCURSOR); + YYDEBUG(28, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 345 "Zend/zend_ini_scanner.l" +#line 356 "Zend/zend_ini_scanner.l" { /* Start of option with offset */ /* Eat trailing whitespace and [ */ EAT_TRAILING_WHITESPACE_EX('['); @@ -665,236 +670,204 @@ yy27: RETURN_TOKEN(TC_OFFSET, yytext, yyleng); } -#line 669 "Zend/zend_ini_scanner.c" -yy30: - YYDEBUG(30, *YYCURSOR); +#line 674 "Zend/zend_ini_scanner.c" +yy29: + YYDEBUG(29, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 32) { - goto yy24; + goto yy23; } - if (yych == '[') goto yy27; - goto yy33; -yy31: - YYDEBUG(31, *YYCURSOR); + if (yych == '[') goto yy26; + goto yy32; +yy30: + YYDEBUG(30, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 374 "Zend/zend_ini_scanner.l" +#line 385 "Zend/zend_ini_scanner.l" { /* TRUE value (when used outside option value/offset this causes parse error!) */ RETURN_TOKEN(BOOL_TRUE, "1", 1); } -#line 685 "Zend/zend_ini_scanner.c" -yy32: - YYDEBUG(32, *YYCURSOR); +#line 690 "Zend/zend_ini_scanner.c" +yy31: + YYDEBUG(31, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; +yy32: + YYDEBUG(32, *YYCURSOR); + if (yych == '\t') goto yy31; + if (yych == ' ') goto yy31; + goto yy30; yy33: YYDEBUG(33, *YYCURSOR); - if (yych == '\t') goto yy32; - if (yych == ' ') goto yy32; - goto yy31; + yych = *++YYCURSOR; + if (yych == 'U') goto yy34; + if (yych != 'u') goto yy24; yy34: YYDEBUG(34, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'U') goto yy35; - if (yych != 'u') goto yy25; + if (yych == 'E') goto yy29; + if (yych == 'e') goto yy29; + goto yy24; yy35: YYDEBUG(35, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy30; - if (yych == 'e') goto yy30; - goto yy25; + if (yych == 'F') goto yy36; + if (yych != 'f') goto yy24; yy36: YYDEBUG(36, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'F') goto yy37; - if (yych != 'f') goto yy25; -yy37: - YYDEBUG(37, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 32) { - goto yy24; + goto yy23; } - if (yych == '[') goto yy27; - goto yy40; -yy38: - YYDEBUG(38, *YYCURSOR); + if (yych == '[') goto yy26; + goto yy39; +yy37: + YYDEBUG(37, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 378 "Zend/zend_ini_scanner.l" +#line 389 "Zend/zend_ini_scanner.l" { /* FALSE value (when used outside option value/offset this causes parse error!)*/ RETURN_TOKEN(BOOL_FALSE, "", 0); } -#line 727 "Zend/zend_ini_scanner.c" -yy39: - YYDEBUG(39, *YYCURSOR); +#line 732 "Zend/zend_ini_scanner.c" +yy38: + YYDEBUG(38, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; +yy39: + YYDEBUG(39, *YYCURSOR); + if (yych == '\t') goto yy38; + if (yych == ' ') goto yy38; + goto yy37; yy40: YYDEBUG(40, *YYCURSOR); - if (yych == '\t') goto yy39; - if (yych == ' ') goto yy39; - goto yy38; -yy41: - YYDEBUG(41, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'Z') { if (yych <= '9') { - if (yych <= ',') goto yy40; - if (yych == '/') goto yy40; - goto yy24; + if (yych <= ',') goto yy39; + if (yych == '/') goto yy39; + goto yy23; } else { - if (yych <= '@') goto yy40; - if (yych == 'N') goto yy44; - goto yy24; + if (yych <= '@') goto yy39; + if (yych == 'N') goto yy43; + goto yy23; } } else { if (yych <= '`') { - if (yych <= '[') goto yy27; - if (yych == '_') goto yy24; - goto yy40; + if (yych <= '[') goto yy26; + if (yych == '_') goto yy23; + goto yy39; } else { - if (yych == 'n') goto yy44; - if (yych <= 'z') goto yy24; - goto yy40; + if (yych == 'n') goto yy43; + if (yych <= 'z') goto yy23; + goto yy39; } } +yy41: + YYDEBUG(41, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'L') goto yy42; + if (yych != 'l') goto yy24; yy42: YYDEBUG(42, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'L') goto yy43; - if (yych != 'l') goto yy25; + if (yych == 'L') goto yy36; + if (yych == 'l') goto yy36; + goto yy24; yy43: YYDEBUG(43, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'L') goto yy37; - if (yych == 'l') goto yy37; - goto yy25; + if (yych == 'E') goto yy36; + if (yych == 'e') goto yy36; + goto yy24; yy44: YYDEBUG(44, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy37; - if (yych == 'e') goto yy37; - goto yy25; + if (yych == 'L') goto yy45; + if (yych != 'l') goto yy24; yy45: YYDEBUG(45, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'L') goto yy46; - if (yych != 'l') goto yy25; + if (yych == 'S') goto yy46; + if (yych != 's') goto yy24; yy46: YYDEBUG(46, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'S') goto yy47; - if (yych != 's') goto yy25; + if (yych == 'E') goto yy36; + if (yych == 'e') goto yy36; + goto yy24; yy47: YYDEBUG(47, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy37; - if (yych == 'e') goto yy37; - goto yy25; -yy48: - YYDEBUG(48, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; +yy48: + YYDEBUG(48, *YYCURSOR); + if (yych == '\t') goto yy47; + if (yych == ' ') goto yy47; + goto yy15; yy49: YYDEBUG(49, *YYCURSOR); - if (yych == '\t') goto yy48; - if (yych == ' ') goto yy48; - goto yy16; -yy50: - YYDEBUG(50, *YYCURSOR); ++YYCURSOR; YYFILL(2); yych = *YYCURSOR; -yy51: - YYDEBUG(51, *YYCURSOR); +yy50: + YYDEBUG(50, *YYCURSOR); if (yybm[0+yych] & 128) { - goto yy50; + goto yy49; } - if (yych >= '\r') goto yy54; + if (yych >= '\r') goto yy53; +yy51: + YYDEBUG(51, *YYCURSOR); + ++YYCURSOR; yy52: YYDEBUG(52, *YYCURSOR); - ++YYCURSOR; -yy53: - YYDEBUG(53, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 477 "Zend/zend_ini_scanner.l" +#line 484 "Zend/zend_ini_scanner.l" { /* Comment */ BEGIN(INITIAL); SCNG(lineno)++; return END_OF_LINE; } -#line 828 "Zend/zend_ini_scanner.c" +#line 833 "Zend/zend_ini_scanner.c" +yy53: + YYDEBUG(53, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == '\n') goto yy51; + goto yy52; yy54: YYDEBUG(54, *YYCURSOR); yych = *++YYCURSOR; - if (yych == '\n') goto yy52; - goto yy53; + goto yy7; yy55: YYDEBUG(55, *YYCURSOR); - ++YYCURSOR; - YYFILL(2); - yych = *YYCURSOR; -yy56: - YYDEBUG(56, *YYCURSOR); - if (yych == '\n') goto yy57; - if (yych == '\r') goto yy59; - goto yy55; -yy57: - YYDEBUG(57, *YYCURSOR); - ++YYCURSOR; -yy58: - YYDEBUG(58, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 483 "Zend/zend_ini_scanner.l" - { /* #Comment */ - zend_error(E_DEPRECATED, "Comments starting with '#' are deprecated in %s on line %d", zend_ini_scanner_get_filename(TSRMLS_C), SCNG(lineno)); - BEGIN(INITIAL); - SCNG(lineno)++; - return END_OF_LINE; -} -#line 857 "Zend/zend_ini_scanner.c" -yy59: - YYDEBUG(59, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '\n') goto yy57; - goto yy58; -yy60: - YYDEBUG(60, *YYCURSOR); - yych = *++YYCURSOR; - goto yy7; -yy61: - YYDEBUG(61, *YYCURSOR); yyaccept = 0; YYMARKER = ++YYCURSOR; YYFILL(2); yych = *YYCURSOR; -yy62: - YYDEBUG(62, *YYCURSOR); - if (yych <= ' ') { +yy56: + YYDEBUG(56, *YYCURSOR); + if (yych <= 0x1F) { if (yych <= '\n') { if (yych <= 0x08) goto yy5; - if (yych <= '\t') goto yy61; - goto yy60; + if (yych <= '\t') goto yy55; + goto yy54; } else { - if (yych == '\r') goto yy63; - if (yych <= 0x1F) goto yy5; - goto yy61; + if (yych != '\r') goto yy5; } } else { - if (yych <= ':') { - if (yych == '#') goto yy55; - goto yy5; + if (yych <= ';') { + if (yych <= ' ') goto yy55; + if (yych <= ':') goto yy5; + goto yy49; } else { - if (yych <= ';') goto yy50; - if (yych == '=') goto yy48; + if (yych == '=') goto yy47; goto yy5; } } -yy63: - YYDEBUG(63, *YYCURSOR); + YYDEBUG(57, *YYCURSOR); ++YYCURSOR; - if ((yych = *YYCURSOR) == '\n') goto yy60; + if ((yych = *YYCURSOR) == '\n') goto yy54; goto yy7; } /* *********************************** */ @@ -934,197 +907,162 @@ yyc_ST_DOUBLE_QUOTES: 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, }; - YYDEBUG(64, *YYCURSOR); - YYFILL(3); + YYDEBUG(58, *YYCURSOR); + YYFILL(2); yych = *YYCURSOR; if (yych <= '#') { - if (yych == '"') goto yy68; + if (yych == '"') goto yy62; } else { - if (yych <= '$') goto yy70; - if (yych == '\\') goto yy72; + if (yych <= '$') goto yy64; + if (yych == '\\') goto yy66; } - YYDEBUG(66, *YYCURSOR); + YYDEBUG(60, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - goto yy76; -yy67: - YYDEBUG(67, *YYCURSOR); + goto yy68; +yy61: + YYDEBUG(61, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 449 "Zend/zend_ini_scanner.l" +#line 460 "Zend/zend_ini_scanner.l" { /* Escape double quoted string contents */ - if(yyleng > 1 && yytext[yyleng-1] == '"' && yytext[yyleng-2] == '\\') { - yyless(yyleng-1); - yyleng--; - } zend_ini_escape_string(ini_lval, yytext, yyleng, '"' TSRMLS_CC); return TC_QUOTED_STRING; } -#line 963 "Zend/zend_ini_scanner.c" -yy68: - YYDEBUG(68, *YYCURSOR); +#line 932 "Zend/zend_ini_scanner.c" +yy62: + YYDEBUG(62, *YYCURSOR); ++YYCURSOR; yych = *YYCURSOR; - goto yy90; -yy69: - YYDEBUG(69, *YYCURSOR); + goto yy81; +yy63: + YYDEBUG(63, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 458 "Zend/zend_ini_scanner.l" +#line 465 "Zend/zend_ini_scanner.l" { /* Double quoted '"' string ends */ yy_pop_state(TSRMLS_C); return '"'; } -#line 977 "Zend/zend_ini_scanner.c" -yy70: - YYDEBUG(70, *YYCURSOR); +#line 946 "Zend/zend_ini_scanner.c" +yy64: + YYDEBUG(64, *YYCURSOR); ++YYCURSOR; if ((yych = *YYCURSOR) <= '\\') { - if (yych <= 0x00) goto yy71; - if (yych <= '[') goto yy75; - goto yy79; + if (yych <= 0x00) goto yy65; + if (yych <= '[') goto yy67; + goto yy72; } else { - if (yych == '{') goto yy87; - goto yy75; + if (yych == '{') goto yy78; + goto yy67; } -yy71: - YYDEBUG(71, *YYCURSOR); +yy65: + YYDEBUG(65, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); #line 495 "Zend/zend_ini_scanner.l" { return 0; } -#line 996 "Zend/zend_ini_scanner.c" -yy72: - YYDEBUG(72, *YYCURSOR); - yyaccept = 1; - yych = *(YYMARKER = ++YYCURSOR); - if (yych != '"') goto yy75; - YYDEBUG(73, *YYCURSOR); +#line 965 "Zend/zend_ini_scanner.c" +yy66: + YYDEBUG(66, *YYCURSOR); yych = *++YYCURSOR; - if (yych == '\n') goto yy74; - if (yych != '\r') goto yy75; -yy74: - YYDEBUG(74, *YYCURSOR); - YYCURSOR = YYMARKER; - if (yyaccept <= 0) { - goto yy67; - } else { - goto yy71; - } -yy75: - YYDEBUG(75, *YYCURSOR); +yy67: + YYDEBUG(67, *YYCURSOR); yyaccept = 0; YYMARKER = ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; -yy76: - YYDEBUG(76, *YYCURSOR); +yy68: + YYDEBUG(68, *YYCURSOR); if (yybm[0+yych] & 16) { - goto yy75; + goto yy67; } - if (yych <= '#') goto yy67; - if (yych <= '$') goto yy78; - YYDEBUG(77, *YYCURSOR); + if (yych <= '#') goto yy61; + if (yych <= '$') goto yy70; + YYDEBUG(69, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - if (yych == '"') goto yy84; - goto yy75; -yy78: - YYDEBUG(78, *YYCURSOR); + goto yy67; +yy70: + YYDEBUG(70, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; if (yych <= '\\') { - if (yych <= 0x00) goto yy74; - if (yych <= '[') goto yy75; + if (yych <= 0x00) goto yy71; + if (yych <= '[') goto yy67; + goto yy72; } else { - if (yych == '{') goto yy74; - goto yy75; + if (yych != '{') goto yy67; } -yy79: - YYDEBUG(79, *YYCURSOR); +yy71: + YYDEBUG(71, *YYCURSOR); + YYCURSOR = YYMARKER; + goto yy61; +yy72: + YYDEBUG(72, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; if (yybm[0+yych] & 32) { - goto yy80; + goto yy73; } - if (yych == '\\') goto yy82; - goto yy75; -yy80: - YYDEBUG(80, *YYCURSOR); + if (yych == '\\') goto yy75; + goto yy67; +yy73: + YYDEBUG(73, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - YYDEBUG(81, *YYCURSOR); + YYDEBUG(74, *YYCURSOR); if (yybm[0+yych] & 32) { - goto yy80; + goto yy73; } - if (yych == '\\') goto yy85; - goto yy75; -yy82: - YYDEBUG(82, *YYCURSOR); - ++YYCURSOR; - YYFILL(1); - yych = *YYCURSOR; - YYDEBUG(83, *YYCURSOR); - if (yybm[0+yych] & 16) { - goto yy75; - } - if (yych <= '#') goto yy84; - if (yych <= '$') goto yy80; - goto yy82; -yy84: - YYDEBUG(84, *YYCURSOR); - ++YYCURSOR; - YYFILL(1); - yych = *YYCURSOR; - if (yych == '\n') goto yy67; - if (yych == '\r') goto yy67; - goto yy75; -yy85: - YYDEBUG(85, *YYCURSOR); + if (yych == '\\') goto yy77; + goto yy67; +yy75: + YYDEBUG(75, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - if (yybm[0+yych] & 16) { - goto yy75; + YYDEBUG(76, *YYCURSOR); + if (yybm[0+yych] & 32) { + goto yy73; } - if (yych <= '#') goto yy86; - if (yych <= '$') goto yy80; - goto yy82; -yy86: - YYDEBUG(86, *YYCURSOR); + if (yych == '\\') goto yy75; + goto yy67; +yy77: + YYDEBUG(77, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; if (yybm[0+yych] & 32) { - goto yy80; + goto yy73; } - if (yych == '\\') goto yy82; - goto yy75; -yy87: - YYDEBUG(87, *YYCURSOR); + if (yych == '\\') goto yy75; + goto yy67; +yy78: + YYDEBUG(78, *YYCURSOR); ++YYCURSOR; - YYDEBUG(88, *YYCURSOR); + YYDEBUG(79, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 360 "Zend/zend_ini_scanner.l" +#line 371 "Zend/zend_ini_scanner.l" { /* Variable start */ yy_push_state(ST_VARNAME TSRMLS_CC); return TC_DOLLAR_CURLY; } -#line 1117 "Zend/zend_ini_scanner.c" -yy89: - YYDEBUG(89, *YYCURSOR); +#line 1055 "Zend/zend_ini_scanner.c" +yy80: + YYDEBUG(80, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; -yy90: - YYDEBUG(90, *YYCURSOR); +yy81: + YYDEBUG(81, *YYCURSOR); if (yybm[0+yych] & 128) { - goto yy89; + goto yy80; } - goto yy69; + goto yy63; } /* *********************************** */ yyc_ST_OFFSET: @@ -1163,495 +1101,495 @@ yyc_ST_OFFSET: 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, }; - YYDEBUG(91, *YYCURSOR); + YYDEBUG(82, *YYCURSOR); YYFILL(2); yych = *YYCURSOR; if (yych <= ',') { if (yych <= ' ') { if (yych <= '\n') { - if (yych <= 0x08) goto yy93; - if (yych <= '\t') goto yy95; - goto yy96; + if (yych <= 0x08) goto yy84; + if (yych <= '\t') goto yy86; + goto yy87; } else { - if (yych == '\r') goto yy96; - if (yych >= ' ') goto yy95; + if (yych == '\r') goto yy87; + if (yych >= ' ') goto yy86; } } else { if (yych <= '#') { - if (yych == '"') goto yy98; + if (yych == '"') goto yy89; } else { - if (yych <= '$') goto yy100; - if (yych == '\'') goto yy101; + if (yych <= '$') goto yy91; + if (yych == '\'') goto yy92; } } } else { if (yych <= '@') { if (yych <= '/') { - if (yych <= '-') goto yy102; - if (yych <= '.') goto yy103; + if (yych <= '-') goto yy93; + if (yych <= '.') goto yy94; } else { - if (yych <= '9') goto yy104; - if (yych == ';') goto yy96; + if (yych <= '9') goto yy95; + if (yych == ';') goto yy87; } } else { if (yych <= '\\') { - if (yych <= 'Z') goto yy106; - if (yych >= '\\') goto yy108; + if (yych <= 'Z') goto yy97; + if (yych >= '\\') goto yy99; } else { - if (yych <= ']') goto yy109; - if (yych <= '`') goto yy93; - if (yych <= 'z') goto yy106; + if (yych <= ']') goto yy100; + if (yych <= '`') goto yy84; + if (yych <= 'z') goto yy97; } } } -yy93: - YYDEBUG(93, *YYCURSOR); +yy84: + YYDEBUG(84, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - goto yy112; -yy94: - YYDEBUG(94, *YYCURSOR); + goto yy103; +yy85: + YYDEBUG(85, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 440 "Zend/zend_ini_scanner.l" +#line 451 "Zend/zend_ini_scanner.l" { /* Get rest as section/offset value */ RETURN_TOKEN(TC_STRING, yytext, yyleng); } -#line 1220 "Zend/zend_ini_scanner.c" -yy95: - YYDEBUG(95, *YYCURSOR); +#line 1158 "Zend/zend_ini_scanner.c" +yy86: + YYDEBUG(86, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if (yybm[0+yych] & 128) { - goto yy138; + goto yy129; } - if (yych == '"') goto yy140; - if (yych == ']') goto yy141; - goto yy112; -yy96: - YYDEBUG(96, *YYCURSOR); + if (yych == '"') goto yy131; + if (yych == ']') goto yy132; + goto yy103; +yy87: + YYDEBUG(87, *YYCURSOR); ++YYCURSOR; -yy97: - YYDEBUG(97, *YYCURSOR); +yy88: + YYDEBUG(88, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); #line 495 "Zend/zend_ini_scanner.l" { return 0; } -#line 1241 "Zend/zend_ini_scanner.c" -yy98: - YYDEBUG(98, *YYCURSOR); +#line 1179 "Zend/zend_ini_scanner.c" +yy89: + YYDEBUG(89, *YYCURSOR); ++YYCURSOR; -yy99: - YYDEBUG(99, *YYCURSOR); +yy90: + YYDEBUG(90, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 444 "Zend/zend_ini_scanner.l" +#line 455 "Zend/zend_ini_scanner.l" { /* Double quoted '"' string start */ yy_push_state(ST_DOUBLE_QUOTES TSRMLS_CC); return '"'; } -#line 1253 "Zend/zend_ini_scanner.c" -yy100: - YYDEBUG(100, *YYCURSOR); +#line 1191 "Zend/zend_ini_scanner.c" +yy91: + YYDEBUG(91, *YYCURSOR); yych = *++YYCURSOR; if (yych <= '\\') { - if (yych <= 0x00) goto yy97; - if (yych <= '[') goto yy111; - goto yy116; + if (yych <= 0x00) goto yy88; + if (yych <= '[') goto yy102; + goto yy107; } else { - if (yych == '{') goto yy136; - goto yy111; + if (yych == '{') goto yy127; + goto yy102; } -yy101: - YYDEBUG(101, *YYCURSOR); +yy92: + YYDEBUG(92, *YYCURSOR); yyaccept = 1; yych = *(YYMARKER = ++YYCURSOR); if (yybm[0+yych] & 64) { - goto yy132; + goto yy123; } - goto yy97; -yy102: - YYDEBUG(102, *YYCURSOR); + goto yy88; +yy93: + YYDEBUG(93, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '/') goto yy112; - if (yych <= '9') goto yy130; - goto yy112; -yy103: - YYDEBUG(103, *YYCURSOR); + if (yych <= '/') goto yy103; + if (yych <= '9') goto yy121; + goto yy103; +yy94: + YYDEBUG(94, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '/') goto yy112; - if (yych <= '9') goto yy128; - goto yy112; -yy104: - YYDEBUG(104, *YYCURSOR); + if (yych <= '/') goto yy103; + if (yych <= '9') goto yy119; + goto yy103; +yy95: + YYDEBUG(95, *YYCURSOR); yyaccept = 2; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '\'') { if (yych <= '\r') { - if (yych == '\n') goto yy105; - if (yych <= '\f') goto yy112; + if (yych == '\n') goto yy96; + if (yych <= '\f') goto yy103; } else { - if (yych == '"') goto yy105; - if (yych <= '&') goto yy112; + if (yych == '"') goto yy96; + if (yych <= '&') goto yy103; } } else { if (yych <= '9') { - if (yych == '.') goto yy124; - if (yych <= '/') goto yy112; - goto yy126; + if (yych == '.') goto yy115; + if (yych <= '/') goto yy103; + goto yy117; } else { if (yych <= ';') { - if (yych <= ':') goto yy112; + if (yych <= ':') goto yy103; } else { - if (yych != ']') goto yy112; + if (yych != ']') goto yy103; } } } -yy105: - YYDEBUG(105, *YYCURSOR); +yy96: + YYDEBUG(96, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 418 "Zend/zend_ini_scanner.l" +#line 429 "Zend/zend_ini_scanner.l" { /* Get number option value as string */ RETURN_TOKEN(TC_NUMBER, yytext, yyleng); } -#line 1319 "Zend/zend_ini_scanner.c" -yy106: - YYDEBUG(106, *YYCURSOR); +#line 1257 "Zend/zend_ini_scanner.c" +yy97: + YYDEBUG(97, *YYCURSOR); yyaccept = 3; yych = *(YYMARKER = ++YYCURSOR); if (yybm[0+yych] & 16) { - goto yy122; + goto yy113; } if (yych <= '"') { if (yych <= '\f') { - if (yych != '\n') goto yy112; + if (yych != '\n') goto yy103; } else { - if (yych <= '\r') goto yy107; - if (yych <= '!') goto yy112; + if (yych <= '\r') goto yy98; + if (yych <= '!') goto yy103; } } else { if (yych <= ':') { - if (yych != '\'') goto yy112; + if (yych != '\'') goto yy103; } else { - if (yych <= ';') goto yy107; - if (yych != ']') goto yy112; + if (yych <= ';') goto yy98; + if (yych != ']') goto yy103; } } -yy107: - YYDEBUG(107, *YYCURSOR); +yy98: + YYDEBUG(98, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 414 "Zend/zend_ini_scanner.l" +#line 425 "Zend/zend_ini_scanner.l" { /* Get constant option value */ RETURN_TOKEN(TC_CONSTANT, yytext, yyleng); } -#line 1349 "Zend/zend_ini_scanner.c" -yy108: - YYDEBUG(108, *YYCURSOR); +#line 1287 "Zend/zend_ini_scanner.c" +yy99: + YYDEBUG(99, *YYCURSOR); yych = *++YYCURSOR; - goto yy111; -yy109: - YYDEBUG(109, *YYCURSOR); + goto yy102; +yy100: + YYDEBUG(100, *YYCURSOR); ++YYCURSOR; -yy110: - YYDEBUG(110, *YYCURSOR); +yy101: + YYDEBUG(101, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 355 "Zend/zend_ini_scanner.l" +#line 366 "Zend/zend_ini_scanner.l" { /* End of section or an option offset */ BEGIN(INITIAL); return ']'; } -#line 1365 "Zend/zend_ini_scanner.c" -yy111: - YYDEBUG(111, *YYCURSOR); +#line 1303 "Zend/zend_ini_scanner.c" +yy102: + YYDEBUG(102, *YYCURSOR); yyaccept = 0; YYMARKER = ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; -yy112: - YYDEBUG(112, *YYCURSOR); +yy103: + YYDEBUG(103, *YYCURSOR); if (yybm[0+yych] & 2) { - goto yy111; + goto yy102; } - if (yych == '$') goto yy114; - if (yych != '\\') goto yy94; -yy113: - YYDEBUG(113, *YYCURSOR); + if (yych == '$') goto yy105; + if (yych != '\\') goto yy85; +yy104: + YYDEBUG(104, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - goto yy111; -yy114: - YYDEBUG(114, *YYCURSOR); + goto yy102; +yy105: + YYDEBUG(105, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; if (yych <= '\\') { - if (yych <= 0x00) goto yy115; - if (yych <= '[') goto yy111; - goto yy116; + if (yych <= 0x00) goto yy106; + if (yych <= '[') goto yy102; + goto yy107; } else { - if (yych != '{') goto yy111; + if (yych != '{') goto yy102; } -yy115: - YYDEBUG(115, *YYCURSOR); +yy106: + YYDEBUG(106, *YYCURSOR); YYCURSOR = YYMARKER; if (yyaccept <= 1) { if (yyaccept <= 0) { - goto yy94; + goto yy85; } else { - goto yy97; + goto yy88; } } else { if (yyaccept <= 2) { - goto yy105; + goto yy96; } else { - goto yy107; + goto yy98; } } -yy116: - YYDEBUG(116, *YYCURSOR); +yy107: + YYDEBUG(107, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; if (yybm[0+yych] & 4) { - goto yy117; + goto yy108; } - if (yych == '\\') goto yy119; - goto yy111; -yy117: - YYDEBUG(117, *YYCURSOR); + if (yych == '\\') goto yy110; + goto yy102; +yy108: + YYDEBUG(108, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - YYDEBUG(118, *YYCURSOR); + YYDEBUG(109, *YYCURSOR); if (yybm[0+yych] & 4) { - goto yy117; + goto yy108; } - if (yych == '\\') goto yy121; - goto yy111; -yy119: - YYDEBUG(119, *YYCURSOR); + if (yych == '\\') goto yy112; + goto yy102; +yy110: + YYDEBUG(110, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - YYDEBUG(120, *YYCURSOR); + YYDEBUG(111, *YYCURSOR); if (yybm[0+yych] & 4) { - goto yy117; + goto yy108; } - if (yych == '\\') goto yy119; - goto yy111; -yy121: - YYDEBUG(121, *YYCURSOR); + if (yych == '\\') goto yy110; + goto yy102; +yy112: + YYDEBUG(112, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; if (yybm[0+yych] & 4) { - goto yy117; + goto yy108; } - if (yych == '\\') goto yy119; - goto yy111; -yy122: - YYDEBUG(122, *YYCURSOR); + if (yych == '\\') goto yy110; + goto yy102; +yy113: + YYDEBUG(113, *YYCURSOR); yyaccept = 3; YYMARKER = ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - YYDEBUG(123, *YYCURSOR); + YYDEBUG(114, *YYCURSOR); if (yybm[0+yych] & 16) { - goto yy122; + goto yy113; } if (yych <= '$') { if (yych <= '\r') { - if (yych == '\n') goto yy107; - if (yych <= '\f') goto yy111; - goto yy107; + if (yych == '\n') goto yy98; + if (yych <= '\f') goto yy102; + goto yy98; } else { - if (yych == '"') goto yy107; - if (yych <= '#') goto yy111; - goto yy114; + if (yych == '"') goto yy98; + if (yych <= '#') goto yy102; + goto yy105; } } else { if (yych <= ';') { - if (yych == '\'') goto yy107; - if (yych <= ':') goto yy111; - goto yy107; + if (yych == '\'') goto yy98; + if (yych <= ':') goto yy102; + goto yy98; } else { - if (yych <= '[') goto yy111; - if (yych <= '\\') goto yy113; - if (yych <= ']') goto yy107; - goto yy111; + if (yych <= '[') goto yy102; + if (yych <= '\\') goto yy104; + if (yych <= ']') goto yy98; + goto yy102; } } -yy124: - YYDEBUG(124, *YYCURSOR); +yy115: + YYDEBUG(115, *YYCURSOR); yyaccept = 2; YYMARKER = ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - YYDEBUG(125, *YYCURSOR); + YYDEBUG(116, *YYCURSOR); if (yybm[0+yych] & 32) { - goto yy124; + goto yy115; } if (yych <= '$') { if (yych <= '\r') { - if (yych == '\n') goto yy105; - if (yych <= '\f') goto yy111; - goto yy105; + if (yych == '\n') goto yy96; + if (yych <= '\f') goto yy102; + goto yy96; } else { - if (yych == '"') goto yy105; - if (yych <= '#') goto yy111; - goto yy114; + if (yych == '"') goto yy96; + if (yych <= '#') goto yy102; + goto yy105; } } else { if (yych <= ';') { - if (yych == '\'') goto yy105; - if (yych <= ':') goto yy111; - goto yy105; + if (yych == '\'') goto yy96; + if (yych <= ':') goto yy102; + goto yy96; } else { - if (yych <= '[') goto yy111; - if (yych <= '\\') goto yy113; - if (yych <= ']') goto yy105; - goto yy111; + if (yych <= '[') goto yy102; + if (yych <= '\\') goto yy104; + if (yych <= ']') goto yy96; + goto yy102; } } -yy126: - YYDEBUG(126, *YYCURSOR); +yy117: + YYDEBUG(117, *YYCURSOR); yyaccept = 2; YYMARKER = ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - YYDEBUG(127, *YYCURSOR); + YYDEBUG(118, *YYCURSOR); if (yych <= '\'') { if (yych <= '!') { if (yych <= '\n') { - if (yych <= '\t') goto yy111; - goto yy105; + if (yych <= '\t') goto yy102; + goto yy96; } else { - if (yych == '\r') goto yy105; - goto yy111; + if (yych == '\r') goto yy96; + goto yy102; } } else { if (yych <= '#') { - if (yych <= '"') goto yy105; - goto yy111; + if (yych <= '"') goto yy96; + goto yy102; } else { - if (yych <= '$') goto yy114; - if (yych <= '&') goto yy111; - goto yy105; + if (yych <= '$') goto yy105; + if (yych <= '&') goto yy102; + goto yy96; } } } else { if (yych <= ':') { if (yych <= '.') { - if (yych <= '-') goto yy111; - goto yy124; + if (yych <= '-') goto yy102; + goto yy115; } else { - if (yych <= '/') goto yy111; - if (yych <= '9') goto yy126; - goto yy111; + if (yych <= '/') goto yy102; + if (yych <= '9') goto yy117; + goto yy102; } } else { if (yych <= '[') { - if (yych <= ';') goto yy105; - goto yy111; + if (yych <= ';') goto yy96; + goto yy102; } else { - if (yych <= '\\') goto yy113; - if (yych <= ']') goto yy105; - goto yy111; + if (yych <= '\\') goto yy104; + if (yych <= ']') goto yy96; + goto yy102; } } } -yy128: - YYDEBUG(128, *YYCURSOR); +yy119: + YYDEBUG(119, *YYCURSOR); yyaccept = 2; YYMARKER = ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - YYDEBUG(129, *YYCURSOR); + YYDEBUG(120, *YYCURSOR); if (yych <= '&') { if (yych <= '\r') { - if (yych == '\n') goto yy105; - if (yych <= '\f') goto yy111; - goto yy105; + if (yych == '\n') goto yy96; + if (yych <= '\f') goto yy102; + goto yy96; } else { if (yych <= '"') { - if (yych <= '!') goto yy111; - goto yy105; + if (yych <= '!') goto yy102; + goto yy96; } else { - if (yych == '$') goto yy114; - goto yy111; + if (yych == '$') goto yy105; + goto yy102; } } } else { if (yych <= ':') { - if (yych <= '\'') goto yy105; - if (yych <= '/') goto yy111; - if (yych <= '9') goto yy128; - goto yy111; + if (yych <= '\'') goto yy96; + if (yych <= '/') goto yy102; + if (yych <= '9') goto yy119; + goto yy102; } else { if (yych <= '[') { - if (yych <= ';') goto yy105; - goto yy111; + if (yych <= ';') goto yy96; + goto yy102; } else { - if (yych <= '\\') goto yy113; - if (yych <= ']') goto yy105; - goto yy111; + if (yych <= '\\') goto yy104; + if (yych <= ']') goto yy96; + goto yy102; } } } -yy130: - YYDEBUG(130, *YYCURSOR); +yy121: + YYDEBUG(121, *YYCURSOR); yyaccept = 2; YYMARKER = ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - YYDEBUG(131, *YYCURSOR); + YYDEBUG(122, *YYCURSOR); if (yych <= '&') { if (yych <= '\r') { - if (yych == '\n') goto yy105; - if (yych <= '\f') goto yy111; - goto yy105; + if (yych == '\n') goto yy96; + if (yych <= '\f') goto yy102; + goto yy96; } else { if (yych <= '"') { - if (yych <= '!') goto yy111; - goto yy105; + if (yych <= '!') goto yy102; + goto yy96; } else { - if (yych == '$') goto yy114; - goto yy111; + if (yych == '$') goto yy105; + goto yy102; } } } else { if (yych <= ':') { - if (yych <= '\'') goto yy105; - if (yych <= '/') goto yy111; - if (yych <= '9') goto yy130; - goto yy111; + if (yych <= '\'') goto yy96; + if (yych <= '/') goto yy102; + if (yych <= '9') goto yy121; + goto yy102; } else { if (yych <= '[') { - if (yych <= ';') goto yy105; - goto yy111; + if (yych <= ';') goto yy96; + goto yy102; } else { - if (yych <= '\\') goto yy113; - if (yych <= ']') goto yy105; - goto yy111; + if (yych <= '\\') goto yy104; + if (yych <= ']') goto yy96; + goto yy102; } } } -yy132: - YYDEBUG(132, *YYCURSOR); +yy123: + YYDEBUG(123, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - YYDEBUG(133, *YYCURSOR); + YYDEBUG(124, *YYCURSOR); if (yybm[0+yych] & 64) { - goto yy132; + goto yy123; } - YYDEBUG(134, *YYCURSOR); + YYDEBUG(125, *YYCURSOR); ++YYCURSOR; - YYDEBUG(135, *YYCURSOR); + YYDEBUG(126, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 330 "Zend/zend_ini_scanner.l" +#line 341 "Zend/zend_ini_scanner.l" { /* Raw string */ /* Eat leading and trailing single quotes */ if (yytext[0] == '\'' && yytext[yyleng - 1] == '\'') { @@ -1660,59 +1598,59 @@ yy132: } RETURN_TOKEN(TC_RAW, yytext, yyleng); } -#line 1664 "Zend/zend_ini_scanner.c" -yy136: - YYDEBUG(136, *YYCURSOR); +#line 1602 "Zend/zend_ini_scanner.c" +yy127: + YYDEBUG(127, *YYCURSOR); ++YYCURSOR; - YYDEBUG(137, *YYCURSOR); + YYDEBUG(128, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 360 "Zend/zend_ini_scanner.l" +#line 371 "Zend/zend_ini_scanner.l" { /* Variable start */ yy_push_state(ST_VARNAME TSRMLS_CC); return TC_DOLLAR_CURLY; } -#line 1675 "Zend/zend_ini_scanner.c" -yy138: - YYDEBUG(138, *YYCURSOR); +#line 1613 "Zend/zend_ini_scanner.c" +yy129: + YYDEBUG(129, *YYCURSOR); yyaccept = 0; YYMARKER = ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - YYDEBUG(139, *YYCURSOR); + YYDEBUG(130, *YYCURSOR); if (yybm[0+yych] & 128) { - goto yy138; + goto yy129; } if (yych <= '$') { if (yych <= '\r') { - if (yych == '\n') goto yy94; - if (yych <= '\f') goto yy111; - goto yy94; + if (yych == '\n') goto yy85; + if (yych <= '\f') goto yy102; + goto yy85; } else { - if (yych == '"') goto yy140; - if (yych <= '#') goto yy111; - goto yy114; + if (yych == '"') goto yy131; + if (yych <= '#') goto yy102; + goto yy105; } } else { if (yych <= ';') { - if (yych == '\'') goto yy94; - if (yych <= ':') goto yy111; - goto yy94; + if (yych == '\'') goto yy85; + if (yych <= ':') goto yy102; + goto yy85; } else { - if (yych <= '[') goto yy111; - if (yych <= '\\') goto yy113; - if (yych <= ']') goto yy141; - goto yy111; + if (yych <= '[') goto yy102; + if (yych <= '\\') goto yy104; + if (yych <= ']') goto yy132; + goto yy102; } } -yy140: - YYDEBUG(140, *YYCURSOR); +yy131: + YYDEBUG(131, *YYCURSOR); yych = *++YYCURSOR; - goto yy99; -yy141: - YYDEBUG(141, *YYCURSOR); + goto yy90; +yy132: + YYDEBUG(132, *YYCURSOR); ++YYCURSOR; yych = *YYCURSOR; - goto yy110; + goto yy101; } /* *********************************** */ yyc_ST_RAW: @@ -1751,34 +1689,34 @@ yyc_ST_RAW: 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, }; - YYDEBUG(142, *YYCURSOR); + YYDEBUG(133, *YYCURSOR); YYFILL(3); yych = *YYCURSOR; if (yych <= 0x1F) { if (yych <= '\n') { - if (yych <= 0x08) goto yy144; - if (yych <= '\t') goto yy146; - goto yy147; + if (yych <= 0x08) goto yy135; + if (yych <= '\t') goto yy137; + goto yy138; } else { - if (yych == '\r') goto yy149; + if (yych == '\r') goto yy140; } } else { if (yych <= ';') { - if (yych <= ' ') goto yy146; - if (yych >= ';') goto yy150; + if (yych <= ' ') goto yy137; + if (yych >= ';') goto yy141; } else { - if (yych == '=') goto yy152; + if (yych == '=') goto yy143; } } -yy144: - YYDEBUG(144, *YYCURSOR); +yy135: + YYDEBUG(135, *YYCURSOR); ++YYCURSOR; yych = *YYCURSOR; - goto yy163; -yy145: - YYDEBUG(145, *YYCURSOR); + goto yy154; +yy136: + YYDEBUG(136, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 395 "Zend/zend_ini_scanner.l" +#line 406 "Zend/zend_ini_scanner.l" { /* Raw value, only used when SCNG(scanner_mode) == ZEND_INI_SCANNER_RAW. */ /* Eat leading and trailing double quotes */ if (yytext[0] == '"' && yytext[yyleng - 1] == '"') { @@ -1787,129 +1725,129 @@ yy145: } RETURN_TOKEN(TC_RAW, yytext, yyleng); } -#line 1791 "Zend/zend_ini_scanner.c" -yy146: - YYDEBUG(146, *YYCURSOR); +#line 1729 "Zend/zend_ini_scanner.c" +yy137: + YYDEBUG(137, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if (yybm[0+yych] & 64) { - goto yy159; + goto yy150; } if (yych <= '\f') { - if (yych == '\n') goto yy158; - goto yy163; + if (yych == '\n') goto yy149; + goto yy154; } else { - if (yych <= '\r') goto yy161; - if (yych == ';') goto yy153; - goto yy163; + if (yych <= '\r') goto yy152; + if (yych == ';') goto yy144; + goto yy154; } -yy147: - YYDEBUG(147, *YYCURSOR); +yy138: + YYDEBUG(138, *YYCURSOR); ++YYCURSOR; -yy148: - YYDEBUG(148, *YYCURSOR); +yy139: + YYDEBUG(139, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 408 "Zend/zend_ini_scanner.l" +#line 419 "Zend/zend_ini_scanner.l" { /* End of option value */ BEGIN(INITIAL); SCNG(lineno)++; return END_OF_LINE; } -#line 1819 "Zend/zend_ini_scanner.c" -yy149: - YYDEBUG(149, *YYCURSOR); +#line 1757 "Zend/zend_ini_scanner.c" +yy140: + YYDEBUG(140, *YYCURSOR); yych = *++YYCURSOR; - if (yych == '\n') goto yy158; - goto yy148; -yy150: - YYDEBUG(150, *YYCURSOR); + if (yych == '\n') goto yy149; + goto yy139; +yy141: + YYDEBUG(141, *YYCURSOR); yyaccept = 1; yych = *(YYMARKER = ++YYCURSOR); - goto yy154; -yy151: - YYDEBUG(151, *YYCURSOR); + goto yy145; +yy142: + YYDEBUG(142, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); #line 490 "Zend/zend_ini_scanner.l" { /* End of option value (if EOF is reached before EOL */ BEGIN(INITIAL); return END_OF_LINE; } -#line 1838 "Zend/zend_ini_scanner.c" -yy152: - YYDEBUG(152, *YYCURSOR); +#line 1776 "Zend/zend_ini_scanner.c" +yy143: + YYDEBUG(143, *YYCURSOR); yych = *++YYCURSOR; - goto yy151; -yy153: - YYDEBUG(153, *YYCURSOR); + goto yy142; +yy144: + YYDEBUG(144, *YYCURSOR); ++YYCURSOR; YYFILL(2); yych = *YYCURSOR; -yy154: - YYDEBUG(154, *YYCURSOR); +yy145: + YYDEBUG(145, *YYCURSOR); if (yybm[0+yych] & 32) { - goto yy153; + goto yy144; } - if (yych >= '\r') goto yy157; -yy155: - YYDEBUG(155, *YYCURSOR); + if (yych >= '\r') goto yy148; +yy146: + YYDEBUG(146, *YYCURSOR); ++YYCURSOR; -yy156: - YYDEBUG(156, *YYCURSOR); +yy147: + YYDEBUG(147, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 477 "Zend/zend_ini_scanner.l" +#line 484 "Zend/zend_ini_scanner.l" { /* Comment */ BEGIN(INITIAL); SCNG(lineno)++; return END_OF_LINE; } -#line 1866 "Zend/zend_ini_scanner.c" -yy157: - YYDEBUG(157, *YYCURSOR); +#line 1804 "Zend/zend_ini_scanner.c" +yy148: + YYDEBUG(148, *YYCURSOR); yych = *++YYCURSOR; - if (yych == '\n') goto yy155; - goto yy156; -yy158: - YYDEBUG(158, *YYCURSOR); + if (yych == '\n') goto yy146; + goto yy147; +yy149: + YYDEBUG(149, *YYCURSOR); yych = *++YYCURSOR; - goto yy148; -yy159: - YYDEBUG(159, *YYCURSOR); + goto yy139; +yy150: + YYDEBUG(150, *YYCURSOR); yyaccept = 0; YYMARKER = ++YYCURSOR; YYFILL(2); yych = *YYCURSOR; - YYDEBUG(160, *YYCURSOR); + YYDEBUG(151, *YYCURSOR); if (yybm[0+yych] & 64) { - goto yy159; + goto yy150; } if (yych <= '\r') { - if (yych == '\n') goto yy158; - if (yych <= '\f') goto yy162; + if (yych == '\n') goto yy149; + if (yych <= '\f') goto yy153; } else { if (yych <= ';') { - if (yych <= ':') goto yy162; - goto yy153; + if (yych <= ':') goto yy153; + goto yy144; } else { - if (yych == '=') goto yy145; - goto yy162; + if (yych == '=') goto yy136; + goto yy153; } } -yy161: - YYDEBUG(161, *YYCURSOR); +yy152: + YYDEBUG(152, *YYCURSOR); yych = *++YYCURSOR; - if (yych == '\n') goto yy158; - goto yy148; -yy162: - YYDEBUG(162, *YYCURSOR); + if (yych == '\n') goto yy149; + goto yy139; +yy153: + YYDEBUG(153, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; -yy163: - YYDEBUG(163, *YYCURSOR); +yy154: + YYDEBUG(154, *YYCURSOR); if (yybm[0+yych] & 128) { - goto yy162; + goto yy153; } - goto yy145; + goto yy136; } /* *********************************** */ yyc_ST_SECTION_RAW: @@ -1948,85 +1886,85 @@ yyc_ST_SECTION_RAW: 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, }; - YYDEBUG(164, *YYCURSOR); + YYDEBUG(155, *YYCURSOR); YYFILL(3); yych = *YYCURSOR; if (yych <= '\f') { - if (yych == '\n') goto yy168; + if (yych == '\n') goto yy159; } else { - if (yych <= '\r') goto yy168; - if (yych == ']') goto yy170; + if (yych <= '\r') goto yy159; + if (yych == ']') goto yy161; } - YYDEBUG(166, *YYCURSOR); + YYDEBUG(157, *YYCURSOR); ++YYCURSOR; yych = *YYCURSOR; - goto yy177; -yy167: - YYDEBUG(167, *YYCURSOR); + goto yy168; +yy158: + YYDEBUG(158, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 404 "Zend/zend_ini_scanner.l" +#line 415 "Zend/zend_ini_scanner.l" { /* Raw value, only used when SCNG(scanner_mode) == ZEND_INI_SCANNER_RAW. */ RETURN_TOKEN(TC_RAW, yytext, yyleng); } -#line 1972 "Zend/zend_ini_scanner.c" -yy168: - YYDEBUG(168, *YYCURSOR); +#line 1910 "Zend/zend_ini_scanner.c" +yy159: + YYDEBUG(159, *YYCURSOR); ++YYCURSOR; - YYDEBUG(169, *YYCURSOR); + YYDEBUG(160, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); #line 495 "Zend/zend_ini_scanner.l" { return 0; } -#line 1982 "Zend/zend_ini_scanner.c" -yy170: - YYDEBUG(170, *YYCURSOR); +#line 1920 "Zend/zend_ini_scanner.c" +yy161: + YYDEBUG(161, *YYCURSOR); ++YYCURSOR; yych = *YYCURSOR; - goto yy173; -yy171: - YYDEBUG(171, *YYCURSOR); + goto yy164; +yy162: + YYDEBUG(162, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 339 "Zend/zend_ini_scanner.l" +#line 350 "Zend/zend_ini_scanner.l" { /* End of section */ BEGIN(INITIAL); SCNG(lineno)++; return ']'; } -#line 1997 "Zend/zend_ini_scanner.c" -yy172: - YYDEBUG(172, *YYCURSOR); +#line 1935 "Zend/zend_ini_scanner.c" +yy163: + YYDEBUG(163, *YYCURSOR); ++YYCURSOR; YYFILL(2); yych = *YYCURSOR; -yy173: - YYDEBUG(173, *YYCURSOR); +yy164: + YYDEBUG(164, *YYCURSOR); if (yybm[0+yych] & 64) { - goto yy172; + goto yy163; } - if (yych == '\n') goto yy174; - if (yych == '\r') goto yy175; - goto yy171; -yy174: - YYDEBUG(174, *YYCURSOR); + if (yych == '\n') goto yy165; + if (yych == '\r') goto yy166; + goto yy162; +yy165: + YYDEBUG(165, *YYCURSOR); yych = *++YYCURSOR; - goto yy171; -yy175: - YYDEBUG(175, *YYCURSOR); + goto yy162; +yy166: + YYDEBUG(166, *YYCURSOR); yych = *++YYCURSOR; - if (yych == '\n') goto yy174; - goto yy171; -yy176: - YYDEBUG(176, *YYCURSOR); + if (yych == '\n') goto yy165; + goto yy162; +yy167: + YYDEBUG(167, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; -yy177: - YYDEBUG(177, *YYCURSOR); +yy168: + YYDEBUG(168, *YYCURSOR); if (yybm[0+yych] & 128) { - goto yy176; + goto yy167; } - goto yy167; + goto yy158; } /* *********************************** */ yyc_ST_SECTION_VALUE: @@ -2065,522 +2003,522 @@ yyc_ST_SECTION_VALUE: 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, }; - YYDEBUG(178, *YYCURSOR); + YYDEBUG(169, *YYCURSOR); YYFILL(3); yych = *YYCURSOR; if (yych <= ',') { if (yych <= ' ') { if (yych <= '\n') { - if (yych <= 0x08) goto yy180; - if (yych <= '\t') goto yy182; - goto yy183; + if (yych <= 0x08) goto yy171; + if (yych <= '\t') goto yy173; + goto yy174; } else { - if (yych == '\r') goto yy183; - if (yych >= ' ') goto yy182; + if (yych == '\r') goto yy174; + if (yych >= ' ') goto yy173; } } else { if (yych <= '#') { - if (yych == '"') goto yy185; + if (yych == '"') goto yy176; } else { - if (yych <= '$') goto yy187; - if (yych == '\'') goto yy188; + if (yych <= '$') goto yy178; + if (yych == '\'') goto yy179; } } } else { if (yych <= '@') { if (yych <= '/') { - if (yych <= '-') goto yy189; - if (yych <= '.') goto yy190; + if (yych <= '-') goto yy180; + if (yych <= '.') goto yy181; } else { - if (yych <= '9') goto yy191; - if (yych == ';') goto yy183; + if (yych <= '9') goto yy182; + if (yych == ';') goto yy174; } } else { if (yych <= '\\') { - if (yych <= 'Z') goto yy193; - if (yych >= '\\') goto yy195; + if (yych <= 'Z') goto yy184; + if (yych >= '\\') goto yy186; } else { - if (yych <= ']') goto yy196; - if (yych <= '`') goto yy180; - if (yych <= 'z') goto yy193; + if (yych <= ']') goto yy187; + if (yych <= '`') goto yy171; + if (yych <= 'z') goto yy184; } } } -yy180: - YYDEBUG(180, *YYCURSOR); +yy171: + YYDEBUG(171, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - goto yy203; -yy181: - YYDEBUG(181, *YYCURSOR); + goto yy194; +yy172: + YYDEBUG(172, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 440 "Zend/zend_ini_scanner.l" +#line 451 "Zend/zend_ini_scanner.l" { /* Get rest as section/offset value */ RETURN_TOKEN(TC_STRING, yytext, yyleng); } -#line 2122 "Zend/zend_ini_scanner.c" -yy182: - YYDEBUG(182, *YYCURSOR); +#line 2060 "Zend/zend_ini_scanner.c" +yy173: + YYDEBUG(173, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 0x1F) { - if (yych == '\t') goto yy229; - goto yy203; + if (yych == '\t') goto yy220; + goto yy194; } else { - if (yych <= ' ') goto yy229; - if (yych == '"') goto yy231; - goto yy203; + if (yych <= ' ') goto yy220; + if (yych == '"') goto yy222; + goto yy194; } -yy183: - YYDEBUG(183, *YYCURSOR); +yy174: + YYDEBUG(174, *YYCURSOR); ++YYCURSOR; -yy184: - YYDEBUG(184, *YYCURSOR); +yy175: + YYDEBUG(175, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); #line 495 "Zend/zend_ini_scanner.l" { return 0; } -#line 2145 "Zend/zend_ini_scanner.c" -yy185: - YYDEBUG(185, *YYCURSOR); +#line 2083 "Zend/zend_ini_scanner.c" +yy176: + YYDEBUG(176, *YYCURSOR); ++YYCURSOR; -yy186: - YYDEBUG(186, *YYCURSOR); +yy177: + YYDEBUG(177, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 444 "Zend/zend_ini_scanner.l" +#line 455 "Zend/zend_ini_scanner.l" { /* Double quoted '"' string start */ yy_push_state(ST_DOUBLE_QUOTES TSRMLS_CC); return '"'; } -#line 2157 "Zend/zend_ini_scanner.c" -yy187: - YYDEBUG(187, *YYCURSOR); +#line 2095 "Zend/zend_ini_scanner.c" +yy178: + YYDEBUG(178, *YYCURSOR); yych = *++YYCURSOR; if (yych <= '\\') { - if (yych <= 0x00) goto yy184; - if (yych <= '[') goto yy202; - goto yy207; + if (yych <= 0x00) goto yy175; + if (yych <= '[') goto yy193; + goto yy198; } else { - if (yych == '{') goto yy227; - goto yy202; + if (yych == '{') goto yy218; + goto yy193; } -yy188: - YYDEBUG(188, *YYCURSOR); +yy179: + YYDEBUG(179, *YYCURSOR); yyaccept = 1; yych = *(YYMARKER = ++YYCURSOR); if (yybm[0+yych] & 128) { - goto yy223; + goto yy214; } - goto yy184; -yy189: - YYDEBUG(189, *YYCURSOR); + goto yy175; +yy180: + YYDEBUG(180, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '/') goto yy203; - if (yych <= '9') goto yy221; - goto yy203; -yy190: - YYDEBUG(190, *YYCURSOR); + if (yych <= '/') goto yy194; + if (yych <= '9') goto yy212; + goto yy194; +yy181: + YYDEBUG(181, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '/') goto yy203; - if (yych <= '9') goto yy219; - goto yy203; -yy191: - YYDEBUG(191, *YYCURSOR); + if (yych <= '/') goto yy194; + if (yych <= '9') goto yy210; + goto yy194; +yy182: + YYDEBUG(182, *YYCURSOR); yyaccept = 2; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '\'') { if (yych <= '\r') { - if (yych == '\n') goto yy192; - if (yych <= '\f') goto yy203; + if (yych == '\n') goto yy183; + if (yych <= '\f') goto yy194; } else { - if (yych == '"') goto yy192; - if (yych <= '&') goto yy203; + if (yych == '"') goto yy183; + if (yych <= '&') goto yy194; } } else { if (yych <= '9') { - if (yych == '.') goto yy215; - if (yych <= '/') goto yy203; - goto yy217; + if (yych == '.') goto yy206; + if (yych <= '/') goto yy194; + goto yy208; } else { if (yych <= ';') { - if (yych <= ':') goto yy203; + if (yych <= ':') goto yy194; } else { - if (yych != ']') goto yy203; + if (yych != ']') goto yy194; } } } -yy192: - YYDEBUG(192, *YYCURSOR); +yy183: + YYDEBUG(183, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 418 "Zend/zend_ini_scanner.l" +#line 429 "Zend/zend_ini_scanner.l" { /* Get number option value as string */ RETURN_TOKEN(TC_NUMBER, yytext, yyleng); } -#line 2223 "Zend/zend_ini_scanner.c" -yy193: - YYDEBUG(193, *YYCURSOR); +#line 2161 "Zend/zend_ini_scanner.c" +yy184: + YYDEBUG(184, *YYCURSOR); yyaccept = 3; yych = *(YYMARKER = ++YYCURSOR); if (yybm[0+yych] & 32) { - goto yy213; + goto yy204; } if (yych <= '"') { if (yych <= '\f') { - if (yych != '\n') goto yy203; + if (yych != '\n') goto yy194; } else { - if (yych <= '\r') goto yy194; - if (yych <= '!') goto yy203; + if (yych <= '\r') goto yy185; + if (yych <= '!') goto yy194; } } else { if (yych <= ':') { - if (yych != '\'') goto yy203; + if (yych != '\'') goto yy194; } else { - if (yych <= ';') goto yy194; - if (yych != ']') goto yy203; + if (yych <= ';') goto yy185; + if (yych != ']') goto yy194; } } -yy194: - YYDEBUG(194, *YYCURSOR); +yy185: + YYDEBUG(185, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 414 "Zend/zend_ini_scanner.l" +#line 425 "Zend/zend_ini_scanner.l" { /* Get constant option value */ RETURN_TOKEN(TC_CONSTANT, yytext, yyleng); } -#line 2253 "Zend/zend_ini_scanner.c" -yy195: - YYDEBUG(195, *YYCURSOR); +#line 2191 "Zend/zend_ini_scanner.c" +yy186: + YYDEBUG(186, *YYCURSOR); yych = *++YYCURSOR; - goto yy202; -yy196: - YYDEBUG(196, *YYCURSOR); + goto yy193; +yy187: + YYDEBUG(187, *YYCURSOR); ++YYCURSOR; yych = *YYCURSOR; - goto yy199; -yy197: - YYDEBUG(197, *YYCURSOR); + goto yy190; +yy188: + YYDEBUG(188, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 339 "Zend/zend_ini_scanner.l" +#line 350 "Zend/zend_ini_scanner.l" { /* End of section */ BEGIN(INITIAL); SCNG(lineno)++; return ']'; } -#line 2272 "Zend/zend_ini_scanner.c" -yy198: - YYDEBUG(198, *YYCURSOR); +#line 2210 "Zend/zend_ini_scanner.c" +yy189: + YYDEBUG(189, *YYCURSOR); ++YYCURSOR; YYFILL(2); yych = *YYCURSOR; -yy199: - YYDEBUG(199, *YYCURSOR); +yy190: + YYDEBUG(190, *YYCURSOR); if (yybm[0+yych] & 2) { - goto yy198; + goto yy189; } - if (yych == '\n') goto yy200; - if (yych == '\r') goto yy201; - goto yy197; -yy200: - YYDEBUG(200, *YYCURSOR); + if (yych == '\n') goto yy191; + if (yych == '\r') goto yy192; + goto yy188; +yy191: + YYDEBUG(191, *YYCURSOR); yych = *++YYCURSOR; - goto yy197; -yy201: - YYDEBUG(201, *YYCURSOR); + goto yy188; +yy192: + YYDEBUG(192, *YYCURSOR); yych = *++YYCURSOR; - if (yych == '\n') goto yy200; - goto yy197; -yy202: - YYDEBUG(202, *YYCURSOR); + if (yych == '\n') goto yy191; + goto yy188; +yy193: + YYDEBUG(193, *YYCURSOR); yyaccept = 0; YYMARKER = ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; -yy203: - YYDEBUG(203, *YYCURSOR); +yy194: + YYDEBUG(194, *YYCURSOR); if (yybm[0+yych] & 4) { - goto yy202; + goto yy193; } - if (yych == '$') goto yy205; - if (yych != '\\') goto yy181; -yy204: - YYDEBUG(204, *YYCURSOR); + if (yych == '$') goto yy196; + if (yych != '\\') goto yy172; +yy195: + YYDEBUG(195, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - goto yy202; -yy205: - YYDEBUG(205, *YYCURSOR); + goto yy193; +yy196: + YYDEBUG(196, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; if (yych <= '\\') { - if (yych <= 0x00) goto yy206; - if (yych <= '[') goto yy202; - goto yy207; + if (yych <= 0x00) goto yy197; + if (yych <= '[') goto yy193; + goto yy198; } else { - if (yych != '{') goto yy202; + if (yych != '{') goto yy193; } -yy206: - YYDEBUG(206, *YYCURSOR); +yy197: + YYDEBUG(197, *YYCURSOR); YYCURSOR = YYMARKER; if (yyaccept <= 1) { if (yyaccept <= 0) { - goto yy181; + goto yy172; } else { - goto yy184; + goto yy175; } } else { if (yyaccept <= 2) { - goto yy192; + goto yy183; } else { - goto yy194; + goto yy185; } } -yy207: - YYDEBUG(207, *YYCURSOR); +yy198: + YYDEBUG(198, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; if (yybm[0+yych] & 8) { - goto yy208; + goto yy199; } - if (yych == '\\') goto yy210; - goto yy202; -yy208: - YYDEBUG(208, *YYCURSOR); + if (yych == '\\') goto yy201; + goto yy193; +yy199: + YYDEBUG(199, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - YYDEBUG(209, *YYCURSOR); + YYDEBUG(200, *YYCURSOR); if (yybm[0+yych] & 8) { - goto yy208; + goto yy199; } - if (yych == '\\') goto yy212; - goto yy202; -yy210: - YYDEBUG(210, *YYCURSOR); + if (yych == '\\') goto yy203; + goto yy193; +yy201: + YYDEBUG(201, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - YYDEBUG(211, *YYCURSOR); + YYDEBUG(202, *YYCURSOR); if (yybm[0+yych] & 8) { - goto yy208; + goto yy199; } - if (yych == '\\') goto yy210; - goto yy202; -yy212: - YYDEBUG(212, *YYCURSOR); + if (yych == '\\') goto yy201; + goto yy193; +yy203: + YYDEBUG(203, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; if (yybm[0+yych] & 8) { - goto yy208; + goto yy199; } - if (yych == '\\') goto yy210; - goto yy202; -yy213: - YYDEBUG(213, *YYCURSOR); + if (yych == '\\') goto yy201; + goto yy193; +yy204: + YYDEBUG(204, *YYCURSOR); yyaccept = 3; YYMARKER = ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - YYDEBUG(214, *YYCURSOR); + YYDEBUG(205, *YYCURSOR); if (yybm[0+yych] & 32) { - goto yy213; + goto yy204; } if (yych <= '$') { if (yych <= '\r') { - if (yych == '\n') goto yy194; - if (yych <= '\f') goto yy202; - goto yy194; + if (yych == '\n') goto yy185; + if (yych <= '\f') goto yy193; + goto yy185; } else { - if (yych == '"') goto yy194; - if (yych <= '#') goto yy202; - goto yy205; + if (yych == '"') goto yy185; + if (yych <= '#') goto yy193; + goto yy196; } } else { if (yych <= ';') { - if (yych == '\'') goto yy194; - if (yych <= ':') goto yy202; - goto yy194; + if (yych == '\'') goto yy185; + if (yych <= ':') goto yy193; + goto yy185; } else { - if (yych <= '[') goto yy202; - if (yych <= '\\') goto yy204; - if (yych <= ']') goto yy194; - goto yy202; + if (yych <= '[') goto yy193; + if (yych <= '\\') goto yy195; + if (yych <= ']') goto yy185; + goto yy193; } } -yy215: - YYDEBUG(215, *YYCURSOR); +yy206: + YYDEBUG(206, *YYCURSOR); yyaccept = 2; YYMARKER = ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - YYDEBUG(216, *YYCURSOR); + YYDEBUG(207, *YYCURSOR); if (yybm[0+yych] & 64) { - goto yy215; + goto yy206; } if (yych <= '$') { if (yych <= '\r') { - if (yych == '\n') goto yy192; - if (yych <= '\f') goto yy202; - goto yy192; + if (yych == '\n') goto yy183; + if (yych <= '\f') goto yy193; + goto yy183; } else { - if (yych == '"') goto yy192; - if (yych <= '#') goto yy202; - goto yy205; + if (yych == '"') goto yy183; + if (yych <= '#') goto yy193; + goto yy196; } } else { if (yych <= ';') { - if (yych == '\'') goto yy192; - if (yych <= ':') goto yy202; - goto yy192; + if (yych == '\'') goto yy183; + if (yych <= ':') goto yy193; + goto yy183; } else { - if (yych <= '[') goto yy202; - if (yych <= '\\') goto yy204; - if (yych <= ']') goto yy192; - goto yy202; + if (yych <= '[') goto yy193; + if (yych <= '\\') goto yy195; + if (yych <= ']') goto yy183; + goto yy193; } } -yy217: - YYDEBUG(217, *YYCURSOR); +yy208: + YYDEBUG(208, *YYCURSOR); yyaccept = 2; YYMARKER = ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - YYDEBUG(218, *YYCURSOR); + YYDEBUG(209, *YYCURSOR); if (yych <= '\'') { if (yych <= '!') { if (yych <= '\n') { - if (yych <= '\t') goto yy202; - goto yy192; + if (yych <= '\t') goto yy193; + goto yy183; } else { - if (yych == '\r') goto yy192; - goto yy202; + if (yych == '\r') goto yy183; + goto yy193; } } else { if (yych <= '#') { - if (yych <= '"') goto yy192; - goto yy202; + if (yych <= '"') goto yy183; + goto yy193; } else { - if (yych <= '$') goto yy205; - if (yych <= '&') goto yy202; - goto yy192; + if (yych <= '$') goto yy196; + if (yych <= '&') goto yy193; + goto yy183; } } } else { if (yych <= ':') { if (yych <= '.') { - if (yych <= '-') goto yy202; - goto yy215; + if (yych <= '-') goto yy193; + goto yy206; } else { - if (yych <= '/') goto yy202; - if (yych <= '9') goto yy217; - goto yy202; + if (yych <= '/') goto yy193; + if (yych <= '9') goto yy208; + goto yy193; } } else { if (yych <= '[') { - if (yych <= ';') goto yy192; - goto yy202; + if (yych <= ';') goto yy183; + goto yy193; } else { - if (yych <= '\\') goto yy204; - if (yych <= ']') goto yy192; - goto yy202; + if (yych <= '\\') goto yy195; + if (yych <= ']') goto yy183; + goto yy193; } } } -yy219: - YYDEBUG(219, *YYCURSOR); +yy210: + YYDEBUG(210, *YYCURSOR); yyaccept = 2; YYMARKER = ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - YYDEBUG(220, *YYCURSOR); + YYDEBUG(211, *YYCURSOR); if (yych <= '&') { if (yych <= '\r') { - if (yych == '\n') goto yy192; - if (yych <= '\f') goto yy202; - goto yy192; + if (yych == '\n') goto yy183; + if (yych <= '\f') goto yy193; + goto yy183; } else { if (yych <= '"') { - if (yych <= '!') goto yy202; - goto yy192; + if (yych <= '!') goto yy193; + goto yy183; } else { - if (yych == '$') goto yy205; - goto yy202; + if (yych == '$') goto yy196; + goto yy193; } } } else { if (yych <= ':') { - if (yych <= '\'') goto yy192; - if (yych <= '/') goto yy202; - if (yych <= '9') goto yy219; - goto yy202; + if (yych <= '\'') goto yy183; + if (yych <= '/') goto yy193; + if (yych <= '9') goto yy210; + goto yy193; } else { if (yych <= '[') { - if (yych <= ';') goto yy192; - goto yy202; + if (yych <= ';') goto yy183; + goto yy193; } else { - if (yych <= '\\') goto yy204; - if (yych <= ']') goto yy192; - goto yy202; + if (yych <= '\\') goto yy195; + if (yych <= ']') goto yy183; + goto yy193; } } } -yy221: - YYDEBUG(221, *YYCURSOR); +yy212: + YYDEBUG(212, *YYCURSOR); yyaccept = 2; YYMARKER = ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - YYDEBUG(222, *YYCURSOR); + YYDEBUG(213, *YYCURSOR); if (yych <= '&') { if (yych <= '\r') { - if (yych == '\n') goto yy192; - if (yych <= '\f') goto yy202; - goto yy192; + if (yych == '\n') goto yy183; + if (yych <= '\f') goto yy193; + goto yy183; } else { if (yych <= '"') { - if (yych <= '!') goto yy202; - goto yy192; + if (yych <= '!') goto yy193; + goto yy183; } else { - if (yych == '$') goto yy205; - goto yy202; + if (yych == '$') goto yy196; + goto yy193; } } } else { if (yych <= ':') { - if (yych <= '\'') goto yy192; - if (yych <= '/') goto yy202; - if (yych <= '9') goto yy221; - goto yy202; + if (yych <= '\'') goto yy183; + if (yych <= '/') goto yy193; + if (yych <= '9') goto yy212; + goto yy193; } else { if (yych <= '[') { - if (yych <= ';') goto yy192; - goto yy202; + if (yych <= ';') goto yy183; + goto yy193; } else { - if (yych <= '\\') goto yy204; - if (yych <= ']') goto yy192; - goto yy202; + if (yych <= '\\') goto yy195; + if (yych <= ']') goto yy183; + goto yy193; } } } -yy223: - YYDEBUG(223, *YYCURSOR); +yy214: + YYDEBUG(214, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - YYDEBUG(224, *YYCURSOR); + YYDEBUG(215, *YYCURSOR); if (yybm[0+yych] & 128) { - goto yy223; + goto yy214; } - YYDEBUG(225, *YYCURSOR); + YYDEBUG(216, *YYCURSOR); ++YYCURSOR; - YYDEBUG(226, *YYCURSOR); + YYDEBUG(217, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 330 "Zend/zend_ini_scanner.l" +#line 341 "Zend/zend_ini_scanner.l" { /* Raw string */ /* Eat leading and trailing single quotes */ if (yytext[0] == '\'' && yytext[yyleng - 1] == '\'') { @@ -2589,65 +2527,65 @@ yy223: } RETURN_TOKEN(TC_RAW, yytext, yyleng); } -#line 2593 "Zend/zend_ini_scanner.c" -yy227: - YYDEBUG(227, *YYCURSOR); +#line 2531 "Zend/zend_ini_scanner.c" +yy218: + YYDEBUG(218, *YYCURSOR); ++YYCURSOR; - YYDEBUG(228, *YYCURSOR); + YYDEBUG(219, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 360 "Zend/zend_ini_scanner.l" +#line 371 "Zend/zend_ini_scanner.l" { /* Variable start */ yy_push_state(ST_VARNAME TSRMLS_CC); return TC_DOLLAR_CURLY; } -#line 2604 "Zend/zend_ini_scanner.c" -yy229: - YYDEBUG(229, *YYCURSOR); +#line 2542 "Zend/zend_ini_scanner.c" +yy220: + YYDEBUG(220, *YYCURSOR); yyaccept = 0; YYMARKER = ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - YYDEBUG(230, *YYCURSOR); + YYDEBUG(221, *YYCURSOR); if (yych <= '"') { if (yych <= '\f') { - if (yych <= 0x08) goto yy202; - if (yych <= '\t') goto yy229; - if (yych <= '\n') goto yy181; - goto yy202; + if (yych <= 0x08) goto yy193; + if (yych <= '\t') goto yy220; + if (yych <= '\n') goto yy172; + goto yy193; } else { if (yych <= 0x1F) { - if (yych <= '\r') goto yy181; - goto yy202; + if (yych <= '\r') goto yy172; + goto yy193; } else { - if (yych <= ' ') goto yy229; - if (yych <= '!') goto yy202; + if (yych <= ' ') goto yy220; + if (yych <= '!') goto yy193; } } } else { if (yych <= ':') { if (yych <= '$') { - if (yych <= '#') goto yy202; - goto yy205; + if (yych <= '#') goto yy193; + goto yy196; } else { - if (yych == '\'') goto yy181; - goto yy202; + if (yych == '\'') goto yy172; + goto yy193; } } else { if (yych <= '[') { - if (yych <= ';') goto yy181; - goto yy202; + if (yych <= ';') goto yy172; + goto yy193; } else { - if (yych <= '\\') goto yy204; - if (yych <= ']') goto yy181; - goto yy202; + if (yych <= '\\') goto yy195; + if (yych <= ']') goto yy172; + goto yy193; } } } -yy231: - YYDEBUG(231, *YYCURSOR); +yy222: + YYDEBUG(222, *YYCURSOR); ++YYCURSOR; yych = *YYCURSOR; - goto yy186; + goto yy177; } /* *********************************** */ yyc_ST_VALUE: @@ -2686,27 +2624,27 @@ yyc_ST_VALUE: 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, }; - YYDEBUG(232, *YYCURSOR); + YYDEBUG(223, *YYCURSOR); YYFILL(6); yych = *YYCURSOR; YYDEBUG(-1, yych); switch (yych) { - case 0x00: goto yy234; + case 0x00: goto yy225; case '\t': - case ' ': goto yy238; - case '\n': goto yy240; - case '\r': goto yy242; + case ' ': goto yy229; + case '\n': goto yy231; + case '\r': goto yy233; case '!': case '&': case '(': case ')': case '|': - case '~': goto yy243; - case '"': goto yy245; - case '$': goto yy247; - case '\'': goto yy248; - case '-': goto yy249; - case '.': goto yy250; + case '~': goto yy234; + case '"': goto yy236; + case '$': goto yy238; + case '\'': goto yy239; + case '-': goto yy240; + case '.': goto yy241; case '0': case '1': case '2': @@ -2716,9 +2654,9 @@ yyc_ST_VALUE: case '6': case '7': case '8': - case '9': goto yy251; - case ';': goto yy253; - case '=': goto yy254; + case '9': goto yy242; + case ';': goto yy244; + case '=': goto yy245; case 'A': case 'B': case 'C': @@ -2760,1531 +2698,1531 @@ yyc_ST_VALUE: case 'v': case 'w': case 'x': - case 'z': goto yy256; + case 'z': goto yy247; case 'F': - case 'f': goto yy258; + case 'f': goto yy249; case 'N': - case 'n': goto yy259; + case 'n': goto yy250; case 'O': - case 'o': goto yy260; + case 'o': goto yy251; case 'T': - case 't': goto yy261; + case 't': goto yy252; case 'Y': - case 'y': goto yy262; - default: goto yy236; + case 'y': goto yy253; + default: goto yy227; } -yy234: - YYDEBUG(234, *YYCURSOR); +yy225: + YYDEBUG(225, *YYCURSOR); ++YYCURSOR; -yy235: - YYDEBUG(235, *YYCURSOR); +yy226: + YYDEBUG(226, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); #line 490 "Zend/zend_ini_scanner.l" { /* End of option value (if EOF is reached before EOL */ BEGIN(INITIAL); return END_OF_LINE; } -#line 2788 "Zend/zend_ini_scanner.c" -yy236: - YYDEBUG(236, *YYCURSOR); +#line 2726 "Zend/zend_ini_scanner.c" +yy227: + YYDEBUG(227, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - goto yy264; -yy237: - YYDEBUG(237, *YYCURSOR); + goto yy255; +yy228: + YYDEBUG(228, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 436 "Zend/zend_ini_scanner.l" +#line 447 "Zend/zend_ini_scanner.l" { /* Get everything else as option/offset value */ RETURN_TOKEN(TC_STRING, yytext, yyleng); } -#line 2801 "Zend/zend_ini_scanner.c" -yy238: - YYDEBUG(238, *YYCURSOR); +#line 2739 "Zend/zend_ini_scanner.c" +yy229: + YYDEBUG(229, *YYCURSOR); yyaccept = 1; yych = *(YYMARKER = ++YYCURSOR); - goto yy314; -yy239: - YYDEBUG(239, *YYCURSOR); + goto yy305; +yy230: + YYDEBUG(230, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 463 "Zend/zend_ini_scanner.l" +#line 470 "Zend/zend_ini_scanner.l" { RETURN_TOKEN(TC_WHITESPACE, yytext, yyleng); } -#line 2814 "Zend/zend_ini_scanner.c" -yy240: - YYDEBUG(240, *YYCURSOR); +#line 2752 "Zend/zend_ini_scanner.c" +yy231: + YYDEBUG(231, *YYCURSOR); ++YYCURSOR; -yy241: - YYDEBUG(241, *YYCURSOR); +yy232: + YYDEBUG(232, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 408 "Zend/zend_ini_scanner.l" +#line 419 "Zend/zend_ini_scanner.l" { /* End of option value */ BEGIN(INITIAL); SCNG(lineno)++; return END_OF_LINE; } -#line 2827 "Zend/zend_ini_scanner.c" -yy242: - YYDEBUG(242, *YYCURSOR); +#line 2765 "Zend/zend_ini_scanner.c" +yy233: + YYDEBUG(233, *YYCURSOR); yych = *++YYCURSOR; - if (yych == '\n') goto yy312; - goto yy241; -yy243: - YYDEBUG(243, *YYCURSOR); + if (yych == '\n') goto yy303; + goto yy232; +yy234: + YYDEBUG(234, *YYCURSOR); ++YYCURSOR; yych = *YYCURSOR; - goto yy311; -yy244: - YYDEBUG(244, *YYCURSOR); + goto yy302; +yy235: + YYDEBUG(235, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 426 "Zend/zend_ini_scanner.l" +#line 437 "Zend/zend_ini_scanner.l" { /* Boolean operators */ return yytext[0]; } -#line 2845 "Zend/zend_ini_scanner.c" -yy245: - YYDEBUG(245, *YYCURSOR); +#line 2783 "Zend/zend_ini_scanner.c" +yy236: + YYDEBUG(236, *YYCURSOR); ++YYCURSOR; -yy246: - YYDEBUG(246, *YYCURSOR); +yy237: + YYDEBUG(237, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 444 "Zend/zend_ini_scanner.l" +#line 455 "Zend/zend_ini_scanner.l" { /* Double quoted '"' string start */ yy_push_state(ST_DOUBLE_QUOTES TSRMLS_CC); return '"'; } -#line 2857 "Zend/zend_ini_scanner.c" -yy247: - YYDEBUG(247, *YYCURSOR); +#line 2795 "Zend/zend_ini_scanner.c" +yy238: + YYDEBUG(238, *YYCURSOR); yych = *++YYCURSOR; if (yych <= '\\') { - if (yych <= 0x00) goto yy235; - if (yych <= '[') goto yy263; - goto yy270; + if (yych <= 0x00) goto yy226; + if (yych <= '[') goto yy254; + goto yy261; } else { - if (yych == '{') goto yy308; - goto yy263; + if (yych == '{') goto yy299; + goto yy254; } -yy248: - YYDEBUG(248, *YYCURSOR); +yy239: + YYDEBUG(239, *YYCURSOR); yyaccept = 2; yych = *(YYMARKER = ++YYCURSOR); if (yybm[0+yych] & 128) { - goto yy304; + goto yy295; } - goto yy235; -yy249: - YYDEBUG(249, *YYCURSOR); + goto yy226; +yy240: + YYDEBUG(240, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '/') goto yy264; - if (yych <= '9') goto yy302; - goto yy264; -yy250: - YYDEBUG(250, *YYCURSOR); + if (yych <= '/') goto yy255; + if (yych <= '9') goto yy293; + goto yy255; +yy241: + YYDEBUG(241, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '/') goto yy264; - if (yych <= '9') goto yy300; - goto yy264; -yy251: - YYDEBUG(251, *YYCURSOR); + if (yych <= '/') goto yy255; + if (yych <= '9') goto yy291; + goto yy255; +yy242: + YYDEBUG(242, *YYCURSOR); yyaccept = 3; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '.') { if (yych <= '\r') { if (yych <= 0x08) { - if (yych >= 0x01) goto yy264; + if (yych >= 0x01) goto yy255; } else { - if (yych <= '\n') goto yy252; - if (yych <= '\f') goto yy264; + if (yych <= '\n') goto yy243; + if (yych <= '\f') goto yy255; } } else { if (yych <= '%') { - if (yych <= 0x1F) goto yy264; - if (yych >= '#') goto yy264; + if (yych <= 0x1F) goto yy255; + if (yych >= '#') goto yy255; } else { - if (yych <= ')') goto yy252; - if (yych <= '-') goto yy264; - goto yy296; + if (yych <= ')') goto yy243; + if (yych <= '-') goto yy255; + goto yy287; } } } else { if (yych <= '<') { if (yych <= '9') { - if (yych <= '/') goto yy264; - goto yy298; + if (yych <= '/') goto yy255; + goto yy289; } else { - if (yych != ';') goto yy264; + if (yych != ';') goto yy255; } } else { if (yych <= '|') { - if (yych <= '=') goto yy252; - if (yych <= '{') goto yy264; + if (yych <= '=') goto yy243; + if (yych <= '{') goto yy255; } else { - if (yych != '~') goto yy264; + if (yych != '~') goto yy255; } } } -yy252: - YYDEBUG(252, *YYCURSOR); +yy243: + YYDEBUG(243, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 418 "Zend/zend_ini_scanner.l" +#line 429 "Zend/zend_ini_scanner.l" { /* Get number option value as string */ RETURN_TOKEN(TC_NUMBER, yytext, yyleng); } -#line 2937 "Zend/zend_ini_scanner.c" -yy253: - YYDEBUG(253, *YYCURSOR); +#line 2875 "Zend/zend_ini_scanner.c" +yy244: + YYDEBUG(244, *YYCURSOR); yyaccept = 2; yych = *(YYMARKER = ++YYCURSOR); - goto yy292; -yy254: - YYDEBUG(254, *YYCURSOR); + goto yy283; +yy245: + YYDEBUG(245, *YYCURSOR); ++YYCURSOR; - YYDEBUG(255, *YYCURSOR); + YYDEBUG(246, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 430 "Zend/zend_ini_scanner.l" +#line 441 "Zend/zend_ini_scanner.l" { /* Make = used in option value to trigger error */ yyless(0); BEGIN(INITIAL); return END_OF_LINE; } -#line 2954 "Zend/zend_ini_scanner.c" -yy256: - YYDEBUG(256, *YYCURSOR); +#line 2892 "Zend/zend_ini_scanner.c" +yy247: + YYDEBUG(247, *YYCURSOR); yyaccept = 4; yych = *(YYMARKER = ++YYCURSOR); if (yybm[0+yych] & 4) { - goto yy265; + goto yy256; } if (yych <= ')') { if (yych <= '\f') { - if (yych <= 0x00) goto yy257; - if (yych <= 0x08) goto yy264; - if (yych >= '\v') goto yy264; + if (yych <= 0x00) goto yy248; + if (yych <= 0x08) goto yy255; + if (yych >= '\v') goto yy255; } else { if (yych <= 0x1F) { - if (yych >= 0x0E) goto yy264; + if (yych >= 0x0E) goto yy255; } else { - if (yych <= '"') goto yy257; - if (yych <= '%') goto yy264; + if (yych <= '"') goto yy248; + if (yych <= '%') goto yy255; } } } else { if (yych <= '=') { - if (yych == ';') goto yy257; - if (yych <= '<') goto yy264; + if (yych == ';') goto yy248; + if (yych <= '<') goto yy255; } else { if (yych <= '|') { - if (yych <= '{') goto yy264; + if (yych <= '{') goto yy255; } else { - if (yych != '~') goto yy264; + if (yych != '~') goto yy255; } } } -yy257: - YYDEBUG(257, *YYCURSOR); +yy248: + YYDEBUG(248, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 414 "Zend/zend_ini_scanner.l" +#line 425 "Zend/zend_ini_scanner.l" { /* Get constant option value */ RETURN_TOKEN(TC_CONSTANT, yytext, yyleng); } -#line 2994 "Zend/zend_ini_scanner.c" -yy258: - YYDEBUG(258, *YYCURSOR); +#line 2932 "Zend/zend_ini_scanner.c" +yy249: + YYDEBUG(249, *YYCURSOR); yyaccept = 4; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '<') { if (yych <= '"') { if (yych <= '\n') { - if (yych <= 0x00) goto yy257; - if (yych <= 0x08) goto yy264; - goto yy257; + if (yych <= 0x00) goto yy248; + if (yych <= 0x08) goto yy255; + goto yy248; } else { - if (yych == '\r') goto yy257; - if (yych <= 0x1F) goto yy264; - goto yy257; + if (yych == '\r') goto yy248; + if (yych <= 0x1F) goto yy255; + goto yy248; } } else { if (yych <= '/') { - if (yych <= '%') goto yy264; - if (yych <= ')') goto yy257; - goto yy264; + if (yych <= '%') goto yy255; + if (yych <= ')') goto yy248; + goto yy255; } else { - if (yych <= '9') goto yy265; - if (yych == ';') goto yy257; - goto yy264; + if (yych <= '9') goto yy256; + if (yych == ';') goto yy248; + goto yy255; } } } else { if (yych <= '`') { if (yych <= 'A') { - if (yych <= '=') goto yy257; - if (yych <= '@') goto yy264; - goto yy288; + if (yych <= '=') goto yy248; + if (yych <= '@') goto yy255; + goto yy279; } else { - if (yych <= 'Z') goto yy265; - if (yych == '_') goto yy265; - goto yy264; + if (yych <= 'Z') goto yy256; + if (yych == '_') goto yy256; + goto yy255; } } else { if (yych <= '{') { - if (yych <= 'a') goto yy288; - if (yych <= 'z') goto yy265; - goto yy264; + if (yych <= 'a') goto yy279; + if (yych <= 'z') goto yy256; + goto yy255; } else { - if (yych == '}') goto yy264; - if (yych <= '~') goto yy257; - goto yy264; + if (yych == '}') goto yy255; + if (yych <= '~') goto yy248; + goto yy255; } } } -yy259: - YYDEBUG(259, *YYCURSOR); +yy250: + YYDEBUG(250, *YYCURSOR); yyaccept = 4; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'N') { if (yych <= '%') { if (yych <= '\f') { - if (yych <= 0x00) goto yy257; - if (yych <= 0x08) goto yy264; - if (yych <= '\n') goto yy257; - goto yy264; + if (yych <= 0x00) goto yy248; + if (yych <= 0x08) goto yy255; + if (yych <= '\n') goto yy248; + goto yy255; } else { - if (yych <= '\r') goto yy257; - if (yych <= 0x1F) goto yy264; - if (yych <= '"') goto yy257; - goto yy264; + if (yych <= '\r') goto yy248; + if (yych <= 0x1F) goto yy255; + if (yych <= '"') goto yy248; + goto yy255; } } else { if (yych <= ':') { - if (yych <= ')') goto yy257; - if (yych <= '/') goto yy264; - if (yych <= '9') goto yy265; - goto yy264; + if (yych <= ')') goto yy248; + if (yych <= '/') goto yy255; + if (yych <= '9') goto yy256; + goto yy255; } else { if (yych <= '<') { - if (yych <= ';') goto yy257; - goto yy264; + if (yych <= ';') goto yy248; + goto yy255; } else { - if (yych <= '=') goto yy257; - if (yych <= '@') goto yy264; - goto yy265; + if (yych <= '=') goto yy248; + if (yych <= '@') goto yy255; + goto yy256; } } } } else { if (yych <= 'n') { if (yych <= 'Z') { - if (yych <= 'O') goto yy284; - if (yych == 'U') goto yy285; - goto yy265; + if (yych <= 'O') goto yy275; + if (yych == 'U') goto yy276; + goto yy256; } else { - if (yych == '_') goto yy265; - if (yych <= '`') goto yy264; - goto yy265; + if (yych == '_') goto yy256; + if (yych <= '`') goto yy255; + goto yy256; } } else { if (yych <= 'z') { - if (yych <= 'o') goto yy284; - if (yych == 'u') goto yy285; - goto yy265; + if (yych <= 'o') goto yy275; + if (yych == 'u') goto yy276; + goto yy256; } else { if (yych <= '|') { - if (yych <= '{') goto yy264; - goto yy257; + if (yych <= '{') goto yy255; + goto yy248; } else { - if (yych == '~') goto yy257; - goto yy264; + if (yych == '~') goto yy248; + goto yy255; } } } } -yy260: - YYDEBUG(260, *YYCURSOR); +yy251: + YYDEBUG(251, *YYCURSOR); yyaccept = 4; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'E') { if (yych <= '%') { if (yych <= '\f') { - if (yych <= 0x00) goto yy257; - if (yych <= 0x08) goto yy264; - if (yych <= '\n') goto yy257; - goto yy264; + if (yych <= 0x00) goto yy248; + if (yych <= 0x08) goto yy255; + if (yych <= '\n') goto yy248; + goto yy255; } else { - if (yych <= '\r') goto yy257; - if (yych <= 0x1F) goto yy264; - if (yych <= '"') goto yy257; - goto yy264; + if (yych <= '\r') goto yy248; + if (yych <= 0x1F) goto yy255; + if (yych <= '"') goto yy248; + goto yy255; } } else { if (yych <= ':') { - if (yych <= ')') goto yy257; - if (yych <= '/') goto yy264; - if (yych <= '9') goto yy265; - goto yy264; + if (yych <= ')') goto yy248; + if (yych <= '/') goto yy255; + if (yych <= '9') goto yy256; + goto yy255; } else { if (yych <= '<') { - if (yych <= ';') goto yy257; - goto yy264; + if (yych <= ';') goto yy248; + goto yy255; } else { - if (yych <= '=') goto yy257; - if (yych <= '@') goto yy264; - goto yy265; + if (yych <= '=') goto yy248; + if (yych <= '@') goto yy255; + goto yy256; } } } } else { if (yych <= 'e') { if (yych <= 'Z') { - if (yych <= 'F') goto yy279; - if (yych == 'N') goto yy273; - goto yy265; + if (yych <= 'F') goto yy270; + if (yych == 'N') goto yy264; + goto yy256; } else { - if (yych == '_') goto yy265; - if (yych <= '`') goto yy264; - goto yy265; + if (yych == '_') goto yy256; + if (yych <= '`') goto yy255; + goto yy256; } } else { if (yych <= 'z') { - if (yych <= 'f') goto yy279; - if (yych == 'n') goto yy273; - goto yy265; + if (yych <= 'f') goto yy270; + if (yych == 'n') goto yy264; + goto yy256; } else { if (yych <= '|') { - if (yych <= '{') goto yy264; - goto yy257; + if (yych <= '{') goto yy255; + goto yy248; } else { - if (yych == '~') goto yy257; - goto yy264; + if (yych == '~') goto yy248; + goto yy255; } } } } -yy261: - YYDEBUG(261, *YYCURSOR); +yy252: + YYDEBUG(252, *YYCURSOR); yyaccept = 4; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '=') { if (yych <= '"') { if (yych <= '\n') { - if (yych <= 0x00) goto yy257; - if (yych <= 0x08) goto yy264; - goto yy257; + if (yych <= 0x00) goto yy248; + if (yych <= 0x08) goto yy255; + goto yy248; } else { - if (yych == '\r') goto yy257; - if (yych <= 0x1F) goto yy264; - goto yy257; + if (yych == '\r') goto yy248; + if (yych <= 0x1F) goto yy255; + goto yy248; } } else { if (yych <= '9') { - if (yych <= '%') goto yy264; - if (yych <= ')') goto yy257; - if (yych <= '/') goto yy264; - goto yy265; + if (yych <= '%') goto yy255; + if (yych <= ')') goto yy248; + if (yych <= '/') goto yy255; + goto yy256; } else { - if (yych == ';') goto yy257; - if (yych <= '<') goto yy264; - goto yy257; + if (yych == ';') goto yy248; + if (yych <= '<') goto yy255; + goto yy248; } } } else { if (yych <= '`') { if (yych <= 'R') { - if (yych <= '@') goto yy264; - if (yych <= 'Q') goto yy265; - goto yy277; + if (yych <= '@') goto yy255; + if (yych <= 'Q') goto yy256; + goto yy268; } else { - if (yych <= 'Z') goto yy265; - if (yych == '_') goto yy265; - goto yy264; + if (yych <= 'Z') goto yy256; + if (yych == '_') goto yy256; + goto yy255; } } else { if (yych <= '{') { - if (yych == 'r') goto yy277; - if (yych <= 'z') goto yy265; - goto yy264; + if (yych == 'r') goto yy268; + if (yych <= 'z') goto yy256; + goto yy255; } else { - if (yych == '}') goto yy264; - if (yych <= '~') goto yy257; - goto yy264; + if (yych == '}') goto yy255; + if (yych <= '~') goto yy248; + goto yy255; } } } -yy262: - YYDEBUG(262, *YYCURSOR); +yy253: + YYDEBUG(253, *YYCURSOR); yyaccept = 4; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '=') { if (yych <= '"') { if (yych <= '\n') { - if (yych <= 0x00) goto yy257; - if (yych <= 0x08) goto yy264; - goto yy257; + if (yych <= 0x00) goto yy248; + if (yych <= 0x08) goto yy255; + goto yy248; } else { - if (yych == '\r') goto yy257; - if (yych <= 0x1F) goto yy264; - goto yy257; + if (yych == '\r') goto yy248; + if (yych <= 0x1F) goto yy255; + goto yy248; } } else { if (yych <= '9') { - if (yych <= '%') goto yy264; - if (yych <= ')') goto yy257; - if (yych <= '/') goto yy264; - goto yy265; + if (yych <= '%') goto yy255; + if (yych <= ')') goto yy248; + if (yych <= '/') goto yy255; + goto yy256; } else { - if (yych == ';') goto yy257; - if (yych <= '<') goto yy264; - goto yy257; + if (yych == ';') goto yy248; + if (yych <= '<') goto yy255; + goto yy248; } } } else { if (yych <= '`') { if (yych <= 'E') { - if (yych <= '@') goto yy264; - if (yych <= 'D') goto yy265; - goto yy267; + if (yych <= '@') goto yy255; + if (yych <= 'D') goto yy256; + goto yy258; } else { - if (yych <= 'Z') goto yy265; - if (yych == '_') goto yy265; - goto yy264; + if (yych <= 'Z') goto yy256; + if (yych == '_') goto yy256; + goto yy255; } } else { if (yych <= '{') { - if (yych == 'e') goto yy267; - if (yych <= 'z') goto yy265; - goto yy264; + if (yych == 'e') goto yy258; + if (yych <= 'z') goto yy256; + goto yy255; } else { - if (yych == '}') goto yy264; - if (yych <= '~') goto yy257; - goto yy264; + if (yych == '}') goto yy255; + if (yych <= '~') goto yy248; + goto yy255; } } } -yy263: - YYDEBUG(263, *YYCURSOR); +yy254: + YYDEBUG(254, *YYCURSOR); yyaccept = 0; YYMARKER = ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; -yy264: - YYDEBUG(264, *YYCURSOR); +yy255: + YYDEBUG(255, *YYCURSOR); if (yybm[0+yych] & 2) { - goto yy263; + goto yy254; } - if (yych == '$') goto yy268; - goto yy237; -yy265: - YYDEBUG(265, *YYCURSOR); + if (yych == '$') goto yy259; + goto yy228; +yy256: + YYDEBUG(256, *YYCURSOR); yyaccept = 4; YYMARKER = ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - YYDEBUG(266, *YYCURSOR); + YYDEBUG(257, *YYCURSOR); if (yybm[0+yych] & 4) { - goto yy265; + goto yy256; } if (yych <= '%') { if (yych <= '\r') { if (yych <= 0x08) { - if (yych <= 0x00) goto yy257; - goto yy263; + if (yych <= 0x00) goto yy248; + goto yy254; } else { - if (yych <= '\n') goto yy257; - if (yych <= '\f') goto yy263; - goto yy257; + if (yych <= '\n') goto yy248; + if (yych <= '\f') goto yy254; + goto yy248; } } else { if (yych <= '"') { - if (yych <= 0x1F) goto yy263; - goto yy257; + if (yych <= 0x1F) goto yy254; + goto yy248; } else { - if (yych == '$') goto yy268; - goto yy263; + if (yych == '$') goto yy259; + goto yy254; } } } else { if (yych <= '=') { if (yych <= ':') { - if (yych <= ')') goto yy257; - goto yy263; + if (yych <= ')') goto yy248; + goto yy254; } else { - if (yych == '<') goto yy263; - goto yy257; + if (yych == '<') goto yy254; + goto yy248; } } else { if (yych <= '|') { - if (yych <= '{') goto yy263; - goto yy257; + if (yych <= '{') goto yy254; + goto yy248; } else { - if (yych == '~') goto yy257; - goto yy263; + if (yych == '~') goto yy248; + goto yy254; } } } -yy267: - YYDEBUG(267, *YYCURSOR); +yy258: + YYDEBUG(258, *YYCURSOR); yyaccept = 4; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '=') { if (yych <= '"') { if (yych <= '\n') { - if (yych <= 0x00) goto yy257; - if (yych <= 0x08) goto yy264; - goto yy257; + if (yych <= 0x00) goto yy248; + if (yych <= 0x08) goto yy255; + goto yy248; } else { - if (yych == '\r') goto yy257; - if (yych <= 0x1F) goto yy264; - goto yy257; + if (yych == '\r') goto yy248; + if (yych <= 0x1F) goto yy255; + goto yy248; } } else { if (yych <= '9') { - if (yych <= '%') goto yy264; - if (yych <= ')') goto yy257; - if (yych <= '/') goto yy264; - goto yy265; + if (yych <= '%') goto yy255; + if (yych <= ')') goto yy248; + if (yych <= '/') goto yy255; + goto yy256; } else { - if (yych == ';') goto yy257; - if (yych <= '<') goto yy264; - goto yy257; + if (yych == ';') goto yy248; + if (yych <= '<') goto yy255; + goto yy248; } } } else { if (yych <= '`') { if (yych <= 'S') { - if (yych <= '@') goto yy264; - if (yych <= 'R') goto yy265; - goto yy273; - } else { - if (yych <= 'Z') goto yy265; - if (yych == '_') goto yy265; + if (yych <= '@') goto yy255; + if (yych <= 'R') goto yy256; goto yy264; + } else { + if (yych <= 'Z') goto yy256; + if (yych == '_') goto yy256; + goto yy255; } } else { if (yych <= '{') { - if (yych == 's') goto yy273; - if (yych <= 'z') goto yy265; - goto yy264; + if (yych == 's') goto yy264; + if (yych <= 'z') goto yy256; + goto yy255; } else { - if (yych == '}') goto yy264; - if (yych <= '~') goto yy257; - goto yy264; + if (yych == '}') goto yy255; + if (yych <= '~') goto yy248; + goto yy255; } } } -yy268: - YYDEBUG(268, *YYCURSOR); +yy259: + YYDEBUG(259, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; if (yych <= '\\') { - if (yych <= 0x00) goto yy269; - if (yych <= '[') goto yy263; - goto yy270; + if (yych <= 0x00) goto yy260; + if (yych <= '[') goto yy254; + goto yy261; } else { - if (yych != '{') goto yy263; + if (yych != '{') goto yy254; } -yy269: - YYDEBUG(269, *YYCURSOR); +yy260: + YYDEBUG(260, *YYCURSOR); YYCURSOR = YYMARKER; if (yyaccept <= 3) { if (yyaccept <= 1) { if (yyaccept <= 0) { - goto yy237; + goto yy228; } else { - goto yy239; + goto yy230; } } else { if (yyaccept <= 2) { - goto yy235; + goto yy226; } else { - goto yy252; + goto yy243; } } } else { if (yyaccept <= 5) { if (yyaccept <= 4) { - goto yy257; + goto yy248; } else { - goto yy274; + goto yy265; } } else { - goto yy281; + goto yy272; } } -yy270: - YYDEBUG(270, *YYCURSOR); +yy261: + YYDEBUG(261, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; if (yybm[0+yych] & 8) { - goto yy271; + goto yy262; } - goto yy263; -yy271: - YYDEBUG(271, *YYCURSOR); + goto yy254; +yy262: + YYDEBUG(262, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - YYDEBUG(272, *YYCURSOR); + YYDEBUG(263, *YYCURSOR); if (yybm[0+yych] & 8) { - goto yy271; + goto yy262; } - if (yych <= 0x00) goto yy237; - if (yych == '\\') goto yy270; - goto yy263; -yy273: - YYDEBUG(273, *YYCURSOR); + if (yych <= 0x00) goto yy228; + if (yych == '\\') goto yy261; + goto yy254; +yy264: + YYDEBUG(264, *YYCURSOR); yyaccept = 5; yych = *(YYMARKER = ++YYCURSOR); if (yybm[0+yych] & 16) { - goto yy275; + goto yy266; } if (yych <= ';') { if (yych <= ' ') { if (yych <= '\n') { - if (yych <= 0x00) goto yy274; - if (yych <= '\t') goto yy264; + if (yych <= 0x00) goto yy265; + if (yych <= '\t') goto yy255; } else { - if (yych != '\r') goto yy264; + if (yych != '\r') goto yy255; } } else { if (yych <= ')') { - if (yych <= '"') goto yy274; - if (yych <= '%') goto yy264; + if (yych <= '"') goto yy265; + if (yych <= '%') goto yy255; } else { - if (yych <= '/') goto yy264; - if (yych <= '9') goto yy265; - if (yych <= ':') goto yy264; + if (yych <= '/') goto yy255; + if (yych <= '9') goto yy256; + if (yych <= ':') goto yy255; } } } else { if (yych <= '_') { if (yych <= '@') { - if (yych != '=') goto yy264; + if (yych != '=') goto yy255; } else { - if (yych <= 'Z') goto yy265; - if (yych <= '^') goto yy264; - goto yy265; + if (yych <= 'Z') goto yy256; + if (yych <= '^') goto yy255; + goto yy256; } } else { if (yych <= '{') { - if (yych <= '`') goto yy264; - if (yych <= 'z') goto yy265; - goto yy264; + if (yych <= '`') goto yy255; + if (yych <= 'z') goto yy256; + goto yy255; } else { - if (yych == '}') goto yy264; - if (yych >= 0x7F) goto yy264; + if (yych == '}') goto yy255; + if (yych >= 0x7F) goto yy255; } } } -yy274: - YYDEBUG(274, *YYCURSOR); +yy265: + YYDEBUG(265, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 374 "Zend/zend_ini_scanner.l" +#line 385 "Zend/zend_ini_scanner.l" { /* TRUE value (when used outside option value/offset this causes parse error!) */ RETURN_TOKEN(BOOL_TRUE, "1", 1); } -#line 3490 "Zend/zend_ini_scanner.c" -yy275: - YYDEBUG(275, *YYCURSOR); +#line 3428 "Zend/zend_ini_scanner.c" +yy266: + YYDEBUG(266, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - YYDEBUG(276, *YYCURSOR); + YYDEBUG(267, *YYCURSOR); if (yybm[0+yych] & 16) { - goto yy275; + goto yy266; } - goto yy274; -yy277: - YYDEBUG(277, *YYCURSOR); + goto yy265; +yy268: + YYDEBUG(268, *YYCURSOR); yyaccept = 4; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '=') { if (yych <= '"') { if (yych <= '\n') { - if (yych <= 0x00) goto yy257; - if (yych <= 0x08) goto yy264; - goto yy257; + if (yych <= 0x00) goto yy248; + if (yych <= 0x08) goto yy255; + goto yy248; } else { - if (yych == '\r') goto yy257; - if (yych <= 0x1F) goto yy264; - goto yy257; + if (yych == '\r') goto yy248; + if (yych <= 0x1F) goto yy255; + goto yy248; } } else { if (yych <= '9') { - if (yych <= '%') goto yy264; - if (yych <= ')') goto yy257; - if (yych <= '/') goto yy264; - goto yy265; + if (yych <= '%') goto yy255; + if (yych <= ')') goto yy248; + if (yych <= '/') goto yy255; + goto yy256; } else { - if (yych == ';') goto yy257; - if (yych <= '<') goto yy264; - goto yy257; + if (yych == ';') goto yy248; + if (yych <= '<') goto yy255; + goto yy248; } } } else { if (yych <= '`') { if (yych <= 'U') { - if (yych <= '@') goto yy264; - if (yych <= 'T') goto yy265; + if (yych <= '@') goto yy255; + if (yych <= 'T') goto yy256; } else { - if (yych <= 'Z') goto yy265; - if (yych == '_') goto yy265; - goto yy264; + if (yych <= 'Z') goto yy256; + if (yych == '_') goto yy256; + goto yy255; } } else { if (yych <= '{') { - if (yych == 'u') goto yy278; - if (yych <= 'z') goto yy265; - goto yy264; + if (yych == 'u') goto yy269; + if (yych <= 'z') goto yy256; + goto yy255; } else { - if (yych == '}') goto yy264; - if (yych <= '~') goto yy257; - goto yy264; + if (yych == '}') goto yy255; + if (yych <= '~') goto yy248; + goto yy255; } } } -yy278: - YYDEBUG(278, *YYCURSOR); +yy269: + YYDEBUG(269, *YYCURSOR); yyaccept = 4; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '=') { if (yych <= '"') { if (yych <= '\n') { - if (yych <= 0x00) goto yy257; - if (yych <= 0x08) goto yy264; - goto yy257; + if (yych <= 0x00) goto yy248; + if (yych <= 0x08) goto yy255; + goto yy248; } else { - if (yych == '\r') goto yy257; - if (yych <= 0x1F) goto yy264; - goto yy257; + if (yych == '\r') goto yy248; + if (yych <= 0x1F) goto yy255; + goto yy248; } } else { if (yych <= '9') { - if (yych <= '%') goto yy264; - if (yych <= ')') goto yy257; - if (yych <= '/') goto yy264; - goto yy265; + if (yych <= '%') goto yy255; + if (yych <= ')') goto yy248; + if (yych <= '/') goto yy255; + goto yy256; } else { - if (yych == ';') goto yy257; - if (yych <= '<') goto yy264; - goto yy257; + if (yych == ';') goto yy248; + if (yych <= '<') goto yy255; + goto yy248; } } } else { if (yych <= '`') { if (yych <= 'E') { - if (yych <= '@') goto yy264; - if (yych <= 'D') goto yy265; - goto yy273; - } else { - if (yych <= 'Z') goto yy265; - if (yych == '_') goto yy265; + if (yych <= '@') goto yy255; + if (yych <= 'D') goto yy256; goto yy264; + } else { + if (yych <= 'Z') goto yy256; + if (yych == '_') goto yy256; + goto yy255; } } else { if (yych <= '{') { - if (yych == 'e') goto yy273; - if (yych <= 'z') goto yy265; - goto yy264; + if (yych == 'e') goto yy264; + if (yych <= 'z') goto yy256; + goto yy255; } else { - if (yych == '}') goto yy264; - if (yych <= '~') goto yy257; - goto yy264; + if (yych == '}') goto yy255; + if (yych <= '~') goto yy248; + goto yy255; } } } -yy279: - YYDEBUG(279, *YYCURSOR); +yy270: + YYDEBUG(270, *YYCURSOR); yyaccept = 4; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '=') { if (yych <= '"') { if (yych <= '\n') { - if (yych <= 0x00) goto yy257; - if (yych <= 0x08) goto yy264; - goto yy257; + if (yych <= 0x00) goto yy248; + if (yych <= 0x08) goto yy255; + goto yy248; } else { - if (yych == '\r') goto yy257; - if (yych <= 0x1F) goto yy264; - goto yy257; + if (yych == '\r') goto yy248; + if (yych <= 0x1F) goto yy255; + goto yy248; } } else { if (yych <= '9') { - if (yych <= '%') goto yy264; - if (yych <= ')') goto yy257; - if (yych <= '/') goto yy264; - goto yy265; + if (yych <= '%') goto yy255; + if (yych <= ')') goto yy248; + if (yych <= '/') goto yy255; + goto yy256; } else { - if (yych == ';') goto yy257; - if (yych <= '<') goto yy264; - goto yy257; + if (yych == ';') goto yy248; + if (yych <= '<') goto yy255; + goto yy248; } } } else { if (yych <= '`') { if (yych <= 'F') { - if (yych <= '@') goto yy264; - if (yych <= 'E') goto yy265; + if (yych <= '@') goto yy255; + if (yych <= 'E') goto yy256; } else { - if (yych <= 'Z') goto yy265; - if (yych == '_') goto yy265; - goto yy264; + if (yych <= 'Z') goto yy256; + if (yych == '_') goto yy256; + goto yy255; } } else { if (yych <= '{') { - if (yych == 'f') goto yy280; - if (yych <= 'z') goto yy265; - goto yy264; + if (yych == 'f') goto yy271; + if (yych <= 'z') goto yy256; + goto yy255; } else { - if (yych == '}') goto yy264; - if (yych <= '~') goto yy257; - goto yy264; + if (yych == '}') goto yy255; + if (yych <= '~') goto yy248; + goto yy255; } } } -yy280: - YYDEBUG(280, *YYCURSOR); +yy271: + YYDEBUG(271, *YYCURSOR); yyaccept = 6; yych = *(YYMARKER = ++YYCURSOR); if (yybm[0+yych] & 4) { - goto yy265; + goto yy256; } if (yych <= '%') { if (yych <= '\f') { if (yych <= 0x08) { - if (yych >= 0x01) goto yy264; + if (yych >= 0x01) goto yy255; } else { - if (yych <= '\t') goto yy282; - if (yych >= '\v') goto yy264; + if (yych <= '\t') goto yy273; + if (yych >= '\v') goto yy255; } } else { if (yych <= 0x1F) { - if (yych >= 0x0E) goto yy264; + if (yych >= 0x0E) goto yy255; } else { - if (yych <= ' ') goto yy282; - if (yych >= '#') goto yy264; + if (yych <= ' ') goto yy273; + if (yych >= '#') goto yy255; } } } else { if (yych <= '=') { if (yych <= ':') { - if (yych >= '*') goto yy264; + if (yych >= '*') goto yy255; } else { - if (yych == '<') goto yy264; + if (yych == '<') goto yy255; } } else { if (yych <= '|') { - if (yych <= '{') goto yy264; + if (yych <= '{') goto yy255; } else { - if (yych != '~') goto yy264; + if (yych != '~') goto yy255; } } } -yy281: - YYDEBUG(281, *YYCURSOR); +yy272: + YYDEBUG(272, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 378 "Zend/zend_ini_scanner.l" +#line 389 "Zend/zend_ini_scanner.l" { /* FALSE value (when used outside option value/offset this causes parse error!)*/ RETURN_TOKEN(BOOL_FALSE, "", 0); } -#line 3694 "Zend/zend_ini_scanner.c" -yy282: - YYDEBUG(282, *YYCURSOR); +#line 3632 "Zend/zend_ini_scanner.c" +yy273: + YYDEBUG(273, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - YYDEBUG(283, *YYCURSOR); - if (yych == '\t') goto yy282; - if (yych == ' ') goto yy282; - goto yy281; -yy284: - YYDEBUG(284, *YYCURSOR); + YYDEBUG(274, *YYCURSOR); + if (yych == '\t') goto yy273; + if (yych == ' ') goto yy273; + goto yy272; +yy275: + YYDEBUG(275, *YYCURSOR); yyaccept = 6; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '<') { if (yych <= ' ') { if (yych <= '\n') { - if (yych <= 0x00) goto yy281; - if (yych <= 0x08) goto yy264; - if (yych <= '\t') goto yy282; - goto yy281; + if (yych <= 0x00) goto yy272; + if (yych <= 0x08) goto yy255; + if (yych <= '\t') goto yy273; + goto yy272; } else { - if (yych == '\r') goto yy281; - if (yych <= 0x1F) goto yy264; - goto yy282; + if (yych == '\r') goto yy272; + if (yych <= 0x1F) goto yy255; + goto yy273; } } else { if (yych <= '/') { - if (yych <= '"') goto yy281; - if (yych <= '%') goto yy264; - if (yych <= ')') goto yy281; - goto yy264; + if (yych <= '"') goto yy272; + if (yych <= '%') goto yy255; + if (yych <= ')') goto yy272; + goto yy255; } else { - if (yych <= '9') goto yy265; - if (yych == ';') goto yy281; - goto yy264; + if (yych <= '9') goto yy256; + if (yych == ';') goto yy272; + goto yy255; } } } else { if (yych <= '`') { if (yych <= 'N') { - if (yych <= '=') goto yy281; - if (yych <= '@') goto yy264; - if (yych <= 'M') goto yy265; - goto yy287; + if (yych <= '=') goto yy272; + if (yych <= '@') goto yy255; + if (yych <= 'M') goto yy256; + goto yy278; } else { - if (yych <= 'Z') goto yy265; - if (yych == '_') goto yy265; - goto yy264; + if (yych <= 'Z') goto yy256; + if (yych == '_') goto yy256; + goto yy255; } } else { if (yych <= '{') { - if (yych == 'n') goto yy287; - if (yych <= 'z') goto yy265; - goto yy264; + if (yych == 'n') goto yy278; + if (yych <= 'z') goto yy256; + goto yy255; } else { - if (yych == '}') goto yy264; - if (yych <= '~') goto yy281; - goto yy264; + if (yych == '}') goto yy255; + if (yych <= '~') goto yy272; + goto yy255; } } } -yy285: - YYDEBUG(285, *YYCURSOR); +yy276: + YYDEBUG(276, *YYCURSOR); yyaccept = 4; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '=') { if (yych <= '"') { if (yych <= '\n') { - if (yych <= 0x00) goto yy257; - if (yych <= 0x08) goto yy264; - goto yy257; + if (yych <= 0x00) goto yy248; + if (yych <= 0x08) goto yy255; + goto yy248; } else { - if (yych == '\r') goto yy257; - if (yych <= 0x1F) goto yy264; - goto yy257; + if (yych == '\r') goto yy248; + if (yych <= 0x1F) goto yy255; + goto yy248; } } else { if (yych <= '9') { - if (yych <= '%') goto yy264; - if (yych <= ')') goto yy257; - if (yych <= '/') goto yy264; - goto yy265; + if (yych <= '%') goto yy255; + if (yych <= ')') goto yy248; + if (yych <= '/') goto yy255; + goto yy256; } else { - if (yych == ';') goto yy257; - if (yych <= '<') goto yy264; - goto yy257; + if (yych == ';') goto yy248; + if (yych <= '<') goto yy255; + goto yy248; } } } else { if (yych <= '`') { if (yych <= 'L') { - if (yych <= '@') goto yy264; - if (yych <= 'K') goto yy265; + if (yych <= '@') goto yy255; + if (yych <= 'K') goto yy256; } else { - if (yych <= 'Z') goto yy265; - if (yych == '_') goto yy265; - goto yy264; + if (yych <= 'Z') goto yy256; + if (yych == '_') goto yy256; + goto yy255; } } else { if (yych <= '{') { - if (yych == 'l') goto yy286; - if (yych <= 'z') goto yy265; - goto yy264; + if (yych == 'l') goto yy277; + if (yych <= 'z') goto yy256; + goto yy255; } else { - if (yych == '}') goto yy264; - if (yych <= '~') goto yy257; - goto yy264; + if (yych == '}') goto yy255; + if (yych <= '~') goto yy248; + goto yy255; } } } -yy286: - YYDEBUG(286, *YYCURSOR); +yy277: + YYDEBUG(277, *YYCURSOR); yyaccept = 4; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '=') { if (yych <= '"') { if (yych <= '\n') { - if (yych <= 0x00) goto yy257; - if (yych <= 0x08) goto yy264; - goto yy257; + if (yych <= 0x00) goto yy248; + if (yych <= 0x08) goto yy255; + goto yy248; } else { - if (yych == '\r') goto yy257; - if (yych <= 0x1F) goto yy264; - goto yy257; + if (yych == '\r') goto yy248; + if (yych <= 0x1F) goto yy255; + goto yy248; } } else { if (yych <= '9') { - if (yych <= '%') goto yy264; - if (yych <= ')') goto yy257; - if (yych <= '/') goto yy264; - goto yy265; + if (yych <= '%') goto yy255; + if (yych <= ')') goto yy248; + if (yych <= '/') goto yy255; + goto yy256; } else { - if (yych == ';') goto yy257; - if (yych <= '<') goto yy264; - goto yy257; + if (yych == ';') goto yy248; + if (yych <= '<') goto yy255; + goto yy248; } } } else { if (yych <= '`') { if (yych <= 'L') { - if (yych <= '@') goto yy264; - if (yych <= 'K') goto yy265; - goto yy280; + if (yych <= '@') goto yy255; + if (yych <= 'K') goto yy256; + goto yy271; } else { - if (yych <= 'Z') goto yy265; - if (yych == '_') goto yy265; - goto yy264; + if (yych <= 'Z') goto yy256; + if (yych == '_') goto yy256; + goto yy255; } } else { if (yych <= '{') { - if (yych == 'l') goto yy280; - if (yych <= 'z') goto yy265; - goto yy264; + if (yych == 'l') goto yy271; + if (yych <= 'z') goto yy256; + goto yy255; } else { - if (yych == '}') goto yy264; - if (yych <= '~') goto yy257; - goto yy264; + if (yych == '}') goto yy255; + if (yych <= '~') goto yy248; + goto yy255; } } } -yy287: - YYDEBUG(287, *YYCURSOR); +yy278: + YYDEBUG(278, *YYCURSOR); yyaccept = 4; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '=') { if (yych <= '"') { if (yych <= '\n') { - if (yych <= 0x00) goto yy257; - if (yych <= 0x08) goto yy264; - goto yy257; + if (yych <= 0x00) goto yy248; + if (yych <= 0x08) goto yy255; + goto yy248; } else { - if (yych == '\r') goto yy257; - if (yych <= 0x1F) goto yy264; - goto yy257; + if (yych == '\r') goto yy248; + if (yych <= 0x1F) goto yy255; + goto yy248; } } else { if (yych <= '9') { - if (yych <= '%') goto yy264; - if (yych <= ')') goto yy257; - if (yych <= '/') goto yy264; - goto yy265; + if (yych <= '%') goto yy255; + if (yych <= ')') goto yy248; + if (yych <= '/') goto yy255; + goto yy256; } else { - if (yych == ';') goto yy257; - if (yych <= '<') goto yy264; - goto yy257; + if (yych == ';') goto yy248; + if (yych <= '<') goto yy255; + goto yy248; } } } else { if (yych <= '`') { if (yych <= 'E') { - if (yych <= '@') goto yy264; - if (yych <= 'D') goto yy265; - goto yy280; + if (yych <= '@') goto yy255; + if (yych <= 'D') goto yy256; + goto yy271; } else { - if (yych <= 'Z') goto yy265; - if (yych == '_') goto yy265; - goto yy264; + if (yych <= 'Z') goto yy256; + if (yych == '_') goto yy256; + goto yy255; } } else { if (yych <= '{') { - if (yych == 'e') goto yy280; - if (yych <= 'z') goto yy265; - goto yy264; + if (yych == 'e') goto yy271; + if (yych <= 'z') goto yy256; + goto yy255; } else { - if (yych == '}') goto yy264; - if (yych <= '~') goto yy257; - goto yy264; + if (yych == '}') goto yy255; + if (yych <= '~') goto yy248; + goto yy255; } } } -yy288: - YYDEBUG(288, *YYCURSOR); +yy279: + YYDEBUG(279, *YYCURSOR); yyaccept = 4; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '=') { if (yych <= '"') { if (yych <= '\n') { - if (yych <= 0x00) goto yy257; - if (yych <= 0x08) goto yy264; - goto yy257; + if (yych <= 0x00) goto yy248; + if (yych <= 0x08) goto yy255; + goto yy248; } else { - if (yych == '\r') goto yy257; - if (yych <= 0x1F) goto yy264; - goto yy257; + if (yych == '\r') goto yy248; + if (yych <= 0x1F) goto yy255; + goto yy248; } } else { if (yych <= '9') { - if (yych <= '%') goto yy264; - if (yych <= ')') goto yy257; - if (yych <= '/') goto yy264; - goto yy265; + if (yych <= '%') goto yy255; + if (yych <= ')') goto yy248; + if (yych <= '/') goto yy255; + goto yy256; } else { - if (yych == ';') goto yy257; - if (yych <= '<') goto yy264; - goto yy257; + if (yych == ';') goto yy248; + if (yych <= '<') goto yy255; + goto yy248; } } } else { if (yych <= '`') { if (yych <= 'L') { - if (yych <= '@') goto yy264; - if (yych <= 'K') goto yy265; + if (yych <= '@') goto yy255; + if (yych <= 'K') goto yy256; } else { - if (yych <= 'Z') goto yy265; - if (yych == '_') goto yy265; - goto yy264; + if (yych <= 'Z') goto yy256; + if (yych == '_') goto yy256; + goto yy255; } } else { if (yych <= '{') { - if (yych == 'l') goto yy289; - if (yych <= 'z') goto yy265; - goto yy264; + if (yych == 'l') goto yy280; + if (yych <= 'z') goto yy256; + goto yy255; } else { - if (yych == '}') goto yy264; - if (yych <= '~') goto yy257; - goto yy264; + if (yych == '}') goto yy255; + if (yych <= '~') goto yy248; + goto yy255; } } } -yy289: - YYDEBUG(289, *YYCURSOR); +yy280: + YYDEBUG(280, *YYCURSOR); yyaccept = 4; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '=') { if (yych <= '"') { if (yych <= '\n') { - if (yych <= 0x00) goto yy257; - if (yych <= 0x08) goto yy264; - goto yy257; + if (yych <= 0x00) goto yy248; + if (yych <= 0x08) goto yy255; + goto yy248; } else { - if (yych == '\r') goto yy257; - if (yych <= 0x1F) goto yy264; - goto yy257; + if (yych == '\r') goto yy248; + if (yych <= 0x1F) goto yy255; + goto yy248; } } else { if (yych <= '9') { - if (yych <= '%') goto yy264; - if (yych <= ')') goto yy257; - if (yych <= '/') goto yy264; - goto yy265; + if (yych <= '%') goto yy255; + if (yych <= ')') goto yy248; + if (yych <= '/') goto yy255; + goto yy256; } else { - if (yych == ';') goto yy257; - if (yych <= '<') goto yy264; - goto yy257; + if (yych == ';') goto yy248; + if (yych <= '<') goto yy255; + goto yy248; } } } else { if (yych <= '`') { if (yych <= 'S') { - if (yych <= '@') goto yy264; - if (yych <= 'R') goto yy265; + if (yych <= '@') goto yy255; + if (yych <= 'R') goto yy256; } else { - if (yych <= 'Z') goto yy265; - if (yych == '_') goto yy265; - goto yy264; + if (yych <= 'Z') goto yy256; + if (yych == '_') goto yy256; + goto yy255; } } else { if (yych <= '{') { - if (yych == 's') goto yy290; - if (yych <= 'z') goto yy265; - goto yy264; + if (yych == 's') goto yy281; + if (yych <= 'z') goto yy256; + goto yy255; } else { - if (yych == '}') goto yy264; - if (yych <= '~') goto yy257; - goto yy264; + if (yych == '}') goto yy255; + if (yych <= '~') goto yy248; + goto yy255; } } } -yy290: - YYDEBUG(290, *YYCURSOR); +yy281: + YYDEBUG(281, *YYCURSOR); yyaccept = 4; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '=') { if (yych <= '"') { if (yych <= '\n') { - if (yych <= 0x00) goto yy257; - if (yych <= 0x08) goto yy264; - goto yy257; + if (yych <= 0x00) goto yy248; + if (yych <= 0x08) goto yy255; + goto yy248; } else { - if (yych == '\r') goto yy257; - if (yych <= 0x1F) goto yy264; - goto yy257; + if (yych == '\r') goto yy248; + if (yych <= 0x1F) goto yy255; + goto yy248; } } else { if (yych <= '9') { - if (yych <= '%') goto yy264; - if (yych <= ')') goto yy257; - if (yych <= '/') goto yy264; - goto yy265; + if (yych <= '%') goto yy255; + if (yych <= ')') goto yy248; + if (yych <= '/') goto yy255; + goto yy256; } else { - if (yych == ';') goto yy257; - if (yych <= '<') goto yy264; - goto yy257; + if (yych == ';') goto yy248; + if (yych <= '<') goto yy255; + goto yy248; } } } else { if (yych <= '`') { if (yych <= 'E') { - if (yych <= '@') goto yy264; - if (yych <= 'D') goto yy265; - goto yy280; + if (yych <= '@') goto yy255; + if (yych <= 'D') goto yy256; + goto yy271; } else { - if (yych <= 'Z') goto yy265; - if (yych == '_') goto yy265; - goto yy264; + if (yych <= 'Z') goto yy256; + if (yych == '_') goto yy256; + goto yy255; } } else { if (yych <= '{') { - if (yych == 'e') goto yy280; - if (yych <= 'z') goto yy265; - goto yy264; + if (yych == 'e') goto yy271; + if (yych <= 'z') goto yy256; + goto yy255; } else { - if (yych == '}') goto yy264; - if (yych <= '~') goto yy257; - goto yy264; + if (yych == '}') goto yy255; + if (yych <= '~') goto yy248; + goto yy255; } } } -yy291: - YYDEBUG(291, *YYCURSOR); +yy282: + YYDEBUG(282, *YYCURSOR); ++YYCURSOR; YYFILL(2); yych = *YYCURSOR; -yy292: - YYDEBUG(292, *YYCURSOR); +yy283: + YYDEBUG(283, *YYCURSOR); if (yybm[0+yych] & 32) { - goto yy291; + goto yy282; } - if (yych >= '\r') goto yy295; -yy293: - YYDEBUG(293, *YYCURSOR); + if (yych >= '\r') goto yy286; +yy284: + YYDEBUG(284, *YYCURSOR); ++YYCURSOR; -yy294: - YYDEBUG(294, *YYCURSOR); +yy285: + YYDEBUG(285, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 477 "Zend/zend_ini_scanner.l" +#line 484 "Zend/zend_ini_scanner.l" { /* Comment */ BEGIN(INITIAL); SCNG(lineno)++; return END_OF_LINE; } -#line 4076 "Zend/zend_ini_scanner.c" -yy295: - YYDEBUG(295, *YYCURSOR); +#line 4014 "Zend/zend_ini_scanner.c" +yy286: + YYDEBUG(286, *YYCURSOR); yych = *++YYCURSOR; - if (yych == '\n') goto yy293; - goto yy294; -yy296: - YYDEBUG(296, *YYCURSOR); + if (yych == '\n') goto yy284; + goto yy285; +yy287: + YYDEBUG(287, *YYCURSOR); yyaccept = 3; YYMARKER = ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - YYDEBUG(297, *YYCURSOR); + YYDEBUG(288, *YYCURSOR); if (yybm[0+yych] & 64) { - goto yy296; + goto yy287; } if (yych <= '%') { if (yych <= '\r') { if (yych <= 0x08) { - if (yych <= 0x00) goto yy252; - goto yy263; + if (yych <= 0x00) goto yy243; + goto yy254; } else { - if (yych <= '\n') goto yy252; - if (yych <= '\f') goto yy263; - goto yy252; + if (yych <= '\n') goto yy243; + if (yych <= '\f') goto yy254; + goto yy243; } } else { if (yych <= '"') { - if (yych <= 0x1F) goto yy263; - goto yy252; + if (yych <= 0x1F) goto yy254; + goto yy243; } else { - if (yych == '$') goto yy268; - goto yy263; + if (yych == '$') goto yy259; + goto yy254; } } } else { if (yych <= '=') { if (yych <= ':') { - if (yych <= ')') goto yy252; - goto yy263; + if (yych <= ')') goto yy243; + goto yy254; } else { - if (yych == '<') goto yy263; - goto yy252; + if (yych == '<') goto yy254; + goto yy243; } } else { if (yych <= '|') { - if (yych <= '{') goto yy263; - goto yy252; + if (yych <= '{') goto yy254; + goto yy243; } else { - if (yych == '~') goto yy252; - goto yy263; + if (yych == '~') goto yy243; + goto yy254; } } } -yy298: - YYDEBUG(298, *YYCURSOR); +yy289: + YYDEBUG(289, *YYCURSOR); yyaccept = 3; YYMARKER = ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - YYDEBUG(299, *YYCURSOR); + YYDEBUG(290, *YYCURSOR); if (yych <= '-') { if (yych <= 0x1F) { if (yych <= '\n') { - if (yych <= 0x00) goto yy252; - if (yych <= 0x08) goto yy263; - goto yy252; + if (yych <= 0x00) goto yy243; + if (yych <= 0x08) goto yy254; + goto yy243; } else { - if (yych == '\r') goto yy252; - goto yy263; + if (yych == '\r') goto yy243; + goto yy254; } } else { if (yych <= '$') { - if (yych <= '"') goto yy252; - if (yych <= '#') goto yy263; - goto yy268; + if (yych <= '"') goto yy243; + if (yych <= '#') goto yy254; + goto yy259; } else { - if (yych <= '%') goto yy263; - if (yych <= ')') goto yy252; - goto yy263; + if (yych <= '%') goto yy254; + if (yych <= ')') goto yy243; + goto yy254; } } } else { if (yych <= '<') { if (yych <= '9') { - if (yych <= '.') goto yy296; - if (yych <= '/') goto yy263; - goto yy298; + if (yych <= '.') goto yy287; + if (yych <= '/') goto yy254; + goto yy289; } else { - if (yych == ';') goto yy252; - goto yy263; + if (yych == ';') goto yy243; + goto yy254; } } else { if (yych <= '|') { - if (yych <= '=') goto yy252; - if (yych <= '{') goto yy263; - goto yy252; + if (yych <= '=') goto yy243; + if (yych <= '{') goto yy254; + goto yy243; } else { - if (yych == '~') goto yy252; - goto yy263; + if (yych == '~') goto yy243; + goto yy254; } } } -yy300: - YYDEBUG(300, *YYCURSOR); +yy291: + YYDEBUG(291, *YYCURSOR); yyaccept = 3; YYMARKER = ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - YYDEBUG(301, *YYCURSOR); + YYDEBUG(292, *YYCURSOR); if (yych <= ')') { if (yych <= '\r') { if (yych <= 0x08) { - if (yych <= 0x00) goto yy252; - goto yy263; + if (yych <= 0x00) goto yy243; + goto yy254; } else { - if (yych <= '\n') goto yy252; - if (yych <= '\f') goto yy263; - goto yy252; + if (yych <= '\n') goto yy243; + if (yych <= '\f') goto yy254; + goto yy243; } } else { if (yych <= '#') { - if (yych <= 0x1F) goto yy263; - if (yych <= '"') goto yy252; - goto yy263; + if (yych <= 0x1F) goto yy254; + if (yych <= '"') goto yy243; + goto yy254; } else { - if (yych <= '$') goto yy268; - if (yych <= '%') goto yy263; - goto yy252; + if (yych <= '$') goto yy259; + if (yych <= '%') goto yy254; + goto yy243; } } } else { if (yych <= '<') { if (yych <= '9') { - if (yych <= '/') goto yy263; - goto yy300; + if (yych <= '/') goto yy254; + goto yy291; } else { - if (yych == ';') goto yy252; - goto yy263; + if (yych == ';') goto yy243; + goto yy254; } } else { if (yych <= '|') { - if (yych <= '=') goto yy252; - if (yych <= '{') goto yy263; - goto yy252; + if (yych <= '=') goto yy243; + if (yych <= '{') goto yy254; + goto yy243; } else { - if (yych == '~') goto yy252; - goto yy263; + if (yych == '~') goto yy243; + goto yy254; } } } -yy302: - YYDEBUG(302, *YYCURSOR); +yy293: + YYDEBUG(293, *YYCURSOR); yyaccept = 3; YYMARKER = ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - YYDEBUG(303, *YYCURSOR); + YYDEBUG(294, *YYCURSOR); if (yych <= ')') { if (yych <= '\r') { if (yych <= 0x08) { - if (yych <= 0x00) goto yy252; - goto yy263; + if (yych <= 0x00) goto yy243; + goto yy254; } else { - if (yych <= '\n') goto yy252; - if (yych <= '\f') goto yy263; - goto yy252; + if (yych <= '\n') goto yy243; + if (yych <= '\f') goto yy254; + goto yy243; } } else { if (yych <= '#') { - if (yych <= 0x1F) goto yy263; - if (yych <= '"') goto yy252; - goto yy263; + if (yych <= 0x1F) goto yy254; + if (yych <= '"') goto yy243; + goto yy254; } else { - if (yych <= '$') goto yy268; - if (yych <= '%') goto yy263; - goto yy252; + if (yych <= '$') goto yy259; + if (yych <= '%') goto yy254; + goto yy243; } } } else { if (yych <= '<') { if (yych <= '9') { - if (yych <= '/') goto yy263; - goto yy302; + if (yych <= '/') goto yy254; + goto yy293; } else { - if (yych == ';') goto yy252; - goto yy263; + if (yych == ';') goto yy243; + goto yy254; } } else { if (yych <= '|') { - if (yych <= '=') goto yy252; - if (yych <= '{') goto yy263; - goto yy252; + if (yych <= '=') goto yy243; + if (yych <= '{') goto yy254; + goto yy243; } else { - if (yych == '~') goto yy252; - goto yy263; + if (yych == '~') goto yy243; + goto yy254; } } } -yy304: - YYDEBUG(304, *YYCURSOR); +yy295: + YYDEBUG(295, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - YYDEBUG(305, *YYCURSOR); + YYDEBUG(296, *YYCURSOR); if (yybm[0+yych] & 128) { - goto yy304; + goto yy295; } - YYDEBUG(306, *YYCURSOR); + YYDEBUG(297, *YYCURSOR); ++YYCURSOR; - YYDEBUG(307, *YYCURSOR); + YYDEBUG(298, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 330 "Zend/zend_ini_scanner.l" +#line 341 "Zend/zend_ini_scanner.l" { /* Raw string */ /* Eat leading and trailing single quotes */ if (yytext[0] == '\'' && yytext[yyleng - 1] == '\'') { @@ -4293,66 +4231,66 @@ yy304: } RETURN_TOKEN(TC_RAW, yytext, yyleng); } -#line 4297 "Zend/zend_ini_scanner.c" -yy308: - YYDEBUG(308, *YYCURSOR); +#line 4235 "Zend/zend_ini_scanner.c" +yy299: + YYDEBUG(299, *YYCURSOR); ++YYCURSOR; - YYDEBUG(309, *YYCURSOR); + YYDEBUG(300, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 360 "Zend/zend_ini_scanner.l" +#line 371 "Zend/zend_ini_scanner.l" { /* Variable start */ yy_push_state(ST_VARNAME TSRMLS_CC); return TC_DOLLAR_CURLY; } -#line 4308 "Zend/zend_ini_scanner.c" -yy310: - YYDEBUG(310, *YYCURSOR); +#line 4246 "Zend/zend_ini_scanner.c" +yy301: + YYDEBUG(301, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; -yy311: - YYDEBUG(311, *YYCURSOR); - if (yych == '\t') goto yy310; - if (yych == ' ') goto yy310; - goto yy244; -yy312: - YYDEBUG(312, *YYCURSOR); +yy302: + YYDEBUG(302, *YYCURSOR); + if (yych == '\t') goto yy301; + if (yych == ' ') goto yy301; + goto yy235; +yy303: + YYDEBUG(303, *YYCURSOR); yych = *++YYCURSOR; - goto yy241; -yy313: - YYDEBUG(313, *YYCURSOR); + goto yy232; +yy304: + YYDEBUG(304, *YYCURSOR); yyaccept = 1; YYMARKER = ++YYCURSOR; YYFILL(2); yych = *YYCURSOR; -yy314: - YYDEBUG(314, *YYCURSOR); +yy305: + YYDEBUG(305, *YYCURSOR); if (yych <= 0x1F) { if (yych <= '\n') { - if (yych <= 0x08) goto yy239; - if (yych <= '\t') goto yy313; - goto yy312; + if (yych <= 0x08) goto yy230; + if (yych <= '\t') goto yy304; + goto yy303; } else { - if (yych == '\r') goto yy316; - goto yy239; + if (yych == '\r') goto yy307; + goto yy230; } } else { if (yych <= '"') { - if (yych <= ' ') goto yy313; - if (yych <= '!') goto yy239; + if (yych <= ' ') goto yy304; + if (yych <= '!') goto yy230; } else { - if (yych == ';') goto yy291; - goto yy239; + if (yych == ';') goto yy282; + goto yy230; } } - YYDEBUG(315, *YYCURSOR); + YYDEBUG(306, *YYCURSOR); yych = *++YYCURSOR; - goto yy246; -yy316: - YYDEBUG(316, *YYCURSOR); + goto yy237; +yy307: + YYDEBUG(307, *YYCURSOR); ++YYCURSOR; - if ((yych = *YYCURSOR) == '\n') goto yy312; - goto yy241; + if ((yych = *YYCURSOR) == '\n') goto yy303; + goto yy232; } /* *********************************** */ yyc_ST_VARNAME: @@ -4391,68 +4329,68 @@ yyc_ST_VARNAME: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }; - YYDEBUG(317, *YYCURSOR); + YYDEBUG(308, *YYCURSOR); YYFILL(2); yych = *YYCURSOR; if (yych <= '^') { if (yych <= '9') { - if (yych >= '0') goto yy321; + if (yych >= '0') goto yy312; } else { - if (yych <= '@') goto yy319; - if (yych <= 'Z') goto yy321; + if (yych <= '@') goto yy310; + if (yych <= 'Z') goto yy312; } } else { if (yych <= 'z') { - if (yych != '`') goto yy321; + if (yych != '`') goto yy312; } else { - if (yych == '}') goto yy323; + if (yych == '}') goto yy314; } } -yy319: - YYDEBUG(319, *YYCURSOR); +yy310: + YYDEBUG(310, *YYCURSOR); ++YYCURSOR; - YYDEBUG(320, *YYCURSOR); + YYDEBUG(311, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); #line 495 "Zend/zend_ini_scanner.l" { return 0; } -#line 4421 "Zend/zend_ini_scanner.c" -yy321: - YYDEBUG(321, *YYCURSOR); +#line 4359 "Zend/zend_ini_scanner.c" +yy312: + YYDEBUG(312, *YYCURSOR); ++YYCURSOR; yych = *YYCURSOR; - goto yy326; -yy322: - YYDEBUG(322, *YYCURSOR); + goto yy317; +yy313: + YYDEBUG(313, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 365 "Zend/zend_ini_scanner.l" +#line 376 "Zend/zend_ini_scanner.l" { /* Variable name */ RETURN_TOKEN(TC_VARNAME, yytext, yyleng); } -#line 4434 "Zend/zend_ini_scanner.c" -yy323: - YYDEBUG(323, *YYCURSOR); +#line 4372 "Zend/zend_ini_scanner.c" +yy314: + YYDEBUG(314, *YYCURSOR); ++YYCURSOR; - YYDEBUG(324, *YYCURSOR); + YYDEBUG(315, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 369 "Zend/zend_ini_scanner.l" +#line 380 "Zend/zend_ini_scanner.l" { /* Variable end */ yy_pop_state(TSRMLS_C); return '}'; } -#line 4445 "Zend/zend_ini_scanner.c" -yy325: - YYDEBUG(325, *YYCURSOR); +#line 4383 "Zend/zend_ini_scanner.c" +yy316: + YYDEBUG(316, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; -yy326: - YYDEBUG(326, *YYCURSOR); +yy317: + YYDEBUG(317, *YYCURSOR); if (yybm[0+yych] & 128) { - goto yy325; + goto yy316; } - goto yy322; + goto yy313; } } #line 499 "Zend/zend_ini_scanner.l" diff --git a/Zend/zend_ini_scanner.l b/Zend/zend_ini_scanner.l index 4782383030..742bbe2b24 100644 --- a/Zend/zend_ini_scanner.l +++ b/Zend/zend_ini_scanner.l @@ -188,7 +188,7 @@ int zend_ini_scanner_get_lineno(TSRMLS_D) */ char *zend_ini_scanner_get_filename(TSRMLS_D) { - return ini_filename ? ini_filename : "Unknown"; + return ini_filename; } /* }}} */ @@ -244,10 +244,21 @@ static void zend_ini_escape_string(zval *lval, char *str, int len, char quote_ty if (*s == '\\') { s++; if (s >= end) { - *t++ = '\\'; continue; } switch (*s) { + case 'n': + *t++ = '\n'; + Z_STRLEN_P(lval)--; + break; + case 'r': + *t++ = '\r'; + Z_STRLEN_P(lval)--; + break; + case 't': + *t++ = '\t'; + Z_STRLEN_P(lval)--; + break; case '"': if (*s != quote_type) { *t++ = '\\'; @@ -313,7 +324,7 @@ RAW_VALUE_CHARS [^=\n\r;] LITERAL_DOLLAR ("$"([^{\000]|("\\"{ANY_CHAR}))) VALUE_CHARS ([^$= \t\n\r;&|~()!"'\000]|{LITERAL_DOLLAR}) SECTION_VALUE_CHARS ([^$\n\r;"'\]\\]|("\\"{ANY_CHAR})|{LITERAL_DOLLAR}) -DOUBLE_QUOTES_CHARS ([^$"\\]|("\\"[^"])|{LITERAL_DOLLAR}|"\\"["][^\r\n]) +DOUBLE_QUOTES_CHARS ([^$"\\]|("\\"{ANY_CHAR})|{LITERAL_DOLLAR}) <!*> := yyleng = YYCURSOR - SCNG(yy_text); @@ -446,11 +457,7 @@ DOUBLE_QUOTES_CHARS ([^$"\\]|("\\"[^"])|{LITERAL_DOLLAR}|"\\"["][^\r\n]) return '"'; } -<ST_DOUBLE_QUOTES>{DOUBLE_QUOTES_CHARS}+("\\"["])? { /* Escape double quoted string contents */ - if(yyleng > 1 && yytext[yyleng-1] == '"' && yytext[yyleng-2] == '\\') { - yyless(yyleng-1); - yyleng--; - } +<ST_DOUBLE_QUOTES>{DOUBLE_QUOTES_CHARS}+ { /* Escape double quoted string contents */ zend_ini_escape_string(ini_lval, yytext, yyleng, '"' TSRMLS_CC); return TC_QUOTED_STRING; } @@ -480,13 +487,6 @@ DOUBLE_QUOTES_CHARS ([^$"\\]|("\\"[^"])|{LITERAL_DOLLAR}|"\\"["][^\r\n]) return END_OF_LINE; } -<INITIAL>{TABS_AND_SPACES}*[#][^\r\n]*{NEWLINE} { /* #Comment */ - zend_error(E_DEPRECATED, "Comments starting with '#' are deprecated in %s on line %d", zend_ini_scanner_get_filename(TSRMLS_C), SCNG(lineno)); - BEGIN(INITIAL); - SCNG(lineno)++; - return END_OF_LINE; -} - <ST_VALUE,ST_RAW>[^] { /* End of option value (if EOF is reached before EOL */ BEGIN(INITIAL); return END_OF_LINE; diff --git a/Zend/zend_ini_scanner_defs.h b/Zend/zend_ini_scanner_defs.h index 97d3a07b44..9b77800970 100644 --- a/Zend/zend_ini_scanner_defs.h +++ b/Zend/zend_ini_scanner_defs.h @@ -1,4 +1,4 @@ -/* Generated by re2c 0.13.5 on Wed Nov 5 22:35:51 2008 */ +/* Generated by re2c 0.13.5 on Sun Aug 17 23:55:27 2008 */ #line 3 "Zend/zend_ini_scanner_defs.h" enum YYCONDTYPE { diff --git a/Zend/zend_interfaces.c b/Zend/zend_interfaces.c index b4edac5aee..a1e82a1978 100755 --- a/Zend/zend_interfaces.c +++ b/Zend/zend_interfaces.c @@ -46,7 +46,7 @@ ZEND_API zval* zend_call_method(zval **object_pp, zend_class_entry *obj_ce, zend fci.size = sizeof(fci); /*fci.function_table = NULL; will be read form zend_class_entry of object if needed */ - fci.object_ptr = object_pp ? *object_pp : NULL; + fci.object_pp = object_pp; fci.function_name = &z_fname; fci.retval_ptr_ptr = retval_ptr_ptr ? retval_ptr_ptr : &retval; fci.param_count = param_count; @@ -85,7 +85,7 @@ ZEND_API zval* zend_call_method(zval **object_pp, zend_class_entry *obj_ce, zend } fcic.calling_scope = obj_ce; fcic.called_scope = object_pp ? obj_ce : EG(called_scope); - fcic.object_ptr = object_pp ? *object_pp : NULL; + fcic.object_pp = object_pp; result = zend_call_function(&fci, &fcic TSRMLS_CC); } if (result == FAILURE) { @@ -498,14 +498,17 @@ const zend_function_entry zend_funcs_iterator[] = { const zend_function_entry *zend_funcs_traversable = NULL; +static ZEND_BEGIN_ARG_INFO_EX(arginfo_arrayaccess_offset, 0, 0, 1) ZEND_ARG_INFO(0, offset) ZEND_END_ARG_INFO() +static ZEND_BEGIN_ARG_INFO_EX(arginfo_arrayaccess_offset_get, 0, 0, 1) /* actually this should be return by ref but atm cannot be */ ZEND_ARG_INFO(0, offset) ZEND_END_ARG_INFO() +static ZEND_BEGIN_ARG_INFO_EX(arginfo_arrayaccess_offset_value, 0, 0, 2) ZEND_ARG_INFO(0, offset) ZEND_ARG_INFO(0, value) @@ -519,6 +522,7 @@ const zend_function_entry zend_funcs_arrayaccess[] = { {NULL, NULL, NULL} }; +static ZEND_BEGIN_ARG_INFO(arginfo_serializable_serialize, 0) ZEND_ARG_INFO(0, serialized) ZEND_END_ARG_INFO() diff --git a/Zend/zend_language_parser.y b/Zend/zend_language_parser.y index 7feb689087..57844cede4 100644 --- a/Zend/zend_language_parser.y +++ b/Zend/zend_language_parser.y @@ -147,7 +147,6 @@ %token T_NAMESPACE %token T_NS_C %token T_DIR -%token T_NS_SEPARATOR %% /* Rules */ @@ -162,21 +161,17 @@ top_statement_list: namespace_name: T_STRING { $$ = $1; } - | namespace_name T_NS_SEPARATOR T_STRING { zend_do_build_namespace_name(&$$, &$1, &$3 TSRMLS_CC); } + | namespace_name T_PAAMAYIM_NEKUDOTAYIM T_STRING { zend_do_build_namespace_name(&$$, &$1, &$3 TSRMLS_CC); } ; top_statement: - 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); } + statement + | function_declaration_statement { zend_do_early_binding(TSRMLS_C); } + | class_declaration_statement { zend_do_early_binding(TSRMLS_C); } | T_HALT_COMPILER '(' ')' ';' { zend_do_halt_compiler_register(TSRMLS_C); YYACCEPT; } - | 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); } + | T_NAMESPACE namespace_name ';' { zend_do_namespace(&$2 TSRMLS_CC); } + | T_USE use_declarations ';' + | constant_declaration ';' ; use_declarations: @@ -187,8 +182,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_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); } + | 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); } ; constant_declaration: @@ -670,15 +665,12 @@ lexical_var_list: ; function_call: - namespace_name '(' { $2.u.opline_num = zend_do_begin_function_call(&$1, 1 TSRMLS_CC); } + T_STRING '(' { $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_NAMESPACE T_NS_SEPARATOR namespace_name '(' { $1.op_type = IS_CONST; ZVAL_EMPTY_STRING(&$1.u.constant); zend_do_build_namespace_name(&$1, &$1, &$3 TSRMLS_CC); $4.u.opline_num = zend_do_begin_function_call(&$1, 0 TSRMLS_CC); } - function_call_parameter_list - ')' { zend_do_end_function_call(&$1, &$$, &$6, 0, $4.u.opline_num TSRMLS_CC); zend_do_extended_fcall_end(TSRMLS_C); } - | T_NS_SEPARATOR namespace_name '(' { $3.u.opline_num = zend_do_begin_function_call(&$2, 0 TSRMLS_CC); } - function_call_parameter_list - ')' { zend_do_end_function_call(&$2, &$$, &$5, 0, $3.u.opline_num TSRMLS_CC); zend_do_extended_fcall_end(TSRMLS_C); } + | 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);} | 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);} @@ -697,16 +689,18 @@ function_call: ; class_name: - T_STATIC { $$.op_type = IS_CONST; ZVAL_STRINGL(&$$.u.constant, "static", sizeof("static")-1, 1);} - | namespace_name { $$ = $1; } - | T_NAMESPACE T_NS_SEPARATOR namespace_name { $$.op_type = IS_CONST; ZVAL_EMPTY_STRING(&$$.u.constant); zend_do_build_namespace_name(&$$, &$$, &$3 TSRMLS_CC); } - | T_NS_SEPARATOR namespace_name { char *tmp = estrndup(Z_STRVAL($2.u.constant), Z_STRLEN($2.u.constant)+1); memcpy(&(tmp[1]), Z_STRVAL($2.u.constant), Z_STRLEN($2.u.constant)+1); tmp[0] = '\\'; efree(Z_STRVAL($2.u.constant)); Z_STRVAL($2.u.constant) = tmp; ++Z_STRLEN($2.u.constant); $$ = $2; } + T_STRING { $$ = $1; } + | T_STATIC { $$.op_type = IS_CONST; ZVAL_STRINGL(&$$.u.constant, "static", sizeof("static")-1, 1);} + | T_NAMESPACE { $$.op_type = IS_CONST; ZVAL_EMPTY_STRING(&$$.u.constant); } + | T_PAAMAYIM_NEKUDOTAYIM T_STRING { zend_do_build_namespace_name(&$$, NULL, &$2 TSRMLS_CC); } + | class_name T_PAAMAYIM_NEKUDOTAYIM T_STRING { zend_do_build_namespace_name(&$$, &$1, &$3 TSRMLS_CC); } ; fully_qualified_class_name: - namespace_name { $$ = $1; } - | T_NAMESPACE T_NS_SEPARATOR namespace_name { $$.op_type = IS_CONST; ZVAL_EMPTY_STRING(&$$.u.constant); zend_do_build_namespace_name(&$$, &$$, &$3 TSRMLS_CC); } - | T_NS_SEPARATOR namespace_name { char *tmp = estrndup(Z_STRVAL($2.u.constant), Z_STRLEN($2.u.constant)+1); memcpy(&(tmp[1]), Z_STRVAL($2.u.constant), Z_STRLEN($2.u.constant)+1); tmp[0] = '\\'; efree(Z_STRVAL($2.u.constant)); Z_STRVAL($2.u.constant) = tmp; ++Z_STRLEN($2.u.constant); $$ = $2; } + T_STRING { $$ = $1; } + | T_NAMESPACE { $$.op_type = IS_CONST; ZVAL_EMPTY_STRING(&$$.u.constant); } + | T_PAAMAYIM_NEKUDOTAYIM T_STRING { zend_do_build_namespace_name(&$$, NULL, &$2 TSRMLS_CC); } + | fully_qualified_class_name T_PAAMAYIM_NEKUDOTAYIM T_STRING { zend_do_build_namespace_name(&$$, &$1, &$3 TSRMLS_CC); } ; @@ -772,9 +766,8 @@ common_scalar: static_scalar: /* compile-time evaluated scalars */ common_scalar { $$ = $1; } - | namespace_name { zend_do_fetch_constant(&$$, NULL, &$1, ZEND_CT, 1 TSRMLS_CC); } - | T_NAMESPACE T_NS_SEPARATOR namespace_name { $$.op_type = IS_CONST; ZVAL_EMPTY_STRING(&$$.u.constant); zend_do_build_namespace_name(&$$, &$$, &$3 TSRMLS_CC); $3 = $$; zend_do_fetch_constant(&$$, NULL, &$3, ZEND_CT, 0 TSRMLS_CC); } - | T_NS_SEPARATOR namespace_name { char *tmp = estrndup(Z_STRVAL($2.u.constant), Z_STRLEN($2.u.constant)+1); memcpy(&(tmp[1]), Z_STRVAL($2.u.constant), Z_STRLEN($2.u.constant)+1); tmp[0] = '\\'; efree(Z_STRVAL($2.u.constant)); Z_STRVAL($2.u.constant) = tmp; ++Z_STRLEN($2.u.constant); zend_do_fetch_constant(&$$, NULL, &$2, ZEND_CT, 0 TSRMLS_CC); } + | 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); } | '+' 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; } @@ -786,11 +779,10 @@ static_class_constant: ; scalar: - T_STRING_VARNAME { $$ = $1; } - | class_constant { $$ = $1; } - | namespace_name { zend_do_fetch_constant(&$$, NULL, &$1, ZEND_RT, 1 TSRMLS_CC); } - | T_NAMESPACE T_NS_SEPARATOR namespace_name { $$.op_type = IS_CONST; ZVAL_EMPTY_STRING(&$$.u.constant); zend_do_build_namespace_name(&$$, &$$, &$3 TSRMLS_CC); $3 = $$; zend_do_fetch_constant(&$$, NULL, &$3, ZEND_RT, 0 TSRMLS_CC); } - | T_NS_SEPARATOR namespace_name { char *tmp = estrndup(Z_STRVAL($2.u.constant), Z_STRLEN($2.u.constant)+1); memcpy(&(tmp[1]), Z_STRVAL($2.u.constant), Z_STRLEN($2.u.constant)+1); tmp[0] = '\\'; efree(Z_STRVAL($2.u.constant)); Z_STRVAL($2.u.constant) = tmp; ++Z_STRLEN($2.u.constant); zend_do_fetch_constant(&$$, NULL, &$2, ZEND_RT, 0 TSRMLS_CC); } + 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; } | common_scalar { $$ = $1; } | '"' encaps_list '"' { $$ = $2; } | T_START_HEREDOC encaps_list T_END_HEREDOC { $$ = $2; } diff --git a/Zend/zend_language_scanner.c b/Zend/zend_language_scanner.c index 05a698a321..15be32fae0 100644 --- a/Zend/zend_language_scanner.c +++ b/Zend/zend_language_scanner.c @@ -1,4 +1,4 @@ -/* Generated by re2c 0.13.6.dev on Tue Nov 4 01:40:34 2008 */ +/* Generated by re2c 0.13.5 on Fri Aug 15 14:25:23 2008 */ #line 1 "Zend/zend_language_scanner.l" /* +----------------------------------------------------------------------+ @@ -978,7 +978,7 @@ yyc_INITIAL: yy3: YYDEBUG(3, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1641 "Zend/zend_language_scanner.l" +#line 1637 "Zend/zend_language_scanner.l" { inline_char_handler: @@ -1042,7 +1042,7 @@ yy5: yy6: YYDEBUG(6, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1629 "Zend/zend_language_scanner.l" +#line 1625 "Zend/zend_language_scanner.l" { if (CG(short_tags)) { zendlval->value.str.val = yytext; /* no copying - intentional */ @@ -1061,7 +1061,7 @@ yy7: if ((yych = *YYCURSOR) == '=') goto yy43; YYDEBUG(8, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1606 "Zend/zend_language_scanner.l" +#line 1602 "Zend/zend_language_scanner.l" { if (CG(asp_tags)) { zendlval->value.str.val = yytext; /* no copying - intentional */ @@ -1259,7 +1259,7 @@ yy35: ++YYCURSOR; YYDEBUG(38, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1570 "Zend/zend_language_scanner.l" +#line 1566 "Zend/zend_language_scanner.l" { HANDLE_NEWLINES(yytext, yyleng); zendlval->value.str.val = yytext; /* no copying - intentional */ @@ -1295,7 +1295,7 @@ yy43: ++YYCURSOR; YYDEBUG(44, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1580 "Zend/zend_language_scanner.l" +#line 1576 "Zend/zend_language_scanner.l" { if (CG(asp_tags)) { zendlval->value.str.val = yytext; /* no copying - intentional */ @@ -1313,7 +1313,7 @@ yy45: ++YYCURSOR; YYDEBUG(46, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1593 "Zend/zend_language_scanner.l" +#line 1589 "Zend/zend_language_scanner.l" { if (CG(short_tags)) { zendlval->value.str.val = yytext; /* no copying - intentional */ @@ -1352,7 +1352,7 @@ yy50: yy51: YYDEBUG(51, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1619 "Zend/zend_language_scanner.l" +#line 1615 "Zend/zend_language_scanner.l" { zendlval->value.str.val = yytext; /* no copying - intentional */ zendlval->value.str.len = yyleng; @@ -1452,7 +1452,7 @@ yy56: yy57: YYDEBUG(57, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2021 "Zend/zend_language_scanner.l" +#line 2017 "Zend/zend_language_scanner.l" { zendlval->value.lval = (long) '{'; yy_push_state(ST_IN_SCRIPTING TSRMLS_CC); @@ -1476,7 +1476,7 @@ yy59: yy60: YYDEBUG(60, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2046 "Zend/zend_language_scanner.l" +#line 2042 "Zend/zend_language_scanner.l" { zend_scan_escape_string(zendlval, yytext, yyleng, '`' TSRMLS_CC); return T_ENCAPSED_AND_WHITESPACE; @@ -1493,7 +1493,7 @@ yy62: ++YYCURSOR; YYDEBUG(63, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2124 "Zend/zend_language_scanner.l" +#line 2120 "Zend/zend_language_scanner.l" { BEGIN(ST_IN_SCRIPTING); return '`'; @@ -1586,7 +1586,7 @@ yy68: yy70: YYDEBUG(70, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2051 "Zend/zend_language_scanner.l" +#line 2047 "Zend/zend_language_scanner.l" { yyless(yyleng - 1); zend_scan_escape_string(zendlval, yytext, yyleng, '`' TSRMLS_CC); @@ -1626,7 +1626,7 @@ yy74: yy76: YYDEBUG(76, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1709 "Zend/zend_language_scanner.l" +#line 1705 "Zend/zend_language_scanner.l" { zend_copy_value(zendlval, (yytext+1), (yyleng-1)); zendlval->type = IS_STRING; @@ -1638,7 +1638,7 @@ yy77: ++YYCURSOR; YYDEBUG(78, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1363 "Zend/zend_language_scanner.l" +#line 1359 "Zend/zend_language_scanner.l" { yy_push_state(ST_LOOKING_FOR_VARNAME TSRMLS_CC); return T_DOLLAR_OPEN_CURLY_BRACES; @@ -1654,7 +1654,7 @@ yy80: ++YYCURSOR; YYDEBUG(81, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1701 "Zend/zend_language_scanner.l" +#line 1697 "Zend/zend_language_scanner.l" { yyless(yyleng - 1); yy_push_state(ST_VAR_OFFSET TSRMLS_CC); @@ -1680,7 +1680,7 @@ yy83: ++YYCURSOR; YYDEBUG(84, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1691 "Zend/zend_language_scanner.l" +#line 1687 "Zend/zend_language_scanner.l" { yyless(yyleng - 3); yy_push_state(ST_LOOKING_FOR_PROPERTY TSRMLS_CC); @@ -1745,7 +1745,7 @@ yy87: } YYDEBUG(89, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1801 "Zend/zend_language_scanner.l" +#line 1797 "Zend/zend_language_scanner.l" { yymore(); } @@ -1756,7 +1756,7 @@ yy90: if ((yych = *YYCURSOR) == '/') goto yy92; YYDEBUG(91, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1819 "Zend/zend_language_scanner.l" +#line 1815 "Zend/zend_language_scanner.l" { yymore(); } @@ -1766,7 +1766,7 @@ yy92: ++YYCURSOR; YYDEBUG(93, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1813 "Zend/zend_language_scanner.l" +#line 1809 "Zend/zend_language_scanner.l" { HANDLE_NEWLINES(yytext, yyleng); BEGIN(ST_IN_SCRIPTING); @@ -1829,7 +1829,7 @@ yy96: } YYDEBUG(98, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1801 "Zend/zend_language_scanner.l" +#line 1797 "Zend/zend_language_scanner.l" { yymore(); } @@ -1840,7 +1840,7 @@ yy99: if ((yych = *YYCURSOR) == '/') goto yy101; YYDEBUG(100, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1819 "Zend/zend_language_scanner.l" +#line 1815 "Zend/zend_language_scanner.l" { yymore(); } @@ -1850,7 +1850,7 @@ yy101: ++YYCURSOR; YYDEBUG(102, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1805 "Zend/zend_language_scanner.l" +#line 1801 "Zend/zend_language_scanner.l" { CG(doc_comment) = estrndup(yytext, yyleng); CG(doc_comment_len) = yyleng; @@ -1945,7 +1945,7 @@ yy106: yy107: YYDEBUG(107, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2021 "Zend/zend_language_scanner.l" +#line 2017 "Zend/zend_language_scanner.l" { zendlval->value.lval = (long) '{'; yy_push_state(ST_IN_SCRIPTING TSRMLS_CC); @@ -1970,7 +1970,7 @@ yy109: yy110: YYDEBUG(110, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2028 "Zend/zend_language_scanner.l" +#line 2024 "Zend/zend_language_scanner.l" { zend_scan_escape_string(zendlval, yytext, yyleng, '"' TSRMLS_CC); return T_ENCAPSED_AND_WHITESPACE; @@ -1987,7 +1987,7 @@ yy112: ++YYCURSOR; YYDEBUG(113, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2118 "Zend/zend_language_scanner.l" +#line 2114 "Zend/zend_language_scanner.l" { BEGIN(ST_IN_SCRIPTING); return '"'; @@ -2083,7 +2083,7 @@ yy118: yy120: YYDEBUG(120, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2039 "Zend/zend_language_scanner.l" +#line 2035 "Zend/zend_language_scanner.l" { yyless(yyleng - 1); zend_scan_escape_string(zendlval, yytext, yyleng, '"' TSRMLS_CC); @@ -2123,7 +2123,7 @@ yy124: yy126: YYDEBUG(126, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1709 "Zend/zend_language_scanner.l" +#line 1705 "Zend/zend_language_scanner.l" { zend_copy_value(zendlval, (yytext+1), (yyleng-1)); zendlval->type = IS_STRING; @@ -2135,7 +2135,7 @@ yy127: ++YYCURSOR; YYDEBUG(128, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1363 "Zend/zend_language_scanner.l" +#line 1359 "Zend/zend_language_scanner.l" { yy_push_state(ST_LOOKING_FOR_VARNAME TSRMLS_CC); return T_DOLLAR_OPEN_CURLY_BRACES; @@ -2151,7 +2151,7 @@ yy130: ++YYCURSOR; YYDEBUG(131, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1701 "Zend/zend_language_scanner.l" +#line 1697 "Zend/zend_language_scanner.l" { yyless(yyleng - 1); yy_push_state(ST_VAR_OFFSET TSRMLS_CC); @@ -2177,7 +2177,7 @@ yy133: ++YYCURSOR; YYDEBUG(134, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1691 "Zend/zend_language_scanner.l" +#line 1687 "Zend/zend_language_scanner.l" { yyless(yyleng - 3); yy_push_state(ST_LOOKING_FOR_PROPERTY TSRMLS_CC); @@ -2196,7 +2196,7 @@ yyc_ST_END_HEREDOC: ++YYCURSOR; YYDEBUG(138, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2007 "Zend/zend_language_scanner.l" +#line 2003 "Zend/zend_language_scanner.l" { YYCURSOR += CG(heredoc_len) - 1; yyleng = CG(heredoc_len); @@ -2265,7 +2265,7 @@ yyc_ST_HEREDOC: yy141: YYDEBUG(141, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2065 "Zend/zend_language_scanner.l" +#line 2061 "Zend/zend_language_scanner.l" { zend_scan_escape_string(zendlval, yytext, yyleng, 0 TSRMLS_CC); return T_ENCAPSED_AND_WHITESPACE; @@ -2316,7 +2316,7 @@ yy143: yy144: YYDEBUG(144, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2021 "Zend/zend_language_scanner.l" +#line 2017 "Zend/zend_language_scanner.l" { zendlval->value.lval = (long) '{'; yy_push_state(ST_IN_SCRIPTING TSRMLS_CC); @@ -2573,7 +2573,7 @@ yy161: yy163: YYDEBUG(163, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2070 "Zend/zend_language_scanner.l" +#line 2066 "Zend/zend_language_scanner.l" { yyless(yyleng - 1); zend_scan_escape_string(zendlval, yytext, yyleng, 0 TSRMLS_CC); @@ -2678,7 +2678,7 @@ yy170: ++YYCURSOR; YYDEBUG(171, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1970 "Zend/zend_language_scanner.l" +#line 1966 "Zend/zend_language_scanner.l" { char *end = yytext + yyleng - 1; @@ -2975,7 +2975,7 @@ yy191: yy193: YYDEBUG(193, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1709 "Zend/zend_language_scanner.l" +#line 1705 "Zend/zend_language_scanner.l" { zend_copy_value(zendlval, (yytext+1), (yyleng-1)); zendlval->type = IS_STRING; @@ -2987,7 +2987,7 @@ yy194: ++YYCURSOR; YYDEBUG(195, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1363 "Zend/zend_language_scanner.l" +#line 1359 "Zend/zend_language_scanner.l" { yy_push_state(ST_LOOKING_FOR_VARNAME TSRMLS_CC); return T_DOLLAR_OPEN_CURLY_BRACES; @@ -3003,7 +3003,7 @@ yy197: ++YYCURSOR; YYDEBUG(198, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1701 "Zend/zend_language_scanner.l" +#line 1697 "Zend/zend_language_scanner.l" { yyless(yyleng - 1); yy_push_state(ST_VAR_OFFSET TSRMLS_CC); @@ -3029,7 +3029,7 @@ yy200: ++YYCURSOR; YYDEBUG(201, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1691 "Zend/zend_language_scanner.l" +#line 1687 "Zend/zend_language_scanner.l" { yyless(yyleng - 3); yy_push_state(ST_LOOKING_FOR_PROPERTY TSRMLS_CC); @@ -3143,32 +3143,33 @@ yyc_ST_IN_SCRIPTING: case 0x1C: case 0x1D: case 0x1E: - case 0x1F: goto yy264; + case 0x1F: + case '\\': goto yy262; case '\t': case '\n': case '\r': case ' ': goto yy220; - 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 '!': goto yy231; + case '"': goto yy256; + case '#': goto yy254; + case '$': goto yy243; + case '%': goto yy237; + case '&': goto yy238; + case '\'': goto yy258; + case '(': goto yy225; case ')': case ',': case ';': case '@': case '[': case ']': - case '~': goto yy246; - case '*': goto yy236; - case '+': goto yy232; + case '~': goto yy244; + case '*': goto yy234; + case '+': goto yy230; case '-': goto yy218; - case '.': goto yy238; - case '/': goto yy237; - case '0': goto yy252; + case '.': goto yy236; + case '/': goto yy235; + case '0': goto yy250; case '1': case '2': case '3': @@ -3177,12 +3178,12 @@ yyc_ST_IN_SCRIPTING: case '6': case '7': case '8': - case '9': goto yy254; + case '9': goto yy252; case ':': goto yy222; - case '<': goto yy234; - case '=': goto yy230; - case '>': goto yy235; - case '?': goto yy247; + case '<': goto yy232; + case '=': goto yy228; + case '>': goto yy233; + case '?': goto yy245; case 'A': case 'a': goto yy213; case 'B': @@ -3200,11 +3201,11 @@ yyc_ST_IN_SCRIPTING: case 'I': case 'i': goto yy211; case 'L': - case 'l': goto yy231; + case 'l': goto yy229; case 'N': - case 'n': goto yy225; + case 'n': goto yy223; case 'O': - case 'o': goto yy243; + case 'o': goto yy241; case 'P': case 'p': goto yy217; case 'R': @@ -3214,21 +3215,20 @@ yyc_ST_IN_SCRIPTING: case 'T': case 't': goto yy210; case 'U': - case 'u': goto yy228; + case 'u': goto yy226; case 'V': - case 'v': goto yy226; + case 'v': goto yy224; case 'W': case 'w': goto yy212; case 'X': - 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; + 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; } yy204: YYDEBUG(204, *YYCURSOR); @@ -3236,23 +3236,23 @@ yy204: YYDEBUG(-1, yych); switch ((yych = *YYCURSOR)) { case 'C': - case 'c': goto yy796; + case 'c': goto yy794; case 'L': - case 'l': goto yy797; + case 'l': goto yy795; case 'M': - case 'm': goto yy798; + case 'm': goto yy796; case 'N': - case 'n': goto yy799; + case 'n': goto yy797; case 'V': - case 'v': goto yy800; + case 'v': goto yy798; case 'X': - case 'x': goto yy801; - default: goto yy282; + case 'x': goto yy799; + default: goto yy280; } yy205: YYDEBUG(205, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1733 "Zend/zend_language_scanner.l" +#line 1729 "Zend/zend_language_scanner.l" { zend_copy_value(zendlval, yytext, yyleng); zendlval->type = IS_STRING; @@ -3264,21 +3264,21 @@ yy206: yych = *++YYCURSOR; if (yych <= 'O') { if (yych <= 'H') { - if (yych == 'E') goto yy778; - goto yy282; + if (yych == 'E') goto yy776; + goto yy280; } else { - if (yych <= 'I') goto yy779; - if (yych <= 'N') goto yy282; - goto yy780; + if (yych <= 'I') goto yy777; + if (yych <= 'N') goto yy280; + goto yy778; } } else { if (yych <= 'h') { - if (yych == 'e') goto yy778; - goto yy282; + if (yych == 'e') goto yy776; + goto yy280; } else { - if (yych <= 'i') goto yy779; - if (yych == 'o') goto yy780; - goto yy282; + if (yych <= 'i') goto yy777; + if (yych == 'o') goto yy778; + goto yy280; } } yy207: @@ -3286,21 +3286,21 @@ yy207: yych = *++YYCURSOR; if (yych <= 'U') { if (yych <= 'N') { - if (yych == 'I') goto yy757; - goto yy282; + if (yych == 'I') goto yy755; + goto yy280; } else { - if (yych <= 'O') goto yy758; - if (yych <= 'T') goto yy282; - goto yy759; + if (yych <= 'O') goto yy756; + if (yych <= 'T') goto yy280; + goto yy757; } } else { if (yych <= 'n') { - if (yych == 'i') goto yy757; - goto yy282; + if (yych == 'i') goto yy755; + goto yy280; } else { - if (yych <= 'o') goto yy758; - if (yych == 'u') goto yy759; - goto yy282; + if (yych <= 'o') goto yy756; + if (yych == 'u') goto yy757; + goto yy280; } } yy208: @@ -3308,43 +3308,43 @@ yy208: yych = *++YYCURSOR; if (yych <= 'O') { if (yych <= 'K') { - if (yych == 'A') goto yy729; - goto yy282; + if (yych == 'A') goto yy727; + goto yy280; } else { - if (yych <= 'L') goto yy730; - if (yych <= 'N') goto yy282; - goto yy731; + if (yych <= 'L') goto yy728; + if (yych <= 'N') goto yy280; + goto yy729; } } else { if (yych <= 'k') { - if (yych == 'a') goto yy729; - goto yy282; + if (yych == 'a') goto yy727; + goto yy280; } else { - if (yych <= 'l') goto yy730; - if (yych == 'o') goto yy731; - goto yy282; + if (yych <= 'l') goto yy728; + if (yych == 'o') goto yy729; + goto yy280; } } yy209: YYDEBUG(209, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy711; - if (yych == 'e') goto yy711; - goto yy282; + if (yych == 'E') goto yy709; + if (yych == 'e') goto yy709; + goto yy280; yy210: YYDEBUG(210, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'R') { - if (yych == 'H') goto yy703; - if (yych <= 'Q') goto yy282; - goto yy704; + if (yych == 'H') goto yy701; + if (yych <= 'Q') goto yy280; + goto yy702; } else { if (yych <= 'h') { - if (yych <= 'g') goto yy282; - goto yy703; + if (yych <= 'g') goto yy280; + goto yy701; } else { - if (yych == 'r') goto yy704; - goto yy282; + if (yych == 'r') goto yy702; + goto yy280; } } yy211: @@ -3352,70 +3352,70 @@ yy211: yych = *++YYCURSOR; if (yych <= 'S') { if (yych <= 'L') { - if (yych == 'F') goto yy656; - goto yy282; + if (yych == 'F') goto yy654; + goto yy280; } else { - if (yych <= 'M') goto yy658; - if (yych <= 'N') goto yy659; - if (yych <= 'R') goto yy282; - goto yy660; + if (yych <= 'M') goto yy656; + if (yych <= 'N') goto yy657; + if (yych <= 'R') goto yy280; + goto yy658; } } else { if (yych <= 'm') { - if (yych == 'f') goto yy656; - if (yych <= 'l') goto yy282; - goto yy658; + if (yych == 'f') goto yy654; + if (yych <= 'l') goto yy280; + goto yy656; } else { - if (yych <= 'n') goto yy659; - if (yych == 's') goto yy660; - goto yy282; + if (yych <= 'n') goto yy657; + if (yych == 's') goto yy658; + goto yy280; } } yy212: YYDEBUG(212, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'H') goto yy651; - if (yych == 'h') goto yy651; - goto yy282; + if (yych == 'H') goto yy649; + if (yych == 'h') goto yy649; + goto yy280; yy213: YYDEBUG(213, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'S') { if (yych <= 'M') { - if (yych == 'B') goto yy633; - goto yy282; + if (yych == 'B') goto yy631; + goto yy280; } else { - if (yych <= 'N') goto yy634; - if (yych <= 'Q') goto yy282; - if (yych <= 'R') goto yy635; - goto yy636; + if (yych <= 'N') goto yy632; + if (yych <= 'Q') goto yy280; + if (yych <= 'R') goto yy633; + goto yy634; } } else { if (yych <= 'n') { - if (yych == 'b') goto yy633; - if (yych <= 'm') goto yy282; - goto yy634; + if (yych == 'b') goto yy631; + if (yych <= 'm') goto yy280; + goto yy632; } else { - if (yych <= 'q') goto yy282; - if (yych <= 'r') goto yy635; - if (yych <= 's') goto yy636; - goto yy282; + if (yych <= 'q') goto yy280; + if (yych <= 'r') goto yy633; + if (yych <= 's') goto yy634; + goto yy280; } } yy214: YYDEBUG(214, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'W') { - if (yych == 'T') goto yy621; - if (yych <= 'V') goto yy282; - goto yy622; + if (yych == 'T') goto yy619; + if (yych <= 'V') goto yy280; + goto yy620; } else { if (yych <= 't') { - if (yych <= 's') goto yy282; - goto yy621; + if (yych <= 's') goto yy280; + goto yy619; } else { - if (yych == 'w') goto yy622; - goto yy282; + if (yych == 'w') goto yy620; + goto yy280; } } yy215: @@ -3426,38 +3426,38 @@ yy215: if (yych <= '/') { if (yych <= '"') { if (yych <= '!') goto yy205; - goto yy614; + goto yy612; } else { - if (yych == '\'') goto yy265; + if (yych == '\'') goto yy263; goto yy205; } } else { if (yych <= ';') { - if (yych <= '9') goto yy281; + if (yych <= '9') goto yy279; goto yy205; } else { - if (yych <= '<') goto yy613; + if (yych <= '<') goto yy611; if (yych <= '@') goto yy205; - goto yy281; + goto yy279; } } } else { if (yych <= '`') { if (yych <= 'Z') { - if (yych <= 'R') goto yy615; - goto yy281; + if (yych <= 'R') goto yy613; + goto yy279; } else { - if (yych == '_') goto yy281; + if (yych == '_') goto yy279; goto yy205; } } else { if (yych <= 'r') { - if (yych <= 'q') goto yy281; - goto yy615; + if (yych <= 'q') goto yy279; + goto yy613; } else { - if (yych <= 'z') goto yy281; + if (yych <= 'z') goto yy279; if (yych <= '~') goto yy205; - goto yy281; + goto yy279; } } } @@ -3465,47 +3465,47 @@ yy216: YYDEBUG(216, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'O') { - if (yych == 'L') goto yy603; - if (yych <= 'N') goto yy282; - goto yy604; + if (yych == 'L') goto yy601; + if (yych <= 'N') goto yy280; + goto yy602; } else { if (yych <= 'l') { - if (yych <= 'k') goto yy282; - goto yy603; + if (yych <= 'k') goto yy280; + goto yy601; } else { - if (yych == 'o') goto yy604; - goto yy282; + if (yych == 'o') goto yy602; + goto yy280; } } yy217: YYDEBUG(217, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'U') { - if (yych == 'R') goto yy579; - if (yych <= 'T') goto yy282; - goto yy580; + if (yych == 'R') goto yy577; + if (yych <= 'T') goto yy280; + goto yy578; } else { if (yych <= 'r') { - if (yych <= 'q') goto yy282; - goto yy579; + if (yych <= 'q') goto yy280; + goto yy577; } else { - if (yych == 'u') goto yy580; - goto yy282; + if (yych == 'u') goto yy578; + goto yy280; } } yy218: YYDEBUG(218, *YYCURSOR); ++YYCURSOR; if ((yych = *YYCURSOR) <= '<') { - if (yych == '-') goto yy575; + if (yych == '-') goto yy573; } else { - if (yych <= '=') goto yy573; - if (yych <= '>') goto yy577; + if (yych <= '=') goto yy571; + if (yych <= '>') goto yy575; } yy219: YYDEBUG(219, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1352 "Zend/zend_language_scanner.l" +#line 1348 "Zend/zend_language_scanner.l" { return yytext[0]; } @@ -3514,7 +3514,7 @@ yy220: YYDEBUG(220, *YYCURSOR); ++YYCURSOR; yych = *YYCURSOR; - goto yy572; + goto yy570; yy221: YYDEBUG(221, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); @@ -3530,257 +3530,247 @@ yy221: yy222: YYDEBUG(222, *YYCURSOR); yych = *++YYCURSOR; - if (yych == ':') goto yy569; + if (yych == ':') goto yy567; goto yy219; yy223: YYDEBUG(223, *YYCURSOR); - ++YYCURSOR; - YYDEBUG(224, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1116 "Zend/zend_language_scanner.l" - { - return T_NS_SEPARATOR; -} -#line 3545 "Zend/zend_language_scanner.c" -yy225: - YYDEBUG(225, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'E') { - if (yych == 'A') goto yy557; - if (yych <= 'D') goto yy282; - goto yy558; + if (yych == 'A') goto yy555; + if (yych <= 'D') goto yy280; + goto yy556; } else { if (yych <= 'a') { - if (yych <= '`') goto yy282; - goto yy557; + if (yych <= '`') goto yy280; + goto yy555; } else { - if (yych == 'e') goto yy558; - goto yy282; + if (yych == 'e') goto yy556; + goto yy280; } } -yy226: - YYDEBUG(226, *YYCURSOR); +yy224: + YYDEBUG(224, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'A') goto yy554; - if (yych == 'a') goto yy554; - goto yy282; -yy227: - YYDEBUG(227, *YYCURSOR); + if (yych == 'A') goto yy552; + if (yych == 'a') goto yy552; + goto yy280; +yy225: + YYDEBUG(225, *YYCURSOR); yyaccept = 1; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'S') { if (yych <= 'D') { if (yych <= ' ') { - if (yych == '\t') goto yy475; + if (yych == '\t') goto yy473; if (yych <= 0x1F) goto yy219; - goto yy475; + goto yy473; } else { if (yych <= '@') goto yy219; if (yych == 'C') goto yy219; - goto yy475; + goto yy473; } } else { if (yych <= 'I') { - if (yych == 'F') goto yy475; + if (yych == 'F') goto yy473; if (yych <= 'H') goto yy219; - goto yy475; + goto yy473; } else { - if (yych == 'O') goto yy475; + if (yych == 'O') goto yy473; if (yych <= 'Q') goto yy219; - goto yy475; + goto yy473; } } } else { if (yych <= 'f') { if (yych <= 'b') { - if (yych == 'U') goto yy475; + if (yych == 'U') goto yy473; if (yych <= '`') goto yy219; - goto yy475; + goto yy473; } else { - if (yych == 'd') goto yy475; + if (yych == 'd') goto yy473; if (yych <= 'e') goto yy219; - goto yy475; + goto yy473; } } else { if (yych <= 'o') { - if (yych == 'i') goto yy475; + if (yych == 'i') goto yy473; if (yych <= 'n') goto yy219; - goto yy475; + goto yy473; } else { if (yych <= 's') { if (yych <= 'q') goto yy219; - goto yy475; + goto yy473; } else { - if (yych == 'u') goto yy475; + if (yych == 'u') goto yy473; goto yy219; } } } } -yy228: - YYDEBUG(228, *YYCURSOR); +yy226: + YYDEBUG(226, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'S') { - if (yych == 'N') goto yy466; - if (yych <= 'R') goto yy282; - goto yy467; + if (yych == 'N') goto yy464; + if (yych <= 'R') goto yy280; + goto yy465; } else { if (yych <= 'n') { - if (yych <= 'm') goto yy282; - goto yy466; + if (yych <= 'm') goto yy280; + goto yy464; } else { - if (yych == 's') goto yy467; - goto yy282; + if (yych == 's') goto yy465; + goto yy280; } } +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 == '_') goto yy392; - goto yy282; + if (yych == 'I') goto yy380; + if (yych == 'i') goto yy380; + goto yy280; yy230: YYDEBUG(230, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '<') goto yy219; - if (yych <= '=') goto yy386; - if (yych <= '>') goto yy388; + if (yych == '+') goto yy378; + if (yych == '=') goto yy376; goto yy219; yy231: YYDEBUG(231, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'I') goto yy382; - if (yych == 'i') goto yy382; - goto yy282; + if (yych == '=') goto yy373; + goto yy219; 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 yy347; + if (yych == '/') goto yy345; goto yy219; } else { - if (yych <= '<') goto yy345; - if (yych <= '=') goto yy348; - if (yych <= '>') goto yy350; + if (yych <= '<') goto yy343; + if (yych <= '=') goto yy346; + if (yych <= '>') goto yy348; goto yy219; } -yy235: - YYDEBUG(235, *YYCURSOR); +yy233: + YYDEBUG(233, *YYCURSOR); yych = *++YYCURSOR; if (yych <= '<') goto yy219; - if (yych <= '=') goto yy341; - if (yych <= '>') goto yy339; + if (yych <= '=') goto yy339; + if (yych <= '>') goto yy337; goto yy219; -yy236: - YYDEBUG(236, *YYCURSOR); +yy234: + YYDEBUG(234, *YYCURSOR); yych = *++YYCURSOR; - if (yych == '=') goto yy337; + if (yych == '=') goto yy335; goto yy219; -yy237: - YYDEBUG(237, *YYCURSOR); +yy235: + YYDEBUG(235, *YYCURSOR); yych = *++YYCURSOR; if (yych <= '.') { - if (yych == '*') goto yy328; + if (yych == '*') goto yy326; goto yy219; } else { - if (yych <= '/') goto yy330; - if (yych == '=') goto yy331; + if (yych <= '/') goto yy328; + if (yych == '=') goto yy329; 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 yy219; - if (yych <= '9') goto yy324; - if (yych == '=') goto yy326; + if (yych == '&') goto yy312; + if (yych == '=') goto yy314; goto yy219; yy239: YYDEBUG(239, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '<') goto yy219; - if (yych <= '=') goto yy320; - if (yych <= '>') goto yy318; + if (yych == '=') goto yy310; + if (yych == '|') goto yy308; goto yy219; yy240: YYDEBUG(240, *YYCURSOR); yych = *++YYCURSOR; - if (yych == '&') goto yy314; - if (yych == '=') goto yy316; + if (yych == '=') goto yy306; goto yy219; yy241: YYDEBUG(241, *YYCURSOR); yych = *++YYCURSOR; - if (yych == '=') goto yy312; - if (yych == '|') goto yy310; - goto yy219; + if (yych == 'R') goto yy304; + if (yych == 'r') goto yy304; + goto yy280; yy242: YYDEBUG(242, *YYCURSOR); yych = *++YYCURSOR; - if (yych == '=') goto yy308; - goto yy219; + if (yych == 'O') goto yy301; + if (yych == 'o') goto yy301; + goto yy280; 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 yy300; + if (yych <= 'Z') goto yy298; if (yych <= '^') goto yy219; - goto yy300; + goto yy298; } else { if (yych <= '`') goto yy219; - if (yych <= 'z') goto yy300; + if (yych <= 'z') goto yy298; if (yych <= '~') goto yy219; - goto yy300; + goto yy298; } -yy246: - YYDEBUG(246, *YYCURSOR); +yy244: + YYDEBUG(244, *YYCURSOR); yych = *++YYCURSOR; goto yy219; -yy247: - YYDEBUG(247, *YYCURSOR); +yy245: + YYDEBUG(245, *YYCURSOR); yych = *++YYCURSOR; - if (yych == '>') goto yy296; + if (yych == '>') goto yy294; goto yy219; -yy248: - YYDEBUG(248, *YYCURSOR); +yy246: + YYDEBUG(246, *YYCURSOR); ++YYCURSOR; - YYDEBUG(249, *YYCURSOR); + YYDEBUG(247, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1357 "Zend/zend_language_scanner.l" +#line 1353 "Zend/zend_language_scanner.l" { yy_push_state(ST_IN_SCRIPTING TSRMLS_CC); return '{'; } -#line 3778 "Zend/zend_language_scanner.c" -yy250: - YYDEBUG(250, *YYCURSOR); +#line 3768 "Zend/zend_language_scanner.c" +yy248: + YYDEBUG(248, *YYCURSOR); ++YYCURSOR; - YYDEBUG(251, *YYCURSOR); + YYDEBUG(249, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1369 "Zend/zend_language_scanner.l" +#line 1365 "Zend/zend_language_scanner.l" { RESET_DOC_COMMENT(); if (!zend_stack_is_empty(&SCNG(state_stack))) { @@ -3788,30 +3778,30 @@ yy250: } return '}'; } -#line 3792 "Zend/zend_language_scanner.c" -yy252: - YYDEBUG(252, *YYCURSOR); +#line 3782 "Zend/zend_language_scanner.c" +yy250: + YYDEBUG(250, *YYCURSOR); yyaccept = 2; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'E') { if (yych <= '/') { - if (yych == '.') goto yy283; + if (yych == '.') goto yy281; } else { - if (yych <= '9') goto yy286; - if (yych >= 'E') goto yy288; + if (yych <= '9') goto yy284; + if (yych >= 'E') goto yy286; } } else { if (yych <= 'd') { - if (yych == 'X') goto yy292; + if (yych == 'X') goto yy290; } else { - if (yych <= 'e') goto yy288; - if (yych == 'x') goto yy292; + if (yych <= 'e') goto yy286; + if (yych == 'x') goto yy290; } } -yy253: - YYDEBUG(253, *YYCURSOR); +yy251: + YYDEBUG(251, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1395 "Zend/zend_language_scanner.l" +#line 1391 "Zend/zend_language_scanner.l" { if (yyleng < MAX_LENGTH_OF_LONG - 1) { /* Won't overflow */ zendlval->value.lval = strtol(yytext, NULL, 0); @@ -3832,105 +3822,105 @@ yy253: zendlval->type = IS_LONG; return T_LNUMBER; } -#line 3836 "Zend/zend_language_scanner.c" -yy254: - YYDEBUG(254, *YYCURSOR); +#line 3826 "Zend/zend_language_scanner.c" +yy252: + YYDEBUG(252, *YYCURSOR); yyaccept = 2; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '9') { - if (yych == '.') goto yy283; - if (yych <= '/') goto yy253; - goto yy286; + if (yych == '.') goto yy281; + if (yych <= '/') goto yy251; + goto yy284; } else { if (yych <= 'E') { - if (yych <= 'D') goto yy253; - goto yy288; + if (yych <= 'D') goto yy251; + goto yy286; } else { - if (yych == 'e') goto yy288; - goto yy253; + if (yych == 'e') goto yy286; + goto yy251; } } -yy255: - YYDEBUG(255, *YYCURSOR); +yy253: + YYDEBUG(253, *YYCURSOR); yych = *++YYCURSOR; - goto yy282; -yy256: - YYDEBUG(256, *YYCURSOR); + goto yy280; +yy254: + YYDEBUG(254, *YYCURSOR); ++YYCURSOR; -yy257: - YYDEBUG(257, *YYCURSOR); +yy255: + YYDEBUG(255, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1740 "Zend/zend_language_scanner.l" +#line 1736 "Zend/zend_language_scanner.l" { BEGIN(ST_ONE_LINE_COMMENT); yymore(); } -#line 3869 "Zend/zend_language_scanner.c" -yy258: - YYDEBUG(258, *YYCURSOR); +#line 3859 "Zend/zend_language_scanner.c" +yy256: + YYDEBUG(256, *YYCURSOR); yyaccept = 3; yych = *(YYMARKER = ++YYCURSOR); - goto yy274; -yy259: - YYDEBUG(259, *YYCURSOR); + goto yy272; +yy257: + YYDEBUG(257, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1907 "Zend/zend_language_scanner.l" +#line 1903 "Zend/zend_language_scanner.l" { BEGIN(ST_DOUBLE_QUOTES); return '"'; } -#line 3883 "Zend/zend_language_scanner.c" -yy260: - YYDEBUG(260, *YYCURSOR); +#line 3873 "Zend/zend_language_scanner.c" +yy258: + YYDEBUG(258, *YYCURSOR); yyaccept = 4; yych = *(YYMARKER = ++YYCURSOR); - goto yy266; -yy261: - YYDEBUG(261, *YYCURSOR); + goto yy264; +yy259: + YYDEBUG(259, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2130 "Zend/zend_language_scanner.l" +#line 2126 "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 3897 "Zend/zend_language_scanner.c" -yy262: - YYDEBUG(262, *YYCURSOR); +#line 3887 "Zend/zend_language_scanner.c" +yy260: + YYDEBUG(260, *YYCURSOR); ++YYCURSOR; - YYDEBUG(263, *YYCURSOR); + YYDEBUG(261, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1958 "Zend/zend_language_scanner.l" +#line 1954 "Zend/zend_language_scanner.l" { BEGIN(ST_BACKQUOTE); return '`'; } -#line 3908 "Zend/zend_language_scanner.c" -yy264: - YYDEBUG(264, *YYCURSOR); +#line 3898 "Zend/zend_language_scanner.c" +yy262: + YYDEBUG(262, *YYCURSOR); yych = *++YYCURSOR; - goto yy261; -yy265: - YYDEBUG(265, *YYCURSOR); + goto yy259; +yy263: + YYDEBUG(263, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; -yy266: - YYDEBUG(266, *YYCURSOR); +yy264: + YYDEBUG(264, *YYCURSOR); if (yybm[256+yych] & 128) { - goto yy265; + goto yy263; } - if (yych <= '[') goto yy268; - YYDEBUG(267, *YYCURSOR); + if (yych <= '[') goto yy266; + YYDEBUG(265, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - goto yy265; -yy268: - YYDEBUG(268, *YYCURSOR); + goto yy263; +yy266: + YYDEBUG(266, *YYCURSOR); ++YYCURSOR; - YYDEBUG(269, *YYCURSOR); + YYDEBUG(267, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1856 "Zend/zend_language_scanner.l" +#line 1852 "Zend/zend_language_scanner.l" { register char *s, *t; char *end; @@ -3980,22 +3970,22 @@ yy268: #endif /* ZEND_MULTIBYTE */ return T_CONSTANT_ENCAPSED_STRING; } -#line 3984 "Zend/zend_language_scanner.c" -yy270: - YYDEBUG(270, *YYCURSOR); +#line 3974 "Zend/zend_language_scanner.c" +yy268: + YYDEBUG(268, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - YYDEBUG(271, *YYCURSOR); + YYDEBUG(269, *YYCURSOR); if (yybm[0+yych] & 2) { - goto yy273; + goto yy271; } - if (yych <= '#') goto yy278; - if (yych <= '$') goto yy272; - if (yych <= 'z') goto yy275; - goto yy270; -yy272: - YYDEBUG(272, *YYCURSOR); + if (yych <= '#') goto yy276; + if (yych <= '$') goto yy270; + if (yych <= 'z') goto yy273; + goto yy268; +yy270: + YYDEBUG(270, *YYCURSOR); YYCURSOR = YYMARKER; if (yyaccept <= 3) { if (yyaccept <= 1) { @@ -4006,186 +3996,186 @@ yy272: } } else { if (yyaccept <= 2) { - goto yy253; + goto yy251; } else { - goto yy259; + goto yy257; } } } else { if (yyaccept <= 5) { if (yyaccept <= 4) { - goto yy261; + goto yy259; } else { - goto yy285; + goto yy283; } } else { if (yyaccept <= 6) { - goto yy329; + goto yy327; } else { - goto yy346; + goto yy344; } } } -yy273: - YYDEBUG(273, *YYCURSOR); +yy271: + YYDEBUG(271, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; -yy274: - YYDEBUG(274, *YYCURSOR); +yy272: + YYDEBUG(272, *YYCURSOR); if (yybm[0+yych] & 2) { - goto yy273; + goto yy271; } - if (yych <= '#') goto yy278; - if (yych <= '$') goto yy276; - if (yych >= '{') goto yy270; -yy275: - YYDEBUG(275, *YYCURSOR); + if (yych <= '#') goto yy276; + if (yych <= '$') goto yy274; + if (yych >= '{') goto yy268; +yy273: + YYDEBUG(273, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - goto yy273; -yy276: - YYDEBUG(276, *YYCURSOR); + goto yy271; +yy274: + YYDEBUG(274, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - YYDEBUG(277, *YYCURSOR); + YYDEBUG(275, *YYCURSOR); if (yybm[0+yych] & 4) { - goto yy276; + goto yy274; } if (yych <= '\\') { if (yych <= '@') { - if (yych != '"') goto yy273; + if (yych != '"') goto yy271; } else { - if (yych <= 'Z') goto yy272; - if (yych <= '[') goto yy273; - goto yy280; + if (yych <= 'Z') goto yy270; + if (yych <= '[') goto yy271; + goto yy278; } } else { if (yych <= '`') { - if (yych == '_') goto yy272; - goto yy273; + if (yych == '_') goto yy270; + goto yy271; } else { - if (yych <= '{') goto yy272; - if (yych <= '~') goto yy273; - goto yy272; + if (yych <= '{') goto yy270; + if (yych <= '~') goto yy271; + goto yy270; } } -yy278: - YYDEBUG(278, *YYCURSOR); +yy276: + YYDEBUG(276, *YYCURSOR); ++YYCURSOR; - YYDEBUG(279, *YYCURSOR); + YYDEBUG(277, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1848 "Zend/zend_language_scanner.l" +#line 1844 "Zend/zend_language_scanner.l" { int bprefix = (yytext[0] != '"') ? 1 : 0; zend_scan_escape_string(zendlval, yytext+bprefix+1, yyleng-bprefix-2, '"' TSRMLS_CC); return T_CONSTANT_ENCAPSED_STRING; } -#line 4088 "Zend/zend_language_scanner.c" -yy280: - YYDEBUG(280, *YYCURSOR); +#line 4078 "Zend/zend_language_scanner.c" +yy278: + YYDEBUG(278, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - goto yy273; -yy281: - YYDEBUG(281, *YYCURSOR); + goto yy271; +yy279: + YYDEBUG(279, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; -yy282: - YYDEBUG(282, *YYCURSOR); +yy280: + YYDEBUG(280, *YYCURSOR); if (yybm[0+yych] & 8) { - goto yy281; + goto yy279; } goto yy205; -yy283: - YYDEBUG(283, *YYCURSOR); +yy281: + YYDEBUG(281, *YYCURSOR); yyaccept = 5; YYMARKER = ++YYCURSOR; YYFILL(3); yych = *YYCURSOR; - YYDEBUG(284, *YYCURSOR); + YYDEBUG(282, *YYCURSOR); if (yybm[0+yych] & 16) { - goto yy283; + goto yy281; } - if (yych == 'E') goto yy288; - if (yych == 'e') goto yy288; -yy285: - YYDEBUG(285, *YYCURSOR); + if (yych == 'E') goto yy286; + if (yych == 'e') goto yy286; +yy283: + YYDEBUG(283, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1456 "Zend/zend_language_scanner.l" +#line 1452 "Zend/zend_language_scanner.l" { zendlval->value.dval = zend_strtod(yytext, NULL); zendlval->type = IS_DOUBLE; return T_DNUMBER; } -#line 4127 "Zend/zend_language_scanner.c" -yy286: - YYDEBUG(286, *YYCURSOR); +#line 4117 "Zend/zend_language_scanner.c" +yy284: + YYDEBUG(284, *YYCURSOR); yyaccept = 2; YYMARKER = ++YYCURSOR; YYFILL(3); yych = *YYCURSOR; - YYDEBUG(287, *YYCURSOR); + YYDEBUG(285, *YYCURSOR); if (yych <= '9') { - if (yych == '.') goto yy283; - if (yych <= '/') goto yy253; - goto yy286; + if (yych == '.') goto yy281; + if (yych <= '/') goto yy251; + goto yy284; } else { if (yych <= 'E') { - if (yych <= 'D') goto yy253; + if (yych <= 'D') goto yy251; } else { - if (yych != 'e') goto yy253; + if (yych != 'e') goto yy251; } } -yy288: - YYDEBUG(288, *YYCURSOR); +yy286: + YYDEBUG(286, *YYCURSOR); yych = *++YYCURSOR; if (yych <= ',') { - if (yych != '+') goto yy272; + if (yych != '+') goto yy270; } else { - if (yych <= '-') goto yy289; - if (yych <= '/') goto yy272; - if (yych <= '9') goto yy290; - goto yy272; + if (yych <= '-') goto yy287; + if (yych <= '/') goto yy270; + if (yych <= '9') goto yy288; + goto yy270; } -yy289: - YYDEBUG(289, *YYCURSOR); +yy287: + YYDEBUG(287, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy272; - if (yych >= ':') goto yy272; -yy290: - YYDEBUG(290, *YYCURSOR); + if (yych <= '/') goto yy270; + if (yych >= ':') goto yy270; +yy288: + YYDEBUG(288, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - YYDEBUG(291, *YYCURSOR); - if (yych <= '/') goto yy285; - if (yych <= '9') goto yy290; - goto yy285; -yy292: - YYDEBUG(292, *YYCURSOR); + YYDEBUG(289, *YYCURSOR); + if (yych <= '/') goto yy283; + if (yych <= '9') goto yy288; + goto yy283; +yy290: + YYDEBUG(290, *YYCURSOR); yych = *++YYCURSOR; if (yybm[0+yych] & 32) { - goto yy293; + goto yy291; } - goto yy272; -yy293: - YYDEBUG(293, *YYCURSOR); + goto yy270; +yy291: + YYDEBUG(291, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - YYDEBUG(294, *YYCURSOR); + YYDEBUG(292, *YYCURSOR); if (yybm[0+yych] & 32) { - goto yy293; + goto yy291; } - YYDEBUG(295, *YYCURSOR); + YYDEBUG(293, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1416 "Zend/zend_language_scanner.l" +#line 1412 "Zend/zend_language_scanner.l" { char *hex = yytext + 2; /* Skip "0x" */ int len = yyleng - 2; @@ -4206,16 +4196,16 @@ yy293: return T_DNUMBER; } } -#line 4210 "Zend/zend_language_scanner.c" -yy296: - YYDEBUG(296, *YYCURSOR); +#line 4200 "Zend/zend_language_scanner.c" +yy294: + YYDEBUG(294, *YYCURSOR); ++YYCURSOR; - if ((yych = *YYCURSOR) == '\n') goto yy298; - if (yych == '\r') goto yy299; -yy297: - YYDEBUG(297, *YYCURSOR); + if ((yych = *YYCURSOR) == '\n') goto yy296; + if (yych == '\r') goto yy297; +yy295: + YYDEBUG(295, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1823 "Zend/zend_language_scanner.l" +#line 1819 "Zend/zend_language_scanner.l" { zendlval->value.str.val = yytext; /* no copying - intentional */ zendlval->value.str.len = yyleng; @@ -4223,76 +4213,86 @@ yy297: BEGIN(INITIAL); return T_CLOSE_TAG; /* implicit ';' at php-end tag */ } -#line 4227 "Zend/zend_language_scanner.c" -yy298: - YYDEBUG(298, *YYCURSOR); +#line 4217 "Zend/zend_language_scanner.c" +yy296: + YYDEBUG(296, *YYCURSOR); yych = *++YYCURSOR; - goto yy297; -yy299: - YYDEBUG(299, *YYCURSOR); + goto yy295; +yy297: + YYDEBUG(297, *YYCURSOR); yych = *++YYCURSOR; - if (yych == '\n') goto yy298; - goto yy297; -yy300: - YYDEBUG(300, *YYCURSOR); + if (yych == '\n') goto yy296; + goto yy295; +yy298: + YYDEBUG(298, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - YYDEBUG(301, *YYCURSOR); + YYDEBUG(299, *YYCURSOR); if (yych <= '^') { if (yych <= '9') { - if (yych >= '0') goto yy300; + if (yych >= '0') goto yy298; } else { - if (yych <= '@') goto yy302; - if (yych <= 'Z') goto yy300; + if (yych <= '@') goto yy300; + if (yych <= 'Z') goto yy298; } } else { if (yych <= '`') { - if (yych <= '_') goto yy300; + if (yych <= '_') goto yy298; } else { - if (yych <= 'z') goto yy300; - if (yych >= 0x7F) goto yy300; + if (yych <= 'z') goto yy298; + if (yych >= 0x7F) goto yy298; } } -yy302: - YYDEBUG(302, *YYCURSOR); +yy300: + YYDEBUG(300, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1709 "Zend/zend_language_scanner.l" +#line 1705 "Zend/zend_language_scanner.l" { zend_copy_value(zendlval, (yytext+1), (yyleng-1)); zendlval->type = IS_STRING; return T_VARIABLE; } -#line 4267 "Zend/zend_language_scanner.c" -yy303: - YYDEBUG(303, *YYCURSOR); +#line 4257 "Zend/zend_language_scanner.c" +yy301: + YYDEBUG(301, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'R') goto yy304; - if (yych != 'r') goto yy282; + if (yych == 'R') goto yy302; + if (yych != 'r') goto yy280; +yy302: + YYDEBUG(302, *YYCURSOR); + ++YYCURSOR; + if (yybm[0+(yych = *YYCURSOR)] & 8) { + goto yy279; + } + YYDEBUG(303, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 1336 "Zend/zend_language_scanner.l" + { + return T_LOGICAL_XOR; +} +#line 4275 "Zend/zend_language_scanner.c" yy304: YYDEBUG(304, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy281; + goto yy279; } YYDEBUG(305, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1340 "Zend/zend_language_scanner.l" +#line 1328 "Zend/zend_language_scanner.l" { - return T_LOGICAL_XOR; + return T_LOGICAL_OR; } -#line 4285 "Zend/zend_language_scanner.c" +#line 4288 "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 1332 "Zend/zend_language_scanner.l" +#line 1316 "Zend/zend_language_scanner.l" { - return T_LOGICAL_OR; + return T_XOR_EQUAL; } #line 4298 "Zend/zend_language_scanner.c" yy308: @@ -4302,7 +4302,7 @@ yy308: yyleng = YYCURSOR - SCNG(yy_text); #line 1320 "Zend/zend_language_scanner.l" { - return T_XOR_EQUAL; + return T_BOOLEAN_OR; } #line 4308 "Zend/zend_language_scanner.c" yy310: @@ -4310,9 +4310,9 @@ yy310: ++YYCURSOR; YYDEBUG(311, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1324 "Zend/zend_language_scanner.l" +#line 1312 "Zend/zend_language_scanner.l" { - return T_BOOLEAN_OR; + return T_OR_EQUAL; } #line 4318 "Zend/zend_language_scanner.c" yy312: @@ -4320,9 +4320,9 @@ yy312: ++YYCURSOR; YYDEBUG(313, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1316 "Zend/zend_language_scanner.l" +#line 1324 "Zend/zend_language_scanner.l" { - return T_OR_EQUAL; + return T_BOOLEAN_AND; } #line 4328 "Zend/zend_language_scanner.c" yy314: @@ -4330,30 +4330,20 @@ yy314: ++YYCURSOR; YYDEBUG(315, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1328 "Zend/zend_language_scanner.l" +#line 1308 "Zend/zend_language_scanner.l" { - return T_BOOLEAN_AND; + return T_AND_EQUAL; } #line 4338 "Zend/zend_language_scanner.c" yy316: YYDEBUG(316, *YYCURSOR); ++YYCURSOR; + if ((yych = *YYCURSOR) == '\n') goto yy320; + if (yych == '\r') goto yy321; +yy317: YYDEBUG(317, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1312 "Zend/zend_language_scanner.l" - { - return T_AND_EQUAL; -} -#line 4348 "Zend/zend_language_scanner.c" -yy318: - YYDEBUG(318, *YYCURSOR); - ++YYCURSOR; - if ((yych = *YYCURSOR) == '\n') goto yy322; - if (yych == '\r') goto yy323; -yy319: - YYDEBUG(319, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1832 "Zend/zend_language_scanner.l" +#line 1828 "Zend/zend_language_scanner.l" { if (CG(asp_tags)) { BEGIN(INITIAL); @@ -4366,124 +4356,134 @@ yy319: return yytext[0]; } } -#line 4370 "Zend/zend_language_scanner.c" -yy320: - YYDEBUG(320, *YYCURSOR); +#line 4360 "Zend/zend_language_scanner.c" +yy318: + YYDEBUG(318, *YYCURSOR); ++YYCURSOR; - YYDEBUG(321, *YYCURSOR); + YYDEBUG(319, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1300 "Zend/zend_language_scanner.l" +#line 1296 "Zend/zend_language_scanner.l" { return T_MOD_EQUAL; } -#line 4380 "Zend/zend_language_scanner.c" -yy322: - YYDEBUG(322, *YYCURSOR); +#line 4370 "Zend/zend_language_scanner.c" +yy320: + YYDEBUG(320, *YYCURSOR); yych = *++YYCURSOR; - goto yy319; -yy323: - YYDEBUG(323, *YYCURSOR); + goto yy317; +yy321: + YYDEBUG(321, *YYCURSOR); yych = *++YYCURSOR; - if (yych == '\n') goto yy322; - goto yy319; -yy324: - YYDEBUG(324, *YYCURSOR); + if (yych == '\n') goto yy320; + goto yy317; +yy322: + YYDEBUG(322, *YYCURSOR); yyaccept = 5; YYMARKER = ++YYCURSOR; YYFILL(3); yych = *YYCURSOR; - YYDEBUG(325, *YYCURSOR); + YYDEBUG(323, *YYCURSOR); if (yych <= 'D') { - if (yych <= '/') goto yy285; - if (yych <= '9') goto yy324; - goto yy285; + if (yych <= '/') goto yy283; + if (yych <= '9') goto yy322; + goto yy283; } else { - if (yych <= 'E') goto yy288; - if (yych == 'e') goto yy288; - goto yy285; + if (yych <= 'E') goto yy286; + if (yych == 'e') goto yy286; + goto yy283; } -yy326: - YYDEBUG(326, *YYCURSOR); +yy324: + YYDEBUG(324, *YYCURSOR); ++YYCURSOR; - YYDEBUG(327, *YYCURSOR); + YYDEBUG(325, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1296 "Zend/zend_language_scanner.l" +#line 1292 "Zend/zend_language_scanner.l" { return T_CONCAT_EQUAL; } -#line 4415 "Zend/zend_language_scanner.c" -yy328: - YYDEBUG(328, *YYCURSOR); +#line 4405 "Zend/zend_language_scanner.c" +yy326: + YYDEBUG(326, *YYCURSOR); yyaccept = 6; yych = *(YYMARKER = ++YYCURSOR); - if (yych == '*') goto yy333; -yy329: - YYDEBUG(329, *YYCURSOR); + if (yych == '*') goto yy331; +yy327: + YYDEBUG(327, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1795 "Zend/zend_language_scanner.l" +#line 1791 "Zend/zend_language_scanner.l" { BEGIN(ST_COMMENT); yymore(); } -#line 4429 "Zend/zend_language_scanner.c" -yy330: - YYDEBUG(330, *YYCURSOR); +#line 4419 "Zend/zend_language_scanner.c" +yy328: + YYDEBUG(328, *YYCURSOR); yych = *++YYCURSOR; - goto yy257; -yy331: - YYDEBUG(331, *YYCURSOR); + goto yy255; +yy329: + YYDEBUG(329, *YYCURSOR); ++YYCURSOR; - YYDEBUG(332, *YYCURSOR); + YYDEBUG(330, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1292 "Zend/zend_language_scanner.l" +#line 1288 "Zend/zend_language_scanner.l" { return T_DIV_EQUAL; } -#line 4443 "Zend/zend_language_scanner.c" -yy333: - YYDEBUG(333, *YYCURSOR); +#line 4433 "Zend/zend_language_scanner.c" +yy331: + YYDEBUG(331, *YYCURSOR); yych = *++YYCURSOR; if (yybm[0+yych] & 64) { - goto yy334; + goto yy332; } - goto yy272; -yy334: - YYDEBUG(334, *YYCURSOR); + goto yy270; +yy332: + YYDEBUG(332, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - YYDEBUG(335, *YYCURSOR); + YYDEBUG(333, *YYCURSOR); if (yybm[0+yych] & 64) { - goto yy334; + goto yy332; } - YYDEBUG(336, *YYCURSOR); + YYDEBUG(334, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1789 "Zend/zend_language_scanner.l" +#line 1785 "Zend/zend_language_scanner.l" { RESET_DOC_COMMENT(); BEGIN(ST_DOC_COMMENT); yymore(); } +#line 4458 "Zend/zend_language_scanner.c" +yy335: + YYDEBUG(335, *YYCURSOR); + ++YYCURSOR; + YYDEBUG(336, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 1284 "Zend/zend_language_scanner.l" + { + return T_MUL_EQUAL; +} #line 4468 "Zend/zend_language_scanner.c" yy337: YYDEBUG(337, *YYCURSOR); ++YYCURSOR; + if ((yych = *YYCURSOR) == '=') goto yy341; YYDEBUG(338, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1288 "Zend/zend_language_scanner.l" +#line 1344 "Zend/zend_language_scanner.l" { - return T_MUL_EQUAL; + return T_SR; } -#line 4478 "Zend/zend_language_scanner.c" +#line 4479 "Zend/zend_language_scanner.c" yy339: YYDEBUG(339, *YYCURSOR); ++YYCURSOR; - if ((yych = *YYCURSOR) == '=') goto yy343; YYDEBUG(340, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1348 "Zend/zend_language_scanner.l" +#line 1272 "Zend/zend_language_scanner.l" { - return T_SR; + return T_IS_GREATER_OR_EQUAL; } #line 4489 "Zend/zend_language_scanner.c" yy341: @@ -4491,223 +4491,213 @@ yy341: ++YYCURSOR; YYDEBUG(342, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1276 "Zend/zend_language_scanner.l" +#line 1304 "Zend/zend_language_scanner.l" { - return T_IS_GREATER_OR_EQUAL; + return T_SR_EQUAL; } #line 4499 "Zend/zend_language_scanner.c" yy343: YYDEBUG(343, *YYCURSOR); - ++YYCURSOR; + yyaccept = 7; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= ';') goto yy344; + if (yych <= '<') goto yy359; + if (yych <= '=') goto yy357; +yy344: YYDEBUG(344, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1308 "Zend/zend_language_scanner.l" +#line 1340 "Zend/zend_language_scanner.l" { - return T_SR_EQUAL; + return T_SL; } -#line 4509 "Zend/zend_language_scanner.c" +#line 4514 "Zend/zend_language_scanner.c" yy345: YYDEBUG(345, *YYCURSOR); - yyaccept = 7; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= ';') goto yy346; - if (yych <= '<') goto yy361; - if (yych <= '=') goto yy359; + yych = *++YYCURSOR; + if (yych == 'S') goto yy350; + if (yych == 's') goto yy350; + goto yy270; yy346: YYDEBUG(346, *YYCURSOR); + ++YYCURSOR; + YYDEBUG(347, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1344 "Zend/zend_language_scanner.l" +#line 1268 "Zend/zend_language_scanner.l" { - return T_SL; + return T_IS_SMALLER_OR_EQUAL; } -#line 4524 "Zend/zend_language_scanner.c" -yy347: - YYDEBUG(347, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'S') goto yy352; - if (yych == 's') goto yy352; - goto yy272; +#line 4530 "Zend/zend_language_scanner.c" yy348: YYDEBUG(348, *YYCURSOR); ++YYCURSOR; +yy349: YYDEBUG(349, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1272 "Zend/zend_language_scanner.l" +#line 1264 "Zend/zend_language_scanner.l" { - return T_IS_SMALLER_OR_EQUAL; + return T_IS_NOT_EQUAL; } -#line 4540 "Zend/zend_language_scanner.c" +#line 4541 "Zend/zend_language_scanner.c" yy350: YYDEBUG(350, *YYCURSOR); - ++YYCURSOR; + yych = *++YYCURSOR; + if (yych == 'C') goto yy351; + if (yych != 'c') goto yy270; yy351: YYDEBUG(351, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1268 "Zend/zend_language_scanner.l" - { - return T_IS_NOT_EQUAL; -} -#line 4551 "Zend/zend_language_scanner.c" + yych = *++YYCURSOR; + if (yych == 'R') goto yy352; + if (yych != 'r') goto yy270; yy352: YYDEBUG(352, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'C') goto yy353; - if (yych != 'c') goto yy272; + if (yych == 'I') goto yy353; + if (yych != 'i') goto yy270; yy353: YYDEBUG(353, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'R') goto yy354; - if (yych != 'r') goto yy272; + if (yych == 'P') goto yy354; + if (yych != 'p') goto yy270; yy354: YYDEBUG(354, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'I') goto yy355; - if (yych != 'i') goto yy272; + if (yych == 'T') goto yy355; + if (yych != 't') goto yy270; 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(358, *YYCURSOR); + YYDEBUG(356, *YYCURSOR); if (yych <= '\r') { - if (yych <= 0x08) goto yy272; - if (yych <= '\n') goto yy357; - if (yych <= '\f') goto yy272; - goto yy357; + if (yych <= 0x08) goto yy270; + if (yych <= '\n') goto yy355; + if (yych <= '\f') goto yy270; + goto yy355; } else { if (yych <= ' ') { - if (yych <= 0x1F) goto yy272; - goto yy357; + if (yych <= 0x1F) goto yy270; + goto yy355; } else { - if (yych == '>') goto yy296; - goto yy272; + if (yych == '>') goto yy294; + goto yy270; } } -yy359: - YYDEBUG(359, *YYCURSOR); +yy357: + YYDEBUG(357, *YYCURSOR); ++YYCURSOR; - YYDEBUG(360, *YYCURSOR); + YYDEBUG(358, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1304 "Zend/zend_language_scanner.l" +#line 1300 "Zend/zend_language_scanner.l" { return T_SL_EQUAL; } -#line 4606 "Zend/zend_language_scanner.c" -yy361: - YYDEBUG(361, *YYCURSOR); +#line 4596 "Zend/zend_language_scanner.c" +yy359: + YYDEBUG(359, *YYCURSOR); ++YYCURSOR; YYFILL(2); yych = *YYCURSOR; - YYDEBUG(362, *YYCURSOR); + YYDEBUG(360, *YYCURSOR); if (yybm[0+yych] & 128) { - goto yy361; + goto yy359; } if (yych <= 'Z') { if (yych <= '&') { - if (yych == '"') goto yy366; - goto yy272; + if (yych == '"') goto yy364; + goto yy270; } else { - if (yych <= '\'') goto yy365; - if (yych <= '@') goto yy272; + if (yych <= '\'') goto yy363; + if (yych <= '@') goto yy270; } } else { if (yych <= '`') { - if (yych != '_') goto yy272; + if (yych != '_') goto yy270; } else { - if (yych <= 'z') goto yy363; - if (yych <= '~') goto yy272; + if (yych <= 'z') goto yy361; + if (yych <= '~') goto yy270; } } -yy363: - YYDEBUG(363, *YYCURSOR); +yy361: + YYDEBUG(361, *YYCURSOR); ++YYCURSOR; YYFILL(2); yych = *YYCURSOR; - YYDEBUG(364, *YYCURSOR); + YYDEBUG(362, *YYCURSOR); if (yych <= '@') { if (yych <= '\f') { - if (yych == '\n') goto yy370; - goto yy272; + if (yych == '\n') goto yy368; + goto yy270; } else { - if (yych <= '\r') goto yy372; - if (yych <= '/') goto yy272; - if (yych <= '9') goto yy363; - goto yy272; + if (yych <= '\r') goto yy370; + if (yych <= '/') goto yy270; + if (yych <= '9') goto yy361; + goto yy270; } } else { if (yych <= '_') { - if (yych <= 'Z') goto yy363; - if (yych <= '^') goto yy272; - goto yy363; + if (yych <= 'Z') goto yy361; + if (yych <= '^') goto yy270; + goto yy361; } else { - if (yych <= '`') goto yy272; - if (yych <= 'z') goto yy363; - if (yych <= '~') goto yy272; - goto yy363; + if (yych <= '`') goto yy270; + if (yych <= 'z') goto yy361; + if (yych <= '~') goto yy270; + goto yy361; } } -yy365: - YYDEBUG(365, *YYCURSOR); +yy363: + YYDEBUG(363, *YYCURSOR); yych = *++YYCURSOR; - if (yych == '\'') goto yy272; - if (yych <= '/') goto yy374; - if (yych <= '9') goto yy272; - goto yy374; -yy366: - YYDEBUG(366, *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 yy272; - if (yych <= '/') goto yy368; - if (yych <= '9') goto yy272; - goto yy368; -yy367: - YYDEBUG(367, *YYCURSOR); + if (yych == '"') goto yy270; + if (yych <= '/') goto yy366; + if (yych <= '9') goto yy270; + goto yy366; +yy365: + YYDEBUG(365, *YYCURSOR); ++YYCURSOR; YYFILL(3); yych = *YYCURSOR; -yy368: - YYDEBUG(368, *YYCURSOR); +yy366: + YYDEBUG(366, *YYCURSOR); if (yych <= 'Z') { if (yych <= '/') { - if (yych != '"') goto yy272; + if (yych != '"') goto yy270; } else { - if (yych <= '9') goto yy367; - if (yych <= '@') goto yy272; - goto yy367; + if (yych <= '9') goto yy365; + if (yych <= '@') goto yy270; + goto yy365; } } else { if (yych <= '`') { - if (yych == '_') goto yy367; - goto yy272; + if (yych == '_') goto yy365; + goto yy270; } else { - if (yych <= 'z') goto yy367; - if (yych <= '~') goto yy272; - goto yy367; + if (yych <= 'z') goto yy365; + if (yych <= '~') goto yy270; + goto yy365; } } -yy369: - YYDEBUG(369, *YYCURSOR); +yy367: + YYDEBUG(367, *YYCURSOR); yych = *++YYCURSOR; - if (yych == '\n') goto yy370; - if (yych == '\r') goto yy372; - goto yy272; -yy370: - YYDEBUG(370, *YYCURSOR); + if (yych == '\n') goto yy368; + if (yych == '\r') goto yy370; + goto yy270; +yy368: + YYDEBUG(368, *YYCURSOR); ++YYCURSOR; -yy371: - YYDEBUG(371, *YYCURSOR); +yy369: + YYDEBUG(369, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1913 "Zend/zend_language_scanner.l" +#line 1909 "Zend/zend_language_scanner.l" { char *s; int bprefix = (yytext[0] != '<') ? 1 : 0; @@ -4751,49 +4741,59 @@ yy371: return T_START_HEREDOC; } -#line 4755 "Zend/zend_language_scanner.c" -yy372: - YYDEBUG(372, *YYCURSOR); +#line 4745 "Zend/zend_language_scanner.c" +yy370: + YYDEBUG(370, *YYCURSOR); yych = *++YYCURSOR; - if (yych == '\n') goto yy370; - goto yy371; -yy373: - YYDEBUG(373, *YYCURSOR); + if (yych == '\n') goto yy368; + goto yy369; +yy371: + YYDEBUG(371, *YYCURSOR); ++YYCURSOR; YYFILL(3); yych = *YYCURSOR; -yy374: - YYDEBUG(374, *YYCURSOR); +yy372: + YYDEBUG(372, *YYCURSOR); if (yych <= 'Z') { if (yych <= '/') { - if (yych == '\'') goto yy369; - goto yy272; + if (yych == '\'') goto yy367; + goto yy270; } else { - if (yych <= '9') goto yy373; - if (yych <= '@') goto yy272; - goto yy373; + if (yych <= '9') goto yy371; + if (yych <= '@') goto yy270; + goto yy371; } } else { if (yych <= '`') { - if (yych == '_') goto yy373; - goto yy272; + if (yych == '_') goto yy371; + goto yy270; } else { - if (yych <= 'z') goto yy373; - if (yych <= '~') goto yy272; - goto yy373; + if (yych <= 'z') goto yy371; + if (yych <= '~') goto yy270; + goto yy371; } } -yy375: - YYDEBUG(375, *YYCURSOR); +yy373: + YYDEBUG(373, *YYCURSOR); yych = *++YYCURSOR; - if (yych != '=') goto yy351; + if (yych != '=') goto yy349; + YYDEBUG(374, *YYCURSOR); + ++YYCURSOR; + YYDEBUG(375, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 1256 "Zend/zend_language_scanner.l" + { + return T_IS_NOT_IDENTICAL; +} +#line 4789 "Zend/zend_language_scanner.c" +yy376: YYDEBUG(376, *YYCURSOR); ++YYCURSOR; YYDEBUG(377, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1260 "Zend/zend_language_scanner.l" +#line 1276 "Zend/zend_language_scanner.l" { - return T_IS_NOT_IDENTICAL; + return T_PLUS_EQUAL; } #line 4799 "Zend/zend_language_scanner.c" yy378: @@ -4801,53 +4801,53 @@ yy378: ++YYCURSOR; YYDEBUG(379, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1280 "Zend/zend_language_scanner.l" +#line 1244 "Zend/zend_language_scanner.l" { - return T_PLUS_EQUAL; + return T_INC; } #line 4809 "Zend/zend_language_scanner.c" yy380: YYDEBUG(380, *YYCURSOR); - ++YYCURSOR; + yych = *++YYCURSOR; + if (yych == 'S') goto yy381; + if (yych != 's') goto yy280; +yy381: YYDEBUG(381, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1248 "Zend/zend_language_scanner.l" - { - return T_INC; -} -#line 4819 "Zend/zend_language_scanner.c" + yych = *++YYCURSOR; + if (yych == 'T') goto yy382; + if (yych != 't') goto yy280; yy382: YYDEBUG(382, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'S') goto yy383; - if (yych != 's') goto yy282; -yy383: + ++YYCURSOR; + if (yybm[0+(yych = *YYCURSOR)] & 8) { + goto yy279; + } YYDEBUG(383, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'T') goto yy384; - if (yych != 't') goto yy282; + yyleng = YYCURSOR - SCNG(yy_text); +#line 1236 "Zend/zend_language_scanner.l" + { + return T_LIST; +} +#line 4832 "Zend/zend_language_scanner.c" yy384: YYDEBUG(384, *YYCURSOR); ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy281; - } + if ((yych = *YYCURSOR) == '=') goto yy388; YYDEBUG(385, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1240 "Zend/zend_language_scanner.l" +#line 1260 "Zend/zend_language_scanner.l" { - return T_LIST; + return T_IS_EQUAL; } -#line 4842 "Zend/zend_language_scanner.c" +#line 4843 "Zend/zend_language_scanner.c" yy386: YYDEBUG(386, *YYCURSOR); ++YYCURSOR; - if ((yych = *YYCURSOR) == '=') goto yy390; YYDEBUG(387, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1264 "Zend/zend_language_scanner.l" +#line 1232 "Zend/zend_language_scanner.l" { - return T_IS_EQUAL; + return T_DOUBLE_ARROW; } #line 4853 "Zend/zend_language_scanner.c" yy388: @@ -4855,143 +4855,133 @@ yy388: ++YYCURSOR; YYDEBUG(389, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1236 "Zend/zend_language_scanner.l" +#line 1252 "Zend/zend_language_scanner.l" { - return T_DOUBLE_ARROW; + return T_IS_IDENTICAL; } #line 4863 "Zend/zend_language_scanner.c" yy390: YYDEBUG(390, *YYCURSOR); - ++YYCURSOR; - YYDEBUG(391, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1256 "Zend/zend_language_scanner.l" - { - return T_IS_IDENTICAL; -} -#line 4873 "Zend/zend_language_scanner.c" -yy392: - YYDEBUG(392, *YYCURSOR); yych = *++YYCURSOR; YYDEBUG(-1, yych); switch (yych) { case 'C': - case 'c': goto yy394; + case 'c': goto yy392; case 'D': - case 'd': goto yy398; + case 'd': goto yy396; case 'F': - case 'f': goto yy395; + case 'f': goto yy393; case 'H': - case 'h': goto yy393; + case 'h': goto yy391; case 'L': - case 'l': goto yy397; + case 'l': goto yy395; case 'M': - case 'm': goto yy396; + case 'm': goto yy394; case 'N': - case 'n': goto yy399; - default: goto yy282; + case 'n': goto yy397; + default: goto yy280; } -yy393: - YYDEBUG(393, *YYCURSOR); +yy391: + YYDEBUG(391, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'A') goto yy453; - if (yych == 'a') goto yy453; - goto yy282; -yy394: - YYDEBUG(394, *YYCURSOR); + if (yych == 'A') goto yy451; + if (yych == 'a') goto yy451; + goto yy280; +yy392: + YYDEBUG(392, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'L') goto yy446; - if (yych == 'l') goto yy446; - goto yy282; -yy395: - YYDEBUG(395, *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 yy430; - if (yych <= 'T') goto yy282; - goto yy431; + if (yych == 'I') goto yy428; + if (yych <= 'T') goto yy280; + goto yy429; } else { if (yych <= 'i') { - if (yych <= 'h') goto yy282; - goto yy430; + if (yych <= 'h') goto yy280; + goto yy428; } else { - if (yych == 'u') goto yy431; - goto yy282; + if (yych == 'u') goto yy429; + goto yy280; } } +yy394: + YYDEBUG(394, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy420; + if (yych == 'e') goto yy420; + goto yy280; +yy395: + YYDEBUG(395, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'I') goto yy414; + if (yych == 'i') goto yy414; + goto yy280; yy396: YYDEBUG(396, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy422; - if (yych == 'e') goto yy422; - goto yy282; + if (yych == 'I') goto yy409; + if (yych == 'i') goto yy409; + goto yy280; yy397: YYDEBUG(397, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'I') goto yy416; - if (yych == 'i') goto yy416; - goto yy282; + if (yych == 'A') goto yy398; + if (yych != 'a') goto yy280; yy398: YYDEBUG(398, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'I') goto yy411; - if (yych == 'i') goto yy411; - goto yy282; + if (yych == 'M') goto yy399; + if (yych != 'm') goto yy280; yy399: YYDEBUG(399, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'A') goto yy400; - if (yych != 'a') goto yy282; + if (yych == 'E') goto yy400; + if (yych != 'e') goto yy280; yy400: YYDEBUG(400, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'M') goto yy401; - if (yych != 'm') goto yy282; + if (yych == 'S') goto yy401; + if (yych != 's') goto yy280; yy401: YYDEBUG(401, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy402; - if (yych != 'e') goto yy282; + if (yych == 'P') goto yy402; + if (yych != 'p') goto yy280; yy402: YYDEBUG(402, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'S') goto yy403; - if (yych != 's') goto yy282; + if (yych == 'A') goto yy403; + if (yych != 'a') goto yy280; yy403: YYDEBUG(403, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'P') goto yy404; - if (yych != 'p') goto yy282; + if (yych == 'C') goto yy404; + if (yych != 'c') goto yy280; yy404: YYDEBUG(404, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'A') goto yy405; - if (yych != 'a') goto yy282; + if (yych == 'E') goto yy405; + if (yych != 'e') goto yy280; yy405: YYDEBUG(405, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'C') goto yy406; - if (yych != 'c') goto yy282; -yy406: + if (yych != '_') goto yy280; YYDEBUG(406, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy407; - if (yych != 'e') goto yy282; -yy407: + if (yych != '_') goto yy280; 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 yy281; + goto yy279; } - YYDEBUG(410, *YYCURSOR); + YYDEBUG(408, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1560 "Zend/zend_language_scanner.l" +#line 1556 "Zend/zend_language_scanner.l" { if (CG(current_namespace)) { *zendlval = *CG(current_namespace); @@ -5001,27 +4991,27 @@ yy407: } return T_NS_C; } -#line 5005 "Zend/zend_language_scanner.c" -yy411: - YYDEBUG(411, *YYCURSOR); +#line 4995 "Zend/zend_language_scanner.c" +yy409: + YYDEBUG(409, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'R') goto yy412; - if (yych != 'r') goto yy282; -yy412: - YYDEBUG(412, *YYCURSOR); + if (yych == 'R') goto yy410; + if (yych != 'r') goto yy280; +yy410: + YYDEBUG(410, *YYCURSOR); yych = *++YYCURSOR; - if (yych != '_') goto yy282; - YYDEBUG(413, *YYCURSOR); + if (yych != '_') goto yy280; + YYDEBUG(411, *YYCURSOR); yych = *++YYCURSOR; - if (yych != '_') goto yy282; - YYDEBUG(414, *YYCURSOR); + if (yych != '_') goto yy280; + YYDEBUG(412, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy281; + goto yy279; } - YYDEBUG(415, *YYCURSOR); + YYDEBUG(413, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1533 "Zend/zend_language_scanner.l" +#line 1529 "Zend/zend_language_scanner.l" { char *filename = zend_get_compiled_filename(TSRMLS_C); const size_t filename_len = strlen(filename); @@ -5048,73 +5038,73 @@ yy412: zendlval->type = IS_STRING; return T_DIR; } -#line 5052 "Zend/zend_language_scanner.c" +#line 5042 "Zend/zend_language_scanner.c" +yy414: + YYDEBUG(414, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'N') goto yy415; + if (yych != 'n') goto yy280; +yy415: + YYDEBUG(415, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy416; + if (yych != 'e') goto yy280; yy416: YYDEBUG(416, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'N') goto yy417; - if (yych != 'n') goto yy282; -yy417: + if (yych != '_') goto yy280; YYDEBUG(417, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy418; - if (yych != 'e') goto yy282; -yy418: + if (yych != '_') goto yy280; 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 yy281; + goto yy279; } - YYDEBUG(421, *YYCURSOR); + YYDEBUG(419, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1515 "Zend/zend_language_scanner.l" +#line 1511 "Zend/zend_language_scanner.l" { zendlval->value.lval = CG(zend_lineno); zendlval->type = IS_LONG; return T_LINE; } -#line 5083 "Zend/zend_language_scanner.c" +#line 5073 "Zend/zend_language_scanner.c" +yy420: + YYDEBUG(420, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'T') goto yy421; + if (yych != 't') goto yy280; +yy421: + YYDEBUG(421, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'H') goto yy422; + if (yych != 'h') goto yy280; yy422: YYDEBUG(422, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'T') goto yy423; - if (yych != 't') goto yy282; + if (yych == 'O') goto yy423; + if (yych != 'o') goto yy280; yy423: YYDEBUG(423, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'H') goto yy424; - if (yych != 'h') goto yy282; + if (yych == 'D') goto yy424; + if (yych != 'd') goto yy280; yy424: YYDEBUG(424, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'O') goto yy425; - if (yych != 'o') goto yy282; -yy425: + if (yych != '_') goto yy280; YYDEBUG(425, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'D') goto yy426; - if (yych != 'd') goto yy282; -yy426: + if (yych != '_') goto yy280; 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 yy281; + goto yy279; } - YYDEBUG(429, *YYCURSOR); + YYDEBUG(427, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1494 "Zend/zend_language_scanner.l" +#line 1490 "Zend/zend_language_scanner.l" { char *class_name = CG(active_class_entry) ? CG(active_class_entry)->name : NULL; char *func_name = CG(active_op_array)? CG(active_op_array)->function_name : NULL; @@ -5135,58 +5125,58 @@ yy426: zendlval->type = IS_STRING; return T_METHOD_C; } -#line 5139 "Zend/zend_language_scanner.c" +#line 5129 "Zend/zend_language_scanner.c" +yy428: + YYDEBUG(428, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'L') goto yy439; + if (yych == 'l') goto yy439; + goto yy280; +yy429: + YYDEBUG(429, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'N') goto yy430; + if (yych != 'n') goto yy280; yy430: YYDEBUG(430, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'L') goto yy441; - if (yych == 'l') goto yy441; - goto yy282; + if (yych == 'C') goto yy431; + if (yych != 'c') goto yy280; yy431: YYDEBUG(431, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'N') goto yy432; - if (yych != 'n') goto yy282; + if (yych == 'T') goto yy432; + if (yych != 't') goto yy280; yy432: YYDEBUG(432, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'C') goto yy433; - if (yych != 'c') goto yy282; + if (yych == 'I') goto yy433; + if (yych != 'i') goto yy280; yy433: YYDEBUG(433, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'T') goto yy434; - if (yych != 't') goto yy282; + if (yych == 'O') goto yy434; + if (yych != 'o') goto yy280; yy434: YYDEBUG(434, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'I') goto yy435; - if (yych != 'i') goto yy282; + if (yych == 'N') goto yy435; + if (yych != 'n') goto yy280; yy435: YYDEBUG(435, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'O') goto yy436; - if (yych != 'o') goto yy282; -yy436: + if (yych != '_') goto yy280; YYDEBUG(436, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'N') goto yy437; - if (yych != 'n') goto yy282; -yy437: + if (yych != '_') goto yy280; 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 yy281; + goto yy279; } - YYDEBUG(440, *YYCURSOR); + YYDEBUG(438, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1478 "Zend/zend_language_scanner.l" +#line 1474 "Zend/zend_language_scanner.l" { char *func_name = NULL; @@ -5202,27 +5192,27 @@ yy437: zendlval->type = IS_STRING; return T_FUNC_C; } -#line 5206 "Zend/zend_language_scanner.c" -yy441: - YYDEBUG(441, *YYCURSOR); +#line 5196 "Zend/zend_language_scanner.c" +yy439: + YYDEBUG(439, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy442; - if (yych != 'e') goto yy282; -yy442: - YYDEBUG(442, *YYCURSOR); + if (yych == 'E') goto yy440; + if (yych != 'e') goto yy280; +yy440: + YYDEBUG(440, *YYCURSOR); yych = *++YYCURSOR; - if (yych != '_') goto yy282; - YYDEBUG(443, *YYCURSOR); + if (yych != '_') goto yy280; + YYDEBUG(441, *YYCURSOR); yych = *++YYCURSOR; - if (yych != '_') goto yy282; - YYDEBUG(444, *YYCURSOR); + if (yych != '_') goto yy280; + YYDEBUG(442, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy281; + goto yy279; } - YYDEBUG(445, *YYCURSOR); + YYDEBUG(443, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1521 "Zend/zend_language_scanner.l" +#line 1517 "Zend/zend_language_scanner.l" { char *filename = zend_get_compiled_filename(TSRMLS_C); @@ -5234,37 +5224,37 @@ yy442: zendlval->type = IS_STRING; return T_FILE; } -#line 5238 "Zend/zend_language_scanner.c" +#line 5228 "Zend/zend_language_scanner.c" +yy444: + YYDEBUG(444, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'A') goto yy445; + if (yych != 'a') goto yy280; +yy445: + YYDEBUG(445, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'S') goto yy446; + if (yych != 's') goto yy280; yy446: YYDEBUG(446, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'A') goto yy447; - if (yych != 'a') goto yy282; + if (yych == 'S') goto yy447; + if (yych != 's') goto yy280; yy447: YYDEBUG(447, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'S') goto yy448; - if (yych != 's') goto yy282; -yy448: + if (yych != '_') goto yy280; YYDEBUG(448, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'S') goto yy449; - if (yych != 's') goto yy282; -yy449: + if (yych != '_') goto yy280; 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 yy281; + goto yy279; } - YYDEBUG(452, *YYCURSOR); + YYDEBUG(450, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1462 "Zend/zend_language_scanner.l" +#line 1458 "Zend/zend_language_scanner.l" { char *class_name = NULL; @@ -5280,746 +5270,756 @@ yy449: zendlval->type = IS_STRING; return T_CLASS_C; } -#line 5284 "Zend/zend_language_scanner.c" +#line 5274 "Zend/zend_language_scanner.c" +yy451: + YYDEBUG(451, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'L') goto yy452; + if (yych != 'l') goto yy280; +yy452: + YYDEBUG(452, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'T') goto yy453; + if (yych != 't') goto yy280; yy453: YYDEBUG(453, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'L') goto yy454; - if (yych != 'l') goto yy282; -yy454: + if (yych != '_') goto yy280; YYDEBUG(454, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'T') goto yy455; - if (yych != 't') goto yy282; + if (yych == 'C') goto yy455; + if (yych != 'c') goto yy280; yy455: YYDEBUG(455, *YYCURSOR); yych = *++YYCURSOR; - if (yych != '_') goto yy282; + if (yych == 'O') goto yy456; + if (yych != 'o') goto yy280; +yy456: YYDEBUG(456, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'C') goto yy457; - if (yych != 'c') goto yy282; + if (yych == 'M') goto yy457; + if (yych != 'm') goto yy280; yy457: YYDEBUG(457, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'O') goto yy458; - if (yych != 'o') goto yy282; + if (yych == 'P') goto yy458; + if (yych != 'p') goto yy280; yy458: YYDEBUG(458, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'M') goto yy459; - if (yych != 'm') goto yy282; + if (yych == 'I') goto yy459; + if (yych != 'i') goto yy280; yy459: YYDEBUG(459, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'P') goto yy460; - if (yych != 'p') goto yy282; + if (yych == 'L') goto yy460; + if (yych != 'l') goto yy280; yy460: YYDEBUG(460, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'I') goto yy461; - if (yych != 'i') goto yy282; + if (yych == 'E') goto yy461; + if (yych != 'e') goto yy280; yy461: YYDEBUG(461, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'L') goto yy462; - if (yych != 'l') goto yy282; + if (yych == 'R') goto yy462; + if (yych != 'r') goto yy280; 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 yy281; + goto yy279; } - YYDEBUG(465, *YYCURSOR); + YYDEBUG(463, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1204 "Zend/zend_language_scanner.l" +#line 1200 "Zend/zend_language_scanner.l" { return T_HALT_COMPILER; } -#line 5350 "Zend/zend_language_scanner.c" -yy466: - YYDEBUG(466, *YYCURSOR); +#line 5340 "Zend/zend_language_scanner.c" +yy464: + YYDEBUG(464, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'S') goto yy470; - if (yych == 's') goto yy470; - goto yy282; -yy467: - YYDEBUG(467, *YYCURSOR); + if (yych == 'S') goto yy468; + if (yych == 's') goto yy468; + goto yy280; +yy465: + YYDEBUG(465, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy468; - if (yych != 'e') goto yy282; -yy468: - YYDEBUG(468, *YYCURSOR); + if (yych == 'E') goto yy466; + if (yych != 'e') goto yy280; +yy466: + YYDEBUG(466, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy281; + goto yy279; } - YYDEBUG(469, *YYCURSOR); + YYDEBUG(467, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1188 "Zend/zend_language_scanner.l" +#line 1184 "Zend/zend_language_scanner.l" { return T_USE; } -#line 5374 "Zend/zend_language_scanner.c" -yy470: - YYDEBUG(470, *YYCURSOR); +#line 5364 "Zend/zend_language_scanner.c" +yy468: + YYDEBUG(468, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy471; - if (yych != 'e') goto yy282; -yy471: - YYDEBUG(471, *YYCURSOR); + if (yych == 'E') goto yy469; + if (yych != 'e') goto yy280; +yy469: + YYDEBUG(469, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'T') goto yy472; - if (yych != 't') goto yy282; -yy472: - YYDEBUG(472, *YYCURSOR); + if (yych == 'T') goto yy470; + if (yych != 't') goto yy280; +yy470: + YYDEBUG(470, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy281; + goto yy279; } - YYDEBUG(473, *YYCURSOR); + YYDEBUG(471, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1232 "Zend/zend_language_scanner.l" +#line 1228 "Zend/zend_language_scanner.l" { return T_UNSET; } -#line 5397 "Zend/zend_language_scanner.c" -yy474: - YYDEBUG(474, *YYCURSOR); +#line 5387 "Zend/zend_language_scanner.c" +yy472: + YYDEBUG(472, *YYCURSOR); ++YYCURSOR; YYFILL(7); yych = *YYCURSOR; -yy475: - YYDEBUG(475, *YYCURSOR); +yy473: + YYDEBUG(473, *YYCURSOR); if (yych <= 'S') { if (yych <= 'D') { if (yych <= ' ') { - if (yych == '\t') goto yy474; - if (yych <= 0x1F) goto yy272; - goto yy474; + if (yych == '\t') goto yy472; + if (yych <= 0x1F) goto yy270; + goto yy472; } else { if (yych <= 'A') { - if (yych <= '@') goto yy272; - goto yy479; + if (yych <= '@') goto yy270; + goto yy477; } else { - if (yych <= 'B') goto yy477; - if (yych <= 'C') goto yy272; - goto yy482; + if (yych <= 'B') goto yy475; + if (yych <= 'C') goto yy270; + goto yy480; } } } else { if (yych <= 'I') { - if (yych == 'F') goto yy483; - if (yych <= 'H') goto yy272; - goto yy484; + if (yych == 'F') goto yy481; + if (yych <= 'H') goto yy270; + goto yy482; } else { if (yych <= 'O') { - if (yych <= 'N') goto yy272; - goto yy478; + if (yych <= 'N') goto yy270; + goto yy476; } else { - if (yych <= 'Q') goto yy272; - if (yych <= 'R') goto yy481; - goto yy480; + if (yych <= 'Q') goto yy270; + if (yych <= 'R') goto yy479; + goto yy478; } } } } else { if (yych <= 'f') { if (yych <= 'a') { - if (yych == 'U') goto yy476; - if (yych <= '`') goto yy272; - goto yy479; + if (yych == 'U') goto yy474; + if (yych <= '`') goto yy270; + goto yy477; } else { if (yych <= 'c') { - if (yych <= 'b') goto yy477; - goto yy272; + if (yych <= 'b') goto yy475; + goto yy270; } else { - if (yych <= 'd') goto yy482; - if (yych <= 'e') goto yy272; - goto yy483; + if (yych <= 'd') goto yy480; + if (yych <= 'e') goto yy270; + goto yy481; } } } else { if (yych <= 'q') { if (yych <= 'i') { - if (yych <= 'h') goto yy272; - goto yy484; + if (yych <= 'h') goto yy270; + goto yy482; } else { - if (yych == 'o') goto yy478; - goto yy272; + if (yych == 'o') goto yy476; + goto yy270; } } else { if (yych <= 's') { - if (yych <= 'r') goto yy481; - goto yy480; + if (yych <= 'r') goto yy479; + goto yy478; } else { - if (yych != 'u') goto yy272; + if (yych != 'u') goto yy270; } } } } -yy476: - YYDEBUG(476, *YYCURSOR); +yy474: + YYDEBUG(474, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'N') goto yy547; - if (yych == 'n') goto yy547; - goto yy272; -yy477: - YYDEBUG(477, *YYCURSOR); + if (yych == 'N') goto yy545; + if (yych == 'n') goto yy545; + goto yy270; +yy475: + YYDEBUG(475, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'O') { - if (yych == 'I') goto yy530; - if (yych <= 'N') goto yy272; - goto yy531; + if (yych == 'I') goto yy528; + if (yych <= 'N') goto yy270; + goto yy529; } else { if (yych <= 'i') { - if (yych <= 'h') goto yy272; - goto yy530; + if (yych <= 'h') goto yy270; + goto yy528; } else { - if (yych == 'o') goto yy531; - goto yy272; + if (yych == 'o') goto yy529; + goto yy270; } } +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 == 'B') goto yy522; - if (yych == 'b') goto yy522; - goto yy272; + if (yych == 'T') goto yy505; + if (yych == 't') goto yy505; + goto yy270; yy479: YYDEBUG(479, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'R') goto yy515; - if (yych == 'r') goto yy515; - goto yy272; + if (yych == 'E') goto yy503; + if (yych == 'e') goto yy503; + goto yy270; yy480: YYDEBUG(480, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'T') goto yy507; - if (yych == 't') goto yy507; - goto yy272; + if (yych == 'O') goto yy499; + if (yych == 'o') goto yy499; + goto yy270; yy481: YYDEBUG(481, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy505; - if (yych == 'e') goto yy505; - goto yy272; + if (yych == 'L') goto yy492; + if (yych == 'l') goto yy492; + goto yy270; yy482: YYDEBUG(482, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'O') goto yy501; - if (yych == 'o') goto yy501; - goto yy272; + if (yych == 'N') goto yy483; + if (yych != 'n') goto yy270; yy483: YYDEBUG(483, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'L') goto yy494; - if (yych == 'l') goto yy494; - goto yy272; + if (yych == 'T') goto yy484; + if (yych != 't') goto yy270; yy484: YYDEBUG(484, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'N') goto yy485; - if (yych != 'n') goto yy272; + if (yych == 'E') goto yy485; + if (yych != 'e') goto yy487; yy485: YYDEBUG(485, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'T') goto yy486; - if (yych != 't') goto yy272; + if (yych == 'G') goto yy490; + if (yych == 'g') goto yy490; + goto yy270; 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; -yy489: - YYDEBUG(489, *YYCURSOR); +yy487: + YYDEBUG(487, *YYCURSOR); if (yych <= 0x1F) { - if (yych == '\t') goto yy488; - goto yy272; + if (yych == '\t') goto yy486; + goto yy270; } else { - if (yych <= ' ') goto yy488; - if (yych != ')') goto yy272; + if (yych <= ' ') goto yy486; + if (yych != ')') goto yy270; } - YYDEBUG(490, *YYCURSOR); + YYDEBUG(488, *YYCURSOR); ++YYCURSOR; - YYDEBUG(491, *YYCURSOR); + YYDEBUG(489, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1132 "Zend/zend_language_scanner.l" +#line 1128 "Zend/zend_language_scanner.l" { return T_INT_CAST; } -#line 5573 "Zend/zend_language_scanner.c" +#line 5563 "Zend/zend_language_scanner.c" +yy490: + YYDEBUG(490, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy491; + if (yych != 'e') goto yy270; +yy491: + YYDEBUG(491, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'R') goto yy486; + if (yych == 'r') goto yy486; + goto yy270; yy492: YYDEBUG(492, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy493; - if (yych != 'e') goto yy272; + if (yych == 'O') goto yy493; + if (yych != 'o') goto yy270; yy493: YYDEBUG(493, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'R') goto yy488; - if (yych == 'r') goto yy488; - goto yy272; + if (yych == 'A') goto yy494; + if (yych != 'a') goto yy270; yy494: YYDEBUG(494, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'O') goto yy495; - if (yych != 'o') goto yy272; + if (yych == 'T') goto yy495; + if (yych != 't') goto yy270; 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(498, *YYCURSOR); + YYDEBUG(496, *YYCURSOR); if (yych <= 0x1F) { - if (yych == '\t') goto yy497; - goto yy272; + if (yych == '\t') goto yy495; + goto yy270; } else { - if (yych <= ' ') goto yy497; - if (yych != ')') goto yy272; + if (yych <= ' ') goto yy495; + if (yych != ')') goto yy270; } - YYDEBUG(499, *YYCURSOR); + YYDEBUG(497, *YYCURSOR); ++YYCURSOR; - YYDEBUG(500, *YYCURSOR); + YYDEBUG(498, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1136 "Zend/zend_language_scanner.l" +#line 1132 "Zend/zend_language_scanner.l" { return T_DOUBLE_CAST; } -#line 5621 "Zend/zend_language_scanner.c" +#line 5611 "Zend/zend_language_scanner.c" +yy499: + YYDEBUG(499, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'U') goto yy500; + if (yych != 'u') goto yy270; +yy500: + YYDEBUG(500, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'B') goto yy501; + if (yych != 'b') goto yy270; yy501: YYDEBUG(501, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'U') goto yy502; - if (yych != 'u') goto yy272; + if (yych == 'L') goto yy502; + if (yych != 'l') goto yy270; yy502: YYDEBUG(502, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'B') goto yy503; - if (yych != 'b') goto yy272; + if (yych == 'E') goto yy495; + if (yych == 'e') goto yy495; + goto yy270; yy503: YYDEBUG(503, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'L') goto yy504; - if (yych != 'l') goto yy272; + if (yych == 'A') goto yy504; + if (yych != 'a') goto yy270; yy504: YYDEBUG(504, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy497; - if (yych == 'e') goto yy497; - goto yy272; + if (yych == 'L') goto yy495; + if (yych == 'l') goto yy495; + goto yy270; yy505: YYDEBUG(505, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'A') goto yy506; - if (yych != 'a') goto yy272; + if (yych == 'R') goto yy506; + if (yych != 'r') goto yy270; yy506: YYDEBUG(506, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'L') goto yy497; - if (yych == 'l') goto yy497; - goto yy272; + if (yych == 'I') goto yy507; + if (yych != 'i') goto yy270; yy507: YYDEBUG(507, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'R') goto yy508; - if (yych != 'r') goto yy272; + if (yych == 'N') goto yy508; + if (yych != 'n') goto yy270; yy508: YYDEBUG(508, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'I') goto yy509; - if (yych != 'i') goto yy272; + if (yych == 'G') goto yy509; + if (yych != 'g') goto yy270; 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(512, *YYCURSOR); + YYDEBUG(510, *YYCURSOR); if (yych <= 0x1F) { - if (yych == '\t') goto yy511; - goto yy272; + if (yych == '\t') goto yy509; + goto yy270; } else { - if (yych <= ' ') goto yy511; - if (yych != ')') goto yy272; + if (yych <= ' ') goto yy509; + if (yych != ')') goto yy270; } - YYDEBUG(513, *YYCURSOR); + YYDEBUG(511, *YYCURSOR); ++YYCURSOR; - YYDEBUG(514, *YYCURSOR); + YYDEBUG(512, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1140 "Zend/zend_language_scanner.l" +#line 1136 "Zend/zend_language_scanner.l" { return T_STRING_CAST; } -#line 5695 "Zend/zend_language_scanner.c" +#line 5685 "Zend/zend_language_scanner.c" +yy513: + YYDEBUG(513, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'R') goto yy514; + if (yych != 'r') goto yy270; +yy514: + YYDEBUG(514, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'A') goto yy515; + if (yych != 'a') goto yy270; yy515: YYDEBUG(515, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'R') goto yy516; - if (yych != 'r') goto yy272; + if (yych == 'Y') goto yy516; + if (yych != 'y') goto yy270; 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(519, *YYCURSOR); + YYDEBUG(517, *YYCURSOR); if (yych <= 0x1F) { - if (yych == '\t') goto yy518; - goto yy272; + if (yych == '\t') goto yy516; + goto yy270; } else { - if (yych <= ' ') goto yy518; - if (yych != ')') goto yy272; + if (yych <= ' ') goto yy516; + if (yych != ')') goto yy270; } - YYDEBUG(520, *YYCURSOR); + YYDEBUG(518, *YYCURSOR); ++YYCURSOR; - YYDEBUG(521, *YYCURSOR); + YYDEBUG(519, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1148 "Zend/zend_language_scanner.l" +#line 1144 "Zend/zend_language_scanner.l" { return T_ARRAY_CAST; } -#line 5732 "Zend/zend_language_scanner.c" +#line 5722 "Zend/zend_language_scanner.c" +yy520: + YYDEBUG(520, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'J') goto yy521; + if (yych != 'j') goto yy270; +yy521: + YYDEBUG(521, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy522; + if (yych != 'e') goto yy270; yy522: YYDEBUG(522, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'J') goto yy523; - if (yych != 'j') goto yy272; + if (yych == 'C') goto yy523; + if (yych != 'c') goto yy270; yy523: YYDEBUG(523, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy524; - if (yych != 'e') goto yy272; + if (yych == 'T') goto yy524; + if (yych != 't') goto yy270; 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(527, *YYCURSOR); + YYDEBUG(525, *YYCURSOR); if (yych <= 0x1F) { - if (yych == '\t') goto yy526; - goto yy272; + if (yych == '\t') goto yy524; + goto yy270; } else { - if (yych <= ' ') goto yy526; - if (yych != ')') goto yy272; + if (yych <= ' ') goto yy524; + if (yych != ')') goto yy270; } - YYDEBUG(528, *YYCURSOR); + YYDEBUG(526, *YYCURSOR); ++YYCURSOR; - YYDEBUG(529, *YYCURSOR); + YYDEBUG(527, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1152 "Zend/zend_language_scanner.l" +#line 1148 "Zend/zend_language_scanner.l" { return T_OBJECT_CAST; } -#line 5774 "Zend/zend_language_scanner.c" +#line 5764 "Zend/zend_language_scanner.c" +yy528: + YYDEBUG(528, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'N') goto yy538; + if (yych == 'n') goto yy538; + goto yy270; +yy529: + YYDEBUG(529, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'O') goto yy530; + if (yych != 'o') goto yy270; yy530: YYDEBUG(530, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'N') goto yy540; - if (yych == 'n') goto yy540; - goto yy272; + if (yych == 'L') goto yy531; + if (yych != 'l') goto yy270; yy531: YYDEBUG(531, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'O') goto yy532; - if (yych != 'o') goto yy272; + if (yych == 'E') goto yy536; + if (yych == 'e') goto yy536; + goto yy533; 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; -yy535: - YYDEBUG(535, *YYCURSOR); +yy533: + YYDEBUG(533, *YYCURSOR); if (yych <= 0x1F) { - if (yych == '\t') goto yy534; - goto yy272; + if (yych == '\t') goto yy532; + goto yy270; } else { - if (yych <= ' ') goto yy534; - if (yych != ')') goto yy272; + if (yych <= ' ') goto yy532; + if (yych != ')') goto yy270; } - YYDEBUG(536, *YYCURSOR); + YYDEBUG(534, *YYCURSOR); ++YYCURSOR; - YYDEBUG(537, *YYCURSOR); + YYDEBUG(535, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1156 "Zend/zend_language_scanner.l" +#line 1152 "Zend/zend_language_scanner.l" { return T_BOOL_CAST; } -#line 5819 "Zend/zend_language_scanner.c" +#line 5809 "Zend/zend_language_scanner.c" +yy536: + YYDEBUG(536, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'A') goto yy537; + if (yych != 'a') goto yy270; +yy537: + YYDEBUG(537, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'N') goto yy532; + if (yych == 'n') goto yy532; + goto yy270; yy538: YYDEBUG(538, *YYCURSOR); yych = *++YYCURSOR; if (yych == 'A') goto yy539; - if (yych != 'a') goto yy272; + if (yych != 'a') goto yy270; yy539: YYDEBUG(539, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'N') goto yy534; - if (yych == 'n') goto yy534; - goto yy272; + if (yych == 'R') goto yy540; + if (yych != 'r') goto yy270; yy540: YYDEBUG(540, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'A') goto yy541; - if (yych != 'a') goto yy272; + if (yych == 'Y') goto yy541; + if (yych != 'y') goto yy270; 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(544, *YYCURSOR); + YYDEBUG(542, *YYCURSOR); if (yych <= 0x1F) { - if (yych == '\t') goto yy543; - goto yy272; + if (yych == '\t') goto yy541; + goto yy270; } else { - if (yych <= ' ') goto yy543; - if (yych != ')') goto yy272; + if (yych <= ' ') goto yy541; + if (yych != ')') goto yy270; } - YYDEBUG(545, *YYCURSOR); + YYDEBUG(543, *YYCURSOR); ++YYCURSOR; - YYDEBUG(546, *YYCURSOR); + YYDEBUG(544, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1144 "Zend/zend_language_scanner.l" +#line 1140 "Zend/zend_language_scanner.l" { return T_STRING_CAST; } -#line 5867 "Zend/zend_language_scanner.c" +#line 5857 "Zend/zend_language_scanner.c" +yy545: + YYDEBUG(545, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'S') goto yy546; + if (yych != 's') goto yy270; +yy546: + YYDEBUG(546, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy547; + if (yych != 'e') goto yy270; yy547: YYDEBUG(547, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'S') goto yy548; - if (yych != 's') goto yy272; + if (yych == 'T') goto yy548; + if (yych != 't') goto yy270; yy548: YYDEBUG(548, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy549; - if (yych != 'e') goto yy272; -yy549: - YYDEBUG(549, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'T') goto yy550; - if (yych != 't') goto yy272; -yy550: - YYDEBUG(550, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - YYDEBUG(551, *YYCURSOR); + YYDEBUG(549, *YYCURSOR); if (yych <= 0x1F) { - if (yych == '\t') goto yy550; - goto yy272; + if (yych == '\t') goto yy548; + goto yy270; } else { - if (yych <= ' ') goto yy550; - if (yych != ')') goto yy272; + if (yych <= ' ') goto yy548; + if (yych != ')') goto yy270; } - YYDEBUG(552, *YYCURSOR); + YYDEBUG(550, *YYCURSOR); ++YYCURSOR; - YYDEBUG(553, *YYCURSOR); + YYDEBUG(551, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1160 "Zend/zend_language_scanner.l" +#line 1156 "Zend/zend_language_scanner.l" { return T_UNSET_CAST; } -#line 5904 "Zend/zend_language_scanner.c" -yy554: - YYDEBUG(554, *YYCURSOR); +#line 5894 "Zend/zend_language_scanner.c" +yy552: + YYDEBUG(552, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'R') goto yy555; - if (yych != 'r') goto yy282; -yy555: - YYDEBUG(555, *YYCURSOR); + if (yych == 'R') goto yy553; + if (yych != 'r') goto yy280; +yy553: + YYDEBUG(553, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy281; + goto yy279; } - YYDEBUG(556, *YYCURSOR); + YYDEBUG(554, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1128 "Zend/zend_language_scanner.l" +#line 1124 "Zend/zend_language_scanner.l" { return T_VAR; } -#line 5922 "Zend/zend_language_scanner.c" -yy557: - YYDEBUG(557, *YYCURSOR); +#line 5912 "Zend/zend_language_scanner.c" +yy555: + YYDEBUG(555, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'M') goto yy561; - if (yych == 'm') goto yy561; - goto yy282; -yy558: - YYDEBUG(558, *YYCURSOR); + if (yych == 'M') goto yy559; + if (yych == 'm') goto yy559; + goto yy280; +yy556: + YYDEBUG(556, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'W') goto yy559; - if (yych != 'w') goto yy282; -yy559: - YYDEBUG(559, *YYCURSOR); + if (yych == 'W') goto yy557; + if (yych != 'w') goto yy280; +yy557: + YYDEBUG(557, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy281; + goto yy279; } - YYDEBUG(560, *YYCURSOR); + YYDEBUG(558, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1120 "Zend/zend_language_scanner.l" +#line 1116 "Zend/zend_language_scanner.l" { return T_NEW; } -#line 5946 "Zend/zend_language_scanner.c" +#line 5936 "Zend/zend_language_scanner.c" +yy559: + YYDEBUG(559, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy560; + if (yych != 'e') goto yy280; +yy560: + YYDEBUG(560, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'S') goto yy561; + if (yych != 's') goto yy280; yy561: YYDEBUG(561, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy562; - if (yych != 'e') goto yy282; + if (yych == 'P') goto yy562; + if (yych != 'p') goto yy280; yy562: YYDEBUG(562, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'S') goto yy563; - if (yych != 's') goto yy282; + if (yych == 'A') goto yy563; + if (yych != 'a') goto yy280; yy563: YYDEBUG(563, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'P') goto yy564; - if (yych != 'p') goto yy282; + if (yych == 'C') goto yy564; + if (yych != 'c') goto yy280; yy564: YYDEBUG(564, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'A') goto yy565; - if (yych != 'a') goto yy282; + if (yych == 'E') goto yy565; + if (yych != 'e') goto yy280; yy565: YYDEBUG(565, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'C') goto yy566; - if (yych != 'c') goto yy282; -yy566: - YYDEBUG(566, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy567; - if (yych != 'e') goto yy282; -yy567: - YYDEBUG(567, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy281; + goto yy279; } - YYDEBUG(568, *YYCURSOR); + YYDEBUG(566, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1184 "Zend/zend_language_scanner.l" +#line 1180 "Zend/zend_language_scanner.l" { return T_NAMESPACE; } -#line 5989 "Zend/zend_language_scanner.c" -yy569: - YYDEBUG(569, *YYCURSOR); +#line 5979 "Zend/zend_language_scanner.c" +yy567: + YYDEBUG(567, *YYCURSOR); ++YYCURSOR; - YYDEBUG(570, *YYCURSOR); + YYDEBUG(568, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); #line 1112 "Zend/zend_language_scanner.l" { return T_PAAMAYIM_NEKUDOTAYIM; } -#line 5999 "Zend/zend_language_scanner.c" -yy571: - YYDEBUG(571, *YYCURSOR); +#line 5989 "Zend/zend_language_scanner.c" +yy569: + YYDEBUG(569, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; -yy572: - YYDEBUG(572, *YYCURSOR); +yy570: + YYDEBUG(570, *YYCURSOR); if (yych <= '\f') { if (yych <= 0x08) goto yy221; - if (yych <= '\n') goto yy571; + if (yych <= '\n') goto yy569; goto yy221; } else { - if (yych <= '\r') goto yy571; - if (yych == ' ') goto yy571; + if (yych <= '\r') goto yy569; + if (yych == ' ') goto yy569; goto yy221; } +yy571: + YYDEBUG(571, *YYCURSOR); + ++YYCURSOR; + YYDEBUG(572, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 1280 "Zend/zend_language_scanner.l" + { + return T_MINUS_EQUAL; +} +#line 6015 "Zend/zend_language_scanner.c" yy573: YYDEBUG(573, *YYCURSOR); ++YYCURSOR; YYDEBUG(574, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1284 "Zend/zend_language_scanner.l" +#line 1248 "Zend/zend_language_scanner.l" { - return T_MINUS_EQUAL; + return T_DEC; } #line 6025 "Zend/zend_language_scanner.c" yy575: @@ -6027,1796 +6027,1786 @@ yy575: ++YYCURSOR; YYDEBUG(576, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1252 "Zend/zend_language_scanner.l" - { - return T_DEC; -} -#line 6035 "Zend/zend_language_scanner.c" -yy577: - YYDEBUG(577, *YYCURSOR); - ++YYCURSOR; - YYDEBUG(578, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); #line 1082 "Zend/zend_language_scanner.l" { yy_push_state(ST_LOOKING_FOR_PROPERTY TSRMLS_CC); return T_OBJECT_OPERATOR; } -#line 6046 "Zend/zend_language_scanner.c" -yy579: - YYDEBUG(579, *YYCURSOR); +#line 6036 "Zend/zend_language_scanner.c" +yy577: + YYDEBUG(577, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'O') { - if (yych == 'I') goto yy586; - if (yych <= 'N') goto yy282; - goto yy587; + if (yych == 'I') goto yy584; + if (yych <= 'N') goto yy280; + goto yy585; } else { if (yych <= 'i') { - if (yych <= 'h') goto yy282; - goto yy586; + if (yych <= 'h') goto yy280; + goto yy584; } else { - if (yych == 'o') goto yy587; - goto yy282; + if (yych == 'o') goto yy585; + goto yy280; } } +yy578: + YYDEBUG(578, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'B') goto yy579; + if (yych != 'b') goto yy280; +yy579: + YYDEBUG(579, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'L') goto yy580; + if (yych != 'l') goto yy280; yy580: YYDEBUG(580, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'B') goto yy581; - if (yych != 'b') goto yy282; + if (yych == 'I') goto yy581; + if (yych != 'i') goto yy280; yy581: YYDEBUG(581, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'L') goto yy582; - if (yych != 'l') goto yy282; + if (yych == 'C') goto yy582; + if (yych != 'c') goto yy280; yy582: YYDEBUG(582, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'I') goto yy583; - if (yych != 'i') goto yy282; -yy583: - YYDEBUG(583, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'C') goto yy584; - if (yych != 'c') goto yy282; -yy584: - YYDEBUG(584, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy281; + goto yy279; } - YYDEBUG(585, *YYCURSOR); + YYDEBUG(583, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1228 "Zend/zend_language_scanner.l" +#line 1224 "Zend/zend_language_scanner.l" { return T_PUBLIC; } -#line 6095 "Zend/zend_language_scanner.c" -yy586: - YYDEBUG(586, *YYCURSOR); +#line 6085 "Zend/zend_language_scanner.c" +yy584: + YYDEBUG(584, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'V') { - if (yych == 'N') goto yy595; - if (yych <= 'U') goto yy282; - goto yy596; + if (yych == 'N') goto yy593; + if (yych <= 'U') goto yy280; + goto yy594; } else { if (yych <= 'n') { - if (yych <= 'm') goto yy282; - goto yy595; + if (yych <= 'm') goto yy280; + goto yy593; } else { - if (yych == 'v') goto yy596; - goto yy282; + if (yych == 'v') goto yy594; + goto yy280; } } +yy585: + YYDEBUG(585, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'T') goto yy586; + if (yych != 't') goto yy280; +yy586: + YYDEBUG(586, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy587; + if (yych != 'e') goto yy280; yy587: YYDEBUG(587, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'T') goto yy588; - if (yych != 't') goto yy282; + if (yych == 'C') goto yy588; + if (yych != 'c') goto yy280; yy588: YYDEBUG(588, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy589; - if (yych != 'e') goto yy282; + if (yych == 'T') goto yy589; + if (yych != 't') goto yy280; yy589: YYDEBUG(589, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'C') goto yy590; - if (yych != 'c') goto yy282; + if (yych == 'E') goto yy590; + if (yych != 'e') goto yy280; yy590: YYDEBUG(590, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'T') goto yy591; - if (yych != 't') goto yy282; + if (yych == 'D') goto yy591; + if (yych != 'd') goto yy280; yy591: YYDEBUG(591, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy592; - if (yych != 'e') goto yy282; -yy592: - YYDEBUG(592, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'D') goto yy593; - if (yych != 'd') goto yy282; -yy593: - YYDEBUG(593, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy281; + goto yy279; } - YYDEBUG(594, *YYCURSOR); + YYDEBUG(592, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1224 "Zend/zend_language_scanner.l" +#line 1220 "Zend/zend_language_scanner.l" { return T_PROTECTED; } -#line 6154 "Zend/zend_language_scanner.c" +#line 6144 "Zend/zend_language_scanner.c" +yy593: + YYDEBUG(593, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'T') goto yy599; + if (yych == 't') goto yy599; + goto yy280; +yy594: + YYDEBUG(594, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'A') goto yy595; + if (yych != 'a') goto yy280; yy595: YYDEBUG(595, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'T') goto yy601; - if (yych == 't') goto yy601; - goto yy282; + if (yych == 'T') goto yy596; + if (yych != 't') goto yy280; yy596: YYDEBUG(596, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'A') goto yy597; - if (yych != 'a') goto yy282; + if (yych == 'E') goto yy597; + if (yych != 'e') goto yy280; yy597: YYDEBUG(597, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'T') goto yy598; - if (yych != 't') goto yy282; -yy598: - YYDEBUG(598, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy599; - if (yych != 'e') goto yy282; -yy599: - YYDEBUG(599, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy281; + goto yy279; } - YYDEBUG(600, *YYCURSOR); + YYDEBUG(598, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1220 "Zend/zend_language_scanner.l" +#line 1216 "Zend/zend_language_scanner.l" { return T_PRIVATE; } -#line 6188 "Zend/zend_language_scanner.c" -yy601: - YYDEBUG(601, *YYCURSOR); +#line 6178 "Zend/zend_language_scanner.c" +yy599: + YYDEBUG(599, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy281; + goto yy279; } - YYDEBUG(602, *YYCURSOR); + YYDEBUG(600, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); #line 1062 "Zend/zend_language_scanner.l" { return T_PRINT; } -#line 6201 "Zend/zend_language_scanner.c" +#line 6191 "Zend/zend_language_scanner.c" +yy601: + YYDEBUG(601, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'O') goto yy606; + if (yych == 'o') goto yy606; + goto yy280; +yy602: + YYDEBUG(602, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'T') goto yy603; + if (yych != 't') goto yy280; yy603: YYDEBUG(603, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'O') goto yy608; - if (yych == 'o') goto yy608; - goto yy282; + if (yych == 'O') goto yy604; + if (yych != 'o') goto yy280; yy604: YYDEBUG(604, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'T') goto yy605; - if (yych != 't') goto yy282; -yy605: - YYDEBUG(605, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'O') goto yy606; - if (yych != 'o') goto yy282; -yy606: - YYDEBUG(606, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy281; + goto yy279; } - YYDEBUG(607, *YYCURSOR); + YYDEBUG(605, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); #line 1054 "Zend/zend_language_scanner.l" { return T_GOTO; } -#line 6230 "Zend/zend_language_scanner.c" +#line 6220 "Zend/zend_language_scanner.c" +yy606: + YYDEBUG(606, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'B') goto yy607; + if (yych != 'b') goto yy280; +yy607: + YYDEBUG(607, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'A') goto yy608; + if (yych != 'a') goto yy280; yy608: YYDEBUG(608, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'B') goto yy609; - if (yych != 'b') goto yy282; + if (yych == 'L') goto yy609; + if (yych != 'l') goto yy280; yy609: YYDEBUG(609, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'A') goto yy610; - if (yych != 'a') goto yy282; -yy610: - YYDEBUG(610, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'L') goto yy611; - if (yych != 'l') goto yy282; -yy611: - YYDEBUG(611, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy281; + goto yy279; } - YYDEBUG(612, *YYCURSOR); + YYDEBUG(610, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1192 "Zend/zend_language_scanner.l" +#line 1188 "Zend/zend_language_scanner.l" { return T_GLOBAL; } -#line 6258 "Zend/zend_language_scanner.c" +#line 6248 "Zend/zend_language_scanner.c" +yy611: + YYDEBUG(611, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == '<') goto yy618; + goto yy270; +yy612: + YYDEBUG(612, *YYCURSOR); + yyaccept = 3; + yych = *(YYMARKER = ++YYCURSOR); + goto yy272; yy613: YYDEBUG(613, *YYCURSOR); yych = *++YYCURSOR; - if (yych == '<') goto yy620; - goto yy272; + if (yych == 'E') goto yy614; + if (yych != 'e') goto yy280; yy614: YYDEBUG(614, *YYCURSOR); - yyaccept = 3; - yych = *(YYMARKER = ++YYCURSOR); - goto yy274; + yych = *++YYCURSOR; + if (yych == 'A') goto yy615; + if (yych != 'a') goto yy280; yy615: YYDEBUG(615, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy616; - if (yych != 'e') goto yy282; + if (yych == 'K') goto yy616; + if (yych != 'k') goto yy280; yy616: YYDEBUG(616, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'A') goto yy617; - if (yych != 'a') goto yy282; -yy617: - YYDEBUG(617, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'K') goto yy618; - if (yych != 'k') goto yy282; -yy618: - YYDEBUG(618, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy281; + goto yy279; } - YYDEBUG(619, *YYCURSOR); + YYDEBUG(617, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); #line 1046 "Zend/zend_language_scanner.l" { return T_BREAK; } -#line 6296 "Zend/zend_language_scanner.c" +#line 6286 "Zend/zend_language_scanner.c" +yy618: + YYDEBUG(618, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == '<') goto yy359; + goto yy270; +yy619: + YYDEBUG(619, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'A') goto yy626; + if (yych == 'a') goto yy626; + goto yy280; yy620: YYDEBUG(620, *YYCURSOR); yych = *++YYCURSOR; - if (yych == '<') goto yy361; - goto yy272; + if (yych == 'I') goto yy621; + if (yych != 'i') goto yy280; yy621: YYDEBUG(621, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'A') goto yy628; - if (yych == 'a') goto yy628; - goto yy282; + if (yych == 'T') goto yy622; + if (yych != 't') goto yy280; yy622: YYDEBUG(622, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'I') goto yy623; - if (yych != 'i') goto yy282; + if (yych == 'C') goto yy623; + if (yych != 'c') goto yy280; yy623: YYDEBUG(623, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'T') goto yy624; - if (yych != 't') goto yy282; + if (yych == 'H') goto yy624; + if (yych != 'h') goto yy280; yy624: YYDEBUG(624, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'C') goto yy625; - if (yych != 'c') goto yy282; -yy625: - YYDEBUG(625, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'H') goto yy626; - if (yych != 'h') goto yy282; -yy626: - YYDEBUG(626, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy281; + goto yy279; } - YYDEBUG(627, *YYCURSOR); + YYDEBUG(625, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); #line 1030 "Zend/zend_language_scanner.l" { return T_SWITCH; } -#line 6340 "Zend/zend_language_scanner.c" +#line 6330 "Zend/zend_language_scanner.c" +yy626: + YYDEBUG(626, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'T') goto yy627; + if (yych != 't') goto yy280; +yy627: + YYDEBUG(627, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'I') goto yy628; + if (yych != 'i') goto yy280; yy628: YYDEBUG(628, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'T') goto yy629; - if (yych != 't') goto yy282; + if (yych == 'C') goto yy629; + if (yych != 'c') goto yy280; yy629: YYDEBUG(629, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'I') goto yy630; - if (yych != 'i') goto yy282; -yy630: - YYDEBUG(630, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'C') goto yy631; - if (yych != 'c') goto yy282; -yy631: - YYDEBUG(631, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy281; + goto yy279; } - YYDEBUG(632, *YYCURSOR); + YYDEBUG(630, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1208 "Zend/zend_language_scanner.l" +#line 1204 "Zend/zend_language_scanner.l" { return T_STATIC; } -#line 6368 "Zend/zend_language_scanner.c" +#line 6358 "Zend/zend_language_scanner.c" +yy631: + YYDEBUG(631, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'S') goto yy642; + if (yych == 's') goto yy642; + goto yy280; +yy632: + YYDEBUG(632, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'D') goto yy640; + if (yych == 'd') goto yy640; + goto yy280; yy633: YYDEBUG(633, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'S') goto yy644; - if (yych == 's') goto yy644; - goto yy282; + if (yych == 'R') goto yy636; + if (yych == 'r') goto yy636; + goto yy280; yy634: YYDEBUG(634, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'D') goto yy642; - if (yych == 'd') goto yy642; - goto yy282; -yy635: - YYDEBUG(635, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'R') goto yy638; - if (yych == 'r') goto yy638; - goto yy282; -yy636: - YYDEBUG(636, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy281; + goto yy279; } - YYDEBUG(637, *YYCURSOR); + YYDEBUG(635, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); #line 1026 "Zend/zend_language_scanner.l" { return T_AS; } -#line 6399 "Zend/zend_language_scanner.c" -yy638: - YYDEBUG(638, *YYCURSOR); +#line 6389 "Zend/zend_language_scanner.c" +yy636: + YYDEBUG(636, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'A') goto yy639; - if (yych != 'a') goto yy282; -yy639: - YYDEBUG(639, *YYCURSOR); + if (yych == 'A') goto yy637; + if (yych != 'a') goto yy280; +yy637: + YYDEBUG(637, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'Y') goto yy640; - if (yych != 'y') goto yy282; -yy640: - YYDEBUG(640, *YYCURSOR); + if (yych == 'Y') goto yy638; + if (yych != 'y') goto yy280; +yy638: + YYDEBUG(638, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy281; + goto yy279; } - YYDEBUG(641, *YYCURSOR); + YYDEBUG(639, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1244 "Zend/zend_language_scanner.l" +#line 1240 "Zend/zend_language_scanner.l" { return T_ARRAY; } -#line 6422 "Zend/zend_language_scanner.c" -yy642: - YYDEBUG(642, *YYCURSOR); +#line 6412 "Zend/zend_language_scanner.c" +yy640: + YYDEBUG(640, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy281; + goto yy279; } - YYDEBUG(643, *YYCURSOR); + YYDEBUG(641, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1336 "Zend/zend_language_scanner.l" +#line 1332 "Zend/zend_language_scanner.l" { return T_LOGICAL_AND; } -#line 6435 "Zend/zend_language_scanner.c" +#line 6425 "Zend/zend_language_scanner.c" +yy642: + YYDEBUG(642, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'T') goto yy643; + if (yych != 't') goto yy280; +yy643: + YYDEBUG(643, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'R') goto yy644; + if (yych != 'r') goto yy280; yy644: YYDEBUG(644, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'T') goto yy645; - if (yych != 't') goto yy282; + if (yych == 'A') goto yy645; + if (yych != 'a') goto yy280; yy645: YYDEBUG(645, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'R') goto yy646; - if (yych != 'r') goto yy282; + if (yych == 'C') goto yy646; + if (yych != 'c') goto yy280; yy646: YYDEBUG(646, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'A') goto yy647; - if (yych != 'a') goto yy282; + if (yych == 'T') goto yy647; + if (yych != 't') goto yy280; yy647: YYDEBUG(647, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'C') goto yy648; - if (yych != 'c') goto yy282; -yy648: - YYDEBUG(648, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'T') goto yy649; - if (yych != 't') goto yy282; -yy649: - YYDEBUG(649, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy281; + goto yy279; } - YYDEBUG(650, *YYCURSOR); + YYDEBUG(648, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1212 "Zend/zend_language_scanner.l" +#line 1208 "Zend/zend_language_scanner.l" { return T_ABSTRACT; } -#line 6473 "Zend/zend_language_scanner.c" +#line 6463 "Zend/zend_language_scanner.c" +yy649: + YYDEBUG(649, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'I') goto yy650; + if (yych != 'i') goto yy280; +yy650: + YYDEBUG(650, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'L') goto yy651; + if (yych != 'l') goto yy280; yy651: YYDEBUG(651, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'I') goto yy652; - if (yych != 'i') goto yy282; + if (yych == 'E') goto yy652; + if (yych != 'e') goto yy280; yy652: YYDEBUG(652, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'L') goto yy653; - if (yych != 'l') goto yy282; -yy653: - YYDEBUG(653, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy654; - if (yych != 'e') goto yy282; -yy654: - YYDEBUG(654, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy281; + goto yy279; } - YYDEBUG(655, *YYCURSOR); + YYDEBUG(653, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); #line 986 "Zend/zend_language_scanner.l" { return T_WHILE; } -#line 6501 "Zend/zend_language_scanner.c" -yy656: - YYDEBUG(656, *YYCURSOR); +#line 6491 "Zend/zend_language_scanner.c" +yy654: + YYDEBUG(654, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy281; + goto yy279; } - YYDEBUG(657, *YYCURSOR); + YYDEBUG(655, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); #line 970 "Zend/zend_language_scanner.l" { return T_IF; } -#line 6514 "Zend/zend_language_scanner.c" -yy658: - YYDEBUG(658, *YYCURSOR); +#line 6504 "Zend/zend_language_scanner.c" +yy656: + YYDEBUG(656, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'P') goto yy694; - if (yych == 'p') goto yy694; - goto yy282; -yy659: - YYDEBUG(659, *YYCURSOR); + if (yych == 'P') goto yy692; + if (yych == 'p') goto yy692; + goto yy280; +yy657: + YYDEBUG(657, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'T') { if (yych <= 'C') { - if (yych <= 'B') goto yy282; - goto yy667; + if (yych <= 'B') goto yy280; + goto yy665; } else { - if (yych <= 'R') goto yy282; - if (yych <= 'S') goto yy665; - goto yy666; + if (yych <= 'R') goto yy280; + if (yych <= 'S') goto yy663; + goto yy664; } } else { if (yych <= 'r') { - if (yych == 'c') goto yy667; - goto yy282; + if (yych == 'c') goto yy665; + goto yy280; } else { - if (yych <= 's') goto yy665; - if (yych <= 't') goto yy666; - goto yy282; + if (yych <= 's') goto yy663; + if (yych <= 't') goto yy664; + goto yy280; } } +yy658: + YYDEBUG(658, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'S') goto yy659; + if (yych != 's') goto yy280; +yy659: + YYDEBUG(659, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy660; + if (yych != 'e') goto yy280; yy660: YYDEBUG(660, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'S') goto yy661; - if (yych != 's') goto yy282; + if (yych == 'T') goto yy661; + if (yych != 't') goto yy280; yy661: YYDEBUG(661, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy662; - if (yych != 'e') goto yy282; -yy662: - YYDEBUG(662, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'T') goto yy663; - if (yych != 't') goto yy282; -yy663: - YYDEBUG(663, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy281; + goto yy279; } - YYDEBUG(664, *YYCURSOR); + YYDEBUG(662, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1196 "Zend/zend_language_scanner.l" +#line 1192 "Zend/zend_language_scanner.l" { return T_ISSET; } -#line 6570 "Zend/zend_language_scanner.c" +#line 6560 "Zend/zend_language_scanner.c" +yy663: + YYDEBUG(663, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'T') goto yy684; + if (yych == 't') goto yy684; + goto yy280; +yy664: + YYDEBUG(664, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy677; + if (yych == 'e') goto yy677; + goto yy280; yy665: YYDEBUG(665, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'T') goto yy686; - if (yych == 't') goto yy686; - goto yy282; + if (yych == 'L') goto yy666; + if (yych != 'l') goto yy280; yy666: YYDEBUG(666, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy679; - if (yych == 'e') goto yy679; - goto yy282; + if (yych == 'U') goto yy667; + if (yych != 'u') goto yy280; yy667: YYDEBUG(667, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'L') goto yy668; - if (yych != 'l') goto yy282; + if (yych == 'D') goto yy668; + if (yych != 'd') goto yy280; yy668: YYDEBUG(668, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'U') goto yy669; - if (yych != 'u') goto yy282; + if (yych == 'E') goto yy669; + if (yych != 'e') goto yy280; yy669: YYDEBUG(669, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'D') goto yy670; - if (yych != 'd') goto yy282; -yy670: - YYDEBUG(670, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy671; - if (yych != 'e') goto yy282; -yy671: - YYDEBUG(671, *YYCURSOR); ++YYCURSOR; if ((yych = *YYCURSOR) <= '^') { if (yych <= '9') { - if (yych >= '0') goto yy281; + if (yych >= '0') goto yy279; } else { - if (yych <= '@') goto yy672; - if (yych <= 'Z') goto yy281; + if (yych <= '@') goto yy670; + if (yych <= 'Z') goto yy279; } } else { if (yych <= '`') { - if (yych <= '_') goto yy673; + if (yych <= '_') goto yy671; } else { - if (yych <= 'z') goto yy281; - if (yych >= 0x7F) goto yy281; + if (yych <= 'z') goto yy279; + if (yych >= 0x7F) goto yy279; } } -yy672: - YYDEBUG(672, *YYCURSOR); +yy670: + YYDEBUG(670, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1168 "Zend/zend_language_scanner.l" +#line 1164 "Zend/zend_language_scanner.l" { return T_INCLUDE; } -#line 6628 "Zend/zend_language_scanner.c" +#line 6618 "Zend/zend_language_scanner.c" +yy671: + YYDEBUG(671, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'O') goto yy672; + if (yych != 'o') goto yy280; +yy672: + YYDEBUG(672, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'N') goto yy673; + if (yych != 'n') goto yy280; yy673: YYDEBUG(673, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'O') goto yy674; - if (yych != 'o') goto yy282; + if (yych == 'C') goto yy674; + if (yych != 'c') goto yy280; yy674: YYDEBUG(674, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'N') goto yy675; - if (yych != 'n') goto yy282; + if (yych == 'E') goto yy675; + if (yych != 'e') goto yy280; yy675: YYDEBUG(675, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'C') goto yy676; - if (yych != 'c') goto yy282; -yy676: - YYDEBUG(676, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy677; - if (yych != 'e') goto yy282; -yy677: - YYDEBUG(677, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy281; + goto yy279; } - YYDEBUG(678, *YYCURSOR); + YYDEBUG(676, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1172 "Zend/zend_language_scanner.l" +#line 1168 "Zend/zend_language_scanner.l" { return T_INCLUDE_ONCE; } -#line 6661 "Zend/zend_language_scanner.c" +#line 6651 "Zend/zend_language_scanner.c" +yy677: + YYDEBUG(677, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'R') goto yy678; + if (yych != 'r') goto yy280; +yy678: + YYDEBUG(678, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'F') goto yy679; + if (yych != 'f') goto yy280; yy679: YYDEBUG(679, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'R') goto yy680; - if (yych != 'r') goto yy282; + if (yych == 'A') goto yy680; + if (yych != 'a') goto yy280; yy680: YYDEBUG(680, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'F') goto yy681; - if (yych != 'f') goto yy282; + if (yych == 'C') goto yy681; + if (yych != 'c') goto yy280; yy681: YYDEBUG(681, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'A') goto yy682; - if (yych != 'a') goto yy282; + if (yych == 'E') goto yy682; + if (yych != 'e') goto yy280; yy682: YYDEBUG(682, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'C') goto yy683; - if (yych != 'c') goto yy282; -yy683: - YYDEBUG(683, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy684; - if (yych != 'e') goto yy282; -yy684: - YYDEBUG(684, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy281; + goto yy279; } - YYDEBUG(685, *YYCURSOR); + YYDEBUG(683, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); #line 1070 "Zend/zend_language_scanner.l" { return T_INTERFACE; } -#line 6699 "Zend/zend_language_scanner.c" +#line 6689 "Zend/zend_language_scanner.c" +yy684: + YYDEBUG(684, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'A') goto yy685; + if (yych != 'a') goto yy280; +yy685: + YYDEBUG(685, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'N') goto yy686; + if (yych != 'n') goto yy280; yy686: YYDEBUG(686, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'A') goto yy687; - if (yych != 'a') goto yy282; + if (yych == 'C') goto yy687; + if (yych != 'c') goto yy280; yy687: YYDEBUG(687, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'N') goto yy688; - if (yych != 'n') goto yy282; + if (yych == 'E') goto yy688; + if (yych != 'e') goto yy280; yy688: YYDEBUG(688, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'C') goto yy689; - if (yych != 'c') goto yy282; + if (yych == 'O') goto yy689; + if (yych != 'o') goto yy280; yy689: YYDEBUG(689, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy690; - if (yych != 'e') goto yy282; + if (yych == 'F') goto yy690; + if (yych != 'f') goto yy280; yy690: YYDEBUG(690, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'O') goto yy691; - if (yych != 'o') goto yy282; -yy691: - YYDEBUG(691, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'F') goto yy692; - if (yych != 'f') goto yy282; -yy692: - YYDEBUG(692, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy281; + goto yy279; } - YYDEBUG(693, *YYCURSOR); + YYDEBUG(691, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); #line 1022 "Zend/zend_language_scanner.l" { return T_INSTANCEOF; } -#line 6742 "Zend/zend_language_scanner.c" +#line 6732 "Zend/zend_language_scanner.c" +yy692: + YYDEBUG(692, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'L') goto yy693; + if (yych != 'l') goto yy280; +yy693: + YYDEBUG(693, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy694; + if (yych != 'e') goto yy280; yy694: YYDEBUG(694, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'L') goto yy695; - if (yych != 'l') goto yy282; + if (yych == 'M') goto yy695; + if (yych != 'm') goto yy280; yy695: YYDEBUG(695, *YYCURSOR); yych = *++YYCURSOR; if (yych == 'E') goto yy696; - if (yych != 'e') goto yy282; + if (yych != 'e') goto yy280; yy696: YYDEBUG(696, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'M') goto yy697; - if (yych != 'm') goto yy282; + if (yych == 'N') goto yy697; + if (yych != 'n') goto yy280; yy697: YYDEBUG(697, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy698; - if (yych != 'e') goto yy282; + if (yych == 'T') goto yy698; + if (yych != 't') goto yy280; yy698: YYDEBUG(698, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'N') goto yy699; - if (yych != 'n') goto yy282; + if (yych == 'S') goto yy699; + if (yych != 's') goto yy280; yy699: YYDEBUG(699, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'T') goto yy700; - if (yych != 't') goto yy282; -yy700: - YYDEBUG(700, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'S') goto yy701; - if (yych != 's') goto yy282; -yy701: - YYDEBUG(701, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy281; + goto yy279; } - YYDEBUG(702, *YYCURSOR); + YYDEBUG(700, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); #line 1078 "Zend/zend_language_scanner.l" { return T_IMPLEMENTS; } -#line 6790 "Zend/zend_language_scanner.c" -yy703: - YYDEBUG(703, *YYCURSOR); +#line 6780 "Zend/zend_language_scanner.c" +yy701: + YYDEBUG(701, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'R') goto yy707; - if (yych == 'r') goto yy707; - goto yy282; -yy704: - YYDEBUG(704, *YYCURSOR); + if (yych == 'R') goto yy705; + if (yych == 'r') goto yy705; + goto yy280; +yy702: + YYDEBUG(702, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'Y') goto yy705; - if (yych != 'y') goto yy282; -yy705: - YYDEBUG(705, *YYCURSOR); + if (yych == 'Y') goto yy703; + if (yych != 'y') goto yy280; +yy703: + YYDEBUG(703, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy281; + goto yy279; } - YYDEBUG(706, *YYCURSOR); + YYDEBUG(704, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); #line 958 "Zend/zend_language_scanner.l" { return T_TRY; } -#line 6814 "Zend/zend_language_scanner.c" -yy707: - YYDEBUG(707, *YYCURSOR); +#line 6804 "Zend/zend_language_scanner.c" +yy705: + YYDEBUG(705, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'O') goto yy708; - if (yych != 'o') goto yy282; -yy708: - YYDEBUG(708, *YYCURSOR); + if (yych == 'O') goto yy706; + if (yych != 'o') goto yy280; +yy706: + YYDEBUG(706, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'W') goto yy709; - if (yych != 'w') goto yy282; -yy709: - YYDEBUG(709, *YYCURSOR); + if (yych == 'W') goto yy707; + if (yych != 'w') goto yy280; +yy707: + YYDEBUG(707, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy281; + goto yy279; } - YYDEBUG(710, *YYCURSOR); + YYDEBUG(708, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); #line 966 "Zend/zend_language_scanner.l" { return T_THROW; } -#line 6837 "Zend/zend_language_scanner.c" -yy711: - YYDEBUG(711, *YYCURSOR); +#line 6827 "Zend/zend_language_scanner.c" +yy709: + YYDEBUG(709, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'T') { - if (yych == 'Q') goto yy713; - if (yych <= 'S') goto yy282; + if (yych == 'Q') goto yy711; + if (yych <= 'S') goto yy280; } else { if (yych <= 'q') { - if (yych <= 'p') goto yy282; - goto yy713; + if (yych <= 'p') goto yy280; + goto yy711; } else { - if (yych != 't') goto yy282; + if (yych != 't') goto yy280; } } + YYDEBUG(710, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'U') goto yy723; + if (yych == 'u') goto yy723; + goto yy280; +yy711: + YYDEBUG(711, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'U') goto yy712; + if (yych != 'u') goto yy280; +yy712: YYDEBUG(712, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'U') goto yy725; - if (yych == 'u') goto yy725; - goto yy282; + if (yych == 'I') goto yy713; + if (yych != 'i') goto yy280; yy713: YYDEBUG(713, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'U') goto yy714; - if (yych != 'u') goto yy282; + if (yych == 'R') goto yy714; + if (yych != 'r') goto yy280; yy714: YYDEBUG(714, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'I') goto yy715; - if (yych != 'i') goto yy282; + if (yych == 'E') goto yy715; + if (yych != 'e') goto yy280; yy715: YYDEBUG(715, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'R') goto yy716; - if (yych != 'r') goto yy282; -yy716: - YYDEBUG(716, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy717; - if (yych != 'e') goto yy282; -yy717: - YYDEBUG(717, *YYCURSOR); ++YYCURSOR; if ((yych = *YYCURSOR) <= '^') { if (yych <= '9') { - if (yych >= '0') goto yy281; + if (yych >= '0') goto yy279; } else { - if (yych <= '@') goto yy718; - if (yych <= 'Z') goto yy281; + if (yych <= '@') goto yy716; + if (yych <= 'Z') goto yy279; } } else { if (yych <= '`') { - if (yych <= '_') goto yy719; + if (yych <= '_') goto yy717; } else { - if (yych <= 'z') goto yy281; - if (yych >= 0x7F) goto yy281; + if (yych <= 'z') goto yy279; + if (yych >= 0x7F) goto yy279; } } -yy718: - YYDEBUG(718, *YYCURSOR); +yy716: + YYDEBUG(716, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1176 "Zend/zend_language_scanner.l" +#line 1172 "Zend/zend_language_scanner.l" { return T_REQUIRE; } -#line 6902 "Zend/zend_language_scanner.c" +#line 6892 "Zend/zend_language_scanner.c" +yy717: + YYDEBUG(717, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'O') goto yy718; + if (yych != 'o') goto yy280; +yy718: + YYDEBUG(718, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'N') goto yy719; + if (yych != 'n') goto yy280; yy719: YYDEBUG(719, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'O') goto yy720; - if (yych != 'o') goto yy282; + if (yych == 'C') goto yy720; + if (yych != 'c') goto yy280; yy720: YYDEBUG(720, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'N') goto yy721; - if (yych != 'n') goto yy282; + if (yych == 'E') goto yy721; + if (yych != 'e') goto yy280; yy721: YYDEBUG(721, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'C') goto yy722; - if (yych != 'c') goto yy282; -yy722: - YYDEBUG(722, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy723; - if (yych != 'e') goto yy282; -yy723: - YYDEBUG(723, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy281; + goto yy279; } - YYDEBUG(724, *YYCURSOR); + YYDEBUG(722, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1180 "Zend/zend_language_scanner.l" +#line 1176 "Zend/zend_language_scanner.l" { return T_REQUIRE_ONCE; } -#line 6935 "Zend/zend_language_scanner.c" -yy725: - YYDEBUG(725, *YYCURSOR); +#line 6925 "Zend/zend_language_scanner.c" +yy723: + YYDEBUG(723, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'R') goto yy726; - if (yych != 'r') goto yy282; -yy726: - YYDEBUG(726, *YYCURSOR); + if (yych == 'R') goto yy724; + if (yych != 'r') goto yy280; +yy724: + YYDEBUG(724, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'N') goto yy727; - if (yych != 'n') goto yy282; -yy727: - YYDEBUG(727, *YYCURSOR); + if (yych == 'N') goto yy725; + if (yych != 'n') goto yy280; +yy725: + YYDEBUG(725, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy281; + goto yy279; } - YYDEBUG(728, *YYCURSOR); + YYDEBUG(726, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); #line 954 "Zend/zend_language_scanner.l" { return T_RETURN; } -#line 6958 "Zend/zend_language_scanner.c" -yy729: - YYDEBUG(729, *YYCURSOR); +#line 6948 "Zend/zend_language_scanner.c" +yy727: + YYDEBUG(727, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'T') { - if (yych <= 'R') goto yy282; - if (yych <= 'S') goto yy751; - goto yy750; + if (yych <= 'R') goto yy280; + if (yych <= 'S') goto yy749; + goto yy748; } else { - if (yych <= 'r') goto yy282; - if (yych <= 's') goto yy751; - if (yych <= 't') goto yy750; - goto yy282; + if (yych <= 'r') goto yy280; + if (yych <= 's') goto yy749; + if (yych <= 't') goto yy748; + goto yy280; } -yy730: - YYDEBUG(730, *YYCURSOR); +yy728: + YYDEBUG(728, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'O') { - if (yych == 'A') goto yy742; - if (yych <= 'N') goto yy282; - goto yy743; + if (yych == 'A') goto yy740; + if (yych <= 'N') goto yy280; + goto yy741; } else { if (yych <= 'a') { - if (yych <= '`') goto yy282; - goto yy742; + if (yych <= '`') goto yy280; + goto yy740; } else { - if (yych == 'o') goto yy743; - goto yy282; + if (yych == 'o') goto yy741; + goto yy280; } } +yy729: + YYDEBUG(729, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'N') goto yy730; + if (yych != 'n') goto yy280; +yy730: + YYDEBUG(730, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'T') { + if (yych <= 'R') goto yy280; + if (yych >= 'T') goto yy732; + } else { + if (yych <= 'r') goto yy280; + if (yych <= 's') goto yy731; + if (yych <= 't') goto yy732; + goto yy280; + } yy731: YYDEBUG(731, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'N') goto yy732; - if (yych != 'n') goto yy282; + if (yych == 'T') goto yy738; + if (yych == 't') goto yy738; + goto yy280; yy732: YYDEBUG(732, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= 'T') { - if (yych <= 'R') goto yy282; - if (yych >= 'T') goto yy734; - } else { - if (yych <= 'r') goto yy282; - if (yych <= 's') goto yy733; - if (yych <= 't') goto yy734; - goto yy282; - } + if (yych == 'I') goto yy733; + if (yych != 'i') goto yy280; yy733: YYDEBUG(733, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'T') goto yy740; - if (yych == 't') goto yy740; - goto yy282; + if (yych == 'N') goto yy734; + if (yych != 'n') goto yy280; yy734: YYDEBUG(734, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'I') goto yy735; - if (yych != 'i') goto yy282; + if (yych == 'U') goto yy735; + if (yych != 'u') goto yy280; yy735: YYDEBUG(735, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'N') goto yy736; - if (yych != 'n') goto yy282; + if (yych == 'E') goto yy736; + if (yych != 'e') goto yy280; yy736: YYDEBUG(736, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'U') goto yy737; - if (yych != 'u') goto yy282; -yy737: - YYDEBUG(737, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy738; - if (yych != 'e') goto yy282; -yy738: - YYDEBUG(738, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy281; + goto yy279; } - YYDEBUG(739, *YYCURSOR); + YYDEBUG(737, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); #line 1050 "Zend/zend_language_scanner.l" { return T_CONTINUE; } -#line 7043 "Zend/zend_language_scanner.c" -yy740: - YYDEBUG(740, *YYCURSOR); +#line 7033 "Zend/zend_language_scanner.c" +yy738: + YYDEBUG(738, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy281; + goto yy279; } - YYDEBUG(741, *YYCURSOR); + YYDEBUG(739, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); #line 950 "Zend/zend_language_scanner.l" { return T_CONST; } -#line 7056 "Zend/zend_language_scanner.c" +#line 7046 "Zend/zend_language_scanner.c" +yy740: + YYDEBUG(740, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'S') goto yy745; + if (yych == 's') goto yy745; + goto yy280; +yy741: + YYDEBUG(741, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'N') goto yy742; + if (yych != 'n') goto yy280; yy742: YYDEBUG(742, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'S') goto yy747; - if (yych == 's') goto yy747; - goto yy282; + if (yych == 'E') goto yy743; + if (yych != 'e') goto yy280; yy743: YYDEBUG(743, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'N') goto yy744; - if (yych != 'n') goto yy282; -yy744: - YYDEBUG(744, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy745; - if (yych != 'e') goto yy282; -yy745: - YYDEBUG(745, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy281; + goto yy279; } - YYDEBUG(746, *YYCURSOR); + YYDEBUG(744, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1124 "Zend/zend_language_scanner.l" +#line 1120 "Zend/zend_language_scanner.l" { return T_CLONE; } -#line 7085 "Zend/zend_language_scanner.c" -yy747: - YYDEBUG(747, *YYCURSOR); +#line 7075 "Zend/zend_language_scanner.c" +yy745: + YYDEBUG(745, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'S') goto yy748; - if (yych != 's') goto yy282; -yy748: - YYDEBUG(748, *YYCURSOR); + if (yych == 'S') goto yy746; + if (yych != 's') goto yy280; +yy746: + YYDEBUG(746, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy281; + goto yy279; } - YYDEBUG(749, *YYCURSOR); + YYDEBUG(747, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); #line 1066 "Zend/zend_language_scanner.l" { return T_CLASS; } -#line 7103 "Zend/zend_language_scanner.c" -yy750: - YYDEBUG(750, *YYCURSOR); +#line 7093 "Zend/zend_language_scanner.c" +yy748: + YYDEBUG(748, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'C') goto yy754; - if (yych == 'c') goto yy754; - goto yy282; -yy751: - YYDEBUG(751, *YYCURSOR); + if (yych == 'C') goto yy752; + if (yych == 'c') goto yy752; + goto yy280; +yy749: + YYDEBUG(749, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy752; - if (yych != 'e') goto yy282; -yy752: - YYDEBUG(752, *YYCURSOR); + if (yych == 'E') goto yy750; + if (yych != 'e') goto yy280; +yy750: + YYDEBUG(750, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy281; + goto yy279; } - YYDEBUG(753, *YYCURSOR); + YYDEBUG(751, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); #line 1038 "Zend/zend_language_scanner.l" { return T_CASE; } -#line 7127 "Zend/zend_language_scanner.c" -yy754: - YYDEBUG(754, *YYCURSOR); +#line 7117 "Zend/zend_language_scanner.c" +yy752: + YYDEBUG(752, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'H') goto yy755; - if (yych != 'h') goto yy282; -yy755: - YYDEBUG(755, *YYCURSOR); + if (yych == 'H') goto yy753; + if (yych != 'h') goto yy280; +yy753: + YYDEBUG(753, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy281; + goto yy279; } - YYDEBUG(756, *YYCURSOR); + YYDEBUG(754, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); #line 962 "Zend/zend_language_scanner.l" { return T_CATCH; } -#line 7145 "Zend/zend_language_scanner.c" +#line 7135 "Zend/zend_language_scanner.c" +yy755: + YYDEBUG(755, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'N') goto yy772; + if (yych == 'n') goto yy772; + goto yy280; +yy756: + YYDEBUG(756, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'R') goto yy765; + if (yych == 'r') goto yy765; + goto yy280; yy757: YYDEBUG(757, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'N') goto yy774; - if (yych == 'n') goto yy774; - goto yy282; + if (yych == 'N') goto yy758; + if (yych != 'n') goto yy280; yy758: YYDEBUG(758, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'R') goto yy767; - if (yych == 'r') goto yy767; - goto yy282; + if (yych == 'C') goto yy759; + if (yych != 'c') goto yy280; yy759: YYDEBUG(759, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'N') goto yy760; - if (yych != 'n') goto yy282; + if (yych == 'T') goto yy760; + if (yych != 't') goto yy280; yy760: YYDEBUG(760, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'C') goto yy761; - if (yych != 'c') goto yy282; + if (yych == 'I') goto yy761; + if (yych != 'i') goto yy280; yy761: YYDEBUG(761, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'T') goto yy762; - if (yych != 't') goto yy282; + if (yych == 'O') goto yy762; + if (yych != 'o') goto yy280; yy762: YYDEBUG(762, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'I') goto yy763; - if (yych != 'i') goto yy282; + if (yych == 'N') goto yy763; + if (yych != 'n') goto yy280; yy763: YYDEBUG(763, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'O') goto yy764; - if (yych != 'o') goto yy282; -yy764: - YYDEBUG(764, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'N') goto yy765; - if (yych != 'n') goto yy282; -yy765: - YYDEBUG(765, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy281; + goto yy279; } - YYDEBUG(766, *YYCURSOR); + YYDEBUG(764, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); #line 946 "Zend/zend_language_scanner.l" { return T_FUNCTION; } -#line 7200 "Zend/zend_language_scanner.c" -yy767: - YYDEBUG(767, *YYCURSOR); +#line 7190 "Zend/zend_language_scanner.c" +yy765: + YYDEBUG(765, *YYCURSOR); ++YYCURSOR; if ((yych = *YYCURSOR) <= '^') { if (yych <= '@') { - if (yych <= '/') goto yy768; - if (yych <= '9') goto yy281; + if (yych <= '/') goto yy766; + if (yych <= '9') goto yy279; } else { - if (yych == 'E') goto yy769; - if (yych <= 'Z') goto yy281; + if (yych == 'E') goto yy767; + if (yych <= 'Z') goto yy279; } } else { if (yych <= 'd') { - if (yych != '`') goto yy281; + if (yych != '`') goto yy279; } else { - if (yych <= 'e') goto yy769; - if (yych <= 'z') goto yy281; - if (yych >= 0x7F) goto yy281; + if (yych <= 'e') goto yy767; + if (yych <= 'z') goto yy279; + if (yych >= 0x7F) goto yy279; } } -yy768: - YYDEBUG(768, *YYCURSOR); +yy766: + YYDEBUG(766, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); #line 998 "Zend/zend_language_scanner.l" { return T_FOR; } -#line 7228 "Zend/zend_language_scanner.c" +#line 7218 "Zend/zend_language_scanner.c" +yy767: + YYDEBUG(767, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'A') goto yy768; + if (yych != 'a') goto yy280; +yy768: + YYDEBUG(768, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'C') goto yy769; + if (yych != 'c') goto yy280; yy769: YYDEBUG(769, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'A') goto yy770; - if (yych != 'a') goto yy282; + if (yych == 'H') goto yy770; + if (yych != 'h') goto yy280; yy770: YYDEBUG(770, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'C') goto yy771; - if (yych != 'c') goto yy282; -yy771: - YYDEBUG(771, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'H') goto yy772; - if (yych != 'h') goto yy282; -yy772: - YYDEBUG(772, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy281; + goto yy279; } - YYDEBUG(773, *YYCURSOR); + YYDEBUG(771, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); #line 1006 "Zend/zend_language_scanner.l" { return T_FOREACH; } -#line 7256 "Zend/zend_language_scanner.c" -yy774: - YYDEBUG(774, *YYCURSOR); +#line 7246 "Zend/zend_language_scanner.c" +yy772: + YYDEBUG(772, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'A') goto yy775; - if (yych != 'a') goto yy282; -yy775: - YYDEBUG(775, *YYCURSOR); + if (yych == 'A') goto yy773; + if (yych != 'a') goto yy280; +yy773: + YYDEBUG(773, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'L') goto yy776; - if (yych != 'l') goto yy282; -yy776: - YYDEBUG(776, *YYCURSOR); + if (yych == 'L') goto yy774; + if (yych != 'l') goto yy280; +yy774: + YYDEBUG(774, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy281; + goto yy279; } - YYDEBUG(777, *YYCURSOR); + YYDEBUG(775, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1216 "Zend/zend_language_scanner.l" +#line 1212 "Zend/zend_language_scanner.l" { return T_FINAL; } -#line 7279 "Zend/zend_language_scanner.c" -yy778: - YYDEBUG(778, *YYCURSOR); +#line 7269 "Zend/zend_language_scanner.c" +yy776: + YYDEBUG(776, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'F') { - if (yych == 'C') goto yy784; - if (yych <= 'E') goto yy282; - goto yy785; + if (yych == 'C') goto yy782; + if (yych <= 'E') goto yy280; + goto yy783; } else { if (yych <= 'c') { - if (yych <= 'b') goto yy282; - goto yy784; + if (yych <= 'b') goto yy280; + goto yy782; } else { - if (yych == 'f') goto yy785; - goto yy282; + if (yych == 'f') goto yy783; + goto yy280; } } -yy779: - YYDEBUG(779, *YYCURSOR); +yy777: + YYDEBUG(777, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy782; - if (yych == 'e') goto yy782; - goto yy282; -yy780: - YYDEBUG(780, *YYCURSOR); + if (yych == 'E') goto yy780; + if (yych == 'e') goto yy780; + goto yy280; +yy778: + YYDEBUG(778, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy281; + goto yy279; } - YYDEBUG(781, *YYCURSOR); + YYDEBUG(779, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); #line 994 "Zend/zend_language_scanner.l" { return T_DO; } -#line 7314 "Zend/zend_language_scanner.c" -yy782: - YYDEBUG(782, *YYCURSOR); +#line 7304 "Zend/zend_language_scanner.c" +yy780: + YYDEBUG(780, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy281; + goto yy279; } - YYDEBUG(783, *YYCURSOR); + YYDEBUG(781, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); #line 942 "Zend/zend_language_scanner.l" { return T_EXIT; } -#line 7327 "Zend/zend_language_scanner.c" +#line 7317 "Zend/zend_language_scanner.c" +yy782: + YYDEBUG(782, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'L') goto yy789; + if (yych == 'l') goto yy789; + goto yy280; +yy783: + YYDEBUG(783, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'A') goto yy784; + if (yych != 'a') goto yy280; yy784: YYDEBUG(784, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'L') goto yy791; - if (yych == 'l') goto yy791; - goto yy282; + if (yych == 'U') goto yy785; + if (yych != 'u') goto yy280; yy785: YYDEBUG(785, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'A') goto yy786; - if (yych != 'a') goto yy282; + if (yych == 'L') goto yy786; + if (yych != 'l') goto yy280; yy786: YYDEBUG(786, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'U') goto yy787; - if (yych != 'u') goto yy282; + if (yych == 'T') goto yy787; + if (yych != 't') goto yy280; yy787: YYDEBUG(787, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'L') goto yy788; - if (yych != 'l') goto yy282; -yy788: - YYDEBUG(788, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'T') goto yy789; - if (yych != 't') goto yy282; -yy789: - YYDEBUG(789, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy281; + goto yy279; } - YYDEBUG(790, *YYCURSOR); + YYDEBUG(788, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); #line 1042 "Zend/zend_language_scanner.l" { return T_DEFAULT; } -#line 7366 "Zend/zend_language_scanner.c" +#line 7356 "Zend/zend_language_scanner.c" +yy789: + YYDEBUG(789, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'A') goto yy790; + if (yych != 'a') goto yy280; +yy790: + YYDEBUG(790, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'R') goto yy791; + if (yych != 'r') goto yy280; yy791: YYDEBUG(791, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'A') goto yy792; - if (yych != 'a') goto yy282; + if (yych == 'E') goto yy792; + if (yych != 'e') goto yy280; yy792: YYDEBUG(792, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'R') goto yy793; - if (yych != 'r') goto yy282; -yy793: - YYDEBUG(793, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy794; - if (yych != 'e') goto yy282; -yy794: - YYDEBUG(794, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy281; + goto yy279; } - YYDEBUG(795, *YYCURSOR); + YYDEBUG(793, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); #line 1014 "Zend/zend_language_scanner.l" { return T_DECLARE; } -#line 7394 "Zend/zend_language_scanner.c" +#line 7384 "Zend/zend_language_scanner.c" +yy794: + YYDEBUG(794, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'H') goto yy856; + if (yych == 'h') goto yy856; + goto yy280; +yy795: + YYDEBUG(795, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'S') goto yy850; + if (yych == 's') goto yy850; + goto yy280; yy796: YYDEBUG(796, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'H') goto yy858; - if (yych == 'h') goto yy858; - goto yy282; + if (yych == 'P') goto yy846; + if (yych == 'p') goto yy846; + goto yy280; yy797: YYDEBUG(797, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'S') goto yy852; - if (yych == 's') goto yy852; - goto yy282; + if (yych == 'D') goto yy812; + if (yych == 'd') goto yy812; + goto yy280; yy798: YYDEBUG(798, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'P') goto yy848; - if (yych == 'p') goto yy848; - goto yy282; + if (yych == 'A') goto yy809; + if (yych == 'a') goto yy809; + goto yy280; yy799: YYDEBUG(799, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'D') goto yy814; - if (yych == 'd') goto yy814; - goto yy282; -yy800: - YYDEBUG(800, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'A') goto yy811; - if (yych == 'a') goto yy811; - goto yy282; -yy801: - YYDEBUG(801, *YYCURSOR); - yych = *++YYCURSOR; if (yych <= 'T') { - if (yych == 'I') goto yy802; - if (yych <= 'S') goto yy282; - goto yy803; + if (yych == 'I') goto yy800; + if (yych <= 'S') goto yy280; + goto yy801; } else { if (yych <= 'i') { - if (yych <= 'h') goto yy282; + if (yych <= 'h') goto yy280; } else { - if (yych == 't') goto yy803; - goto yy282; + if (yych == 't') goto yy801; + goto yy280; } } +yy800: + YYDEBUG(800, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'T') goto yy807; + if (yych == 't') goto yy807; + goto yy280; +yy801: + YYDEBUG(801, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy802; + if (yych != 'e') goto yy280; yy802: YYDEBUG(802, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'T') goto yy809; - if (yych == 't') goto yy809; - goto yy282; + if (yych == 'N') goto yy803; + if (yych != 'n') goto yy280; yy803: YYDEBUG(803, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy804; - if (yych != 'e') goto yy282; + if (yych == 'D') goto yy804; + if (yych != 'd') goto yy280; yy804: YYDEBUG(804, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'N') goto yy805; - if (yych != 'n') goto yy282; + if (yych == 'S') goto yy805; + if (yych != 's') goto yy280; yy805: YYDEBUG(805, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'D') goto yy806; - if (yych != 'd') goto yy282; -yy806: - YYDEBUG(806, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'S') goto yy807; - if (yych != 's') goto yy282; -yy807: - YYDEBUG(807, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy281; + goto yy279; } - YYDEBUG(808, *YYCURSOR); + YYDEBUG(806, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); #line 1074 "Zend/zend_language_scanner.l" { return T_EXTENDS; } -#line 7478 "Zend/zend_language_scanner.c" -yy809: - YYDEBUG(809, *YYCURSOR); +#line 7468 "Zend/zend_language_scanner.c" +yy807: + YYDEBUG(807, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy281; + goto yy279; } - YYDEBUG(810, *YYCURSOR); + YYDEBUG(808, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); #line 938 "Zend/zend_language_scanner.l" { return T_EXIT; } -#line 7491 "Zend/zend_language_scanner.c" -yy811: - YYDEBUG(811, *YYCURSOR); +#line 7481 "Zend/zend_language_scanner.c" +yy809: + YYDEBUG(809, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'L') goto yy812; - if (yych != 'l') goto yy282; -yy812: - YYDEBUG(812, *YYCURSOR); + if (yych == 'L') goto yy810; + if (yych != 'l') goto yy280; +yy810: + YYDEBUG(810, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy281; + goto yy279; } - YYDEBUG(813, *YYCURSOR); + YYDEBUG(811, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1164 "Zend/zend_language_scanner.l" +#line 1160 "Zend/zend_language_scanner.l" { return T_EVAL; } -#line 7509 "Zend/zend_language_scanner.c" -yy814: - YYDEBUG(814, *YYCURSOR); +#line 7499 "Zend/zend_language_scanner.c" +yy812: + YYDEBUG(812, *YYCURSOR); yych = *++YYCURSOR; YYDEBUG(-1, yych); switch (yych) { case 'D': - case 'd': goto yy815; + case 'd': goto yy813; case 'F': - case 'f': goto yy816; + case 'f': goto yy814; case 'I': - case 'i': goto yy817; + case 'i': goto yy815; case 'S': - case 's': goto yy818; + case 's': goto yy816; case 'W': - case 'w': goto yy819; - default: goto yy282; + case 'w': goto yy817; + default: goto yy280; } +yy813: + YYDEBUG(813, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy839; + if (yych == 'e') goto yy839; + goto yy280; +yy814: + YYDEBUG(814, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'O') goto yy831; + if (yych == 'o') goto yy831; + goto yy280; yy815: YYDEBUG(815, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy841; - if (yych == 'e') goto yy841; - goto yy282; + if (yych == 'F') goto yy829; + if (yych == 'f') goto yy829; + goto yy280; yy816: YYDEBUG(816, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'O') goto yy833; - if (yych == 'o') goto yy833; - goto yy282; + if (yych == 'W') goto yy823; + if (yych == 'w') goto yy823; + goto yy280; yy817: YYDEBUG(817, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'F') goto yy831; - if (yych == 'f') goto yy831; - goto yy282; + if (yych == 'H') goto yy818; + if (yych != 'h') goto yy280; yy818: YYDEBUG(818, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'W') goto yy825; - if (yych == 'w') goto yy825; - goto yy282; + if (yych == 'I') goto yy819; + if (yych != 'i') goto yy280; yy819: YYDEBUG(819, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'H') goto yy820; - if (yych != 'h') goto yy282; + if (yych == 'L') goto yy820; + if (yych != 'l') goto yy280; yy820: YYDEBUG(820, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'I') goto yy821; - if (yych != 'i') goto yy282; + if (yych == 'E') goto yy821; + if (yych != 'e') goto yy280; yy821: YYDEBUG(821, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'L') goto yy822; - if (yych != 'l') goto yy282; -yy822: - YYDEBUG(822, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy823; - if (yych != 'e') goto yy282; -yy823: - YYDEBUG(823, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy281; + goto yy279; } - YYDEBUG(824, *YYCURSOR); + YYDEBUG(822, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); #line 990 "Zend/zend_language_scanner.l" { return T_ENDWHILE; } -#line 7583 "Zend/zend_language_scanner.c" +#line 7573 "Zend/zend_language_scanner.c" +yy823: + YYDEBUG(823, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'I') goto yy824; + if (yych != 'i') goto yy280; +yy824: + YYDEBUG(824, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'T') goto yy825; + if (yych != 't') goto yy280; yy825: YYDEBUG(825, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'I') goto yy826; - if (yych != 'i') goto yy282; + if (yych == 'C') goto yy826; + if (yych != 'c') goto yy280; yy826: YYDEBUG(826, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'T') goto yy827; - if (yych != 't') goto yy282; + if (yych == 'H') goto yy827; + if (yych != 'h') goto yy280; yy827: YYDEBUG(827, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'C') goto yy828; - if (yych != 'c') goto yy282; -yy828: - YYDEBUG(828, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'H') goto yy829; - if (yych != 'h') goto yy282; -yy829: - YYDEBUG(829, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy281; + goto yy279; } - YYDEBUG(830, *YYCURSOR); + YYDEBUG(828, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); #line 1034 "Zend/zend_language_scanner.l" { return T_ENDSWITCH; } -#line 7616 "Zend/zend_language_scanner.c" -yy831: - YYDEBUG(831, *YYCURSOR); +#line 7606 "Zend/zend_language_scanner.c" +yy829: + YYDEBUG(829, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy281; + goto yy279; } - YYDEBUG(832, *YYCURSOR); + YYDEBUG(830, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); #line 978 "Zend/zend_language_scanner.l" { return T_ENDIF; } -#line 7629 "Zend/zend_language_scanner.c" -yy833: - YYDEBUG(833, *YYCURSOR); +#line 7619 "Zend/zend_language_scanner.c" +yy831: + YYDEBUG(831, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'R') goto yy834; - if (yych != 'r') goto yy282; -yy834: - YYDEBUG(834, *YYCURSOR); + if (yych == 'R') goto yy832; + if (yych != 'r') goto yy280; +yy832: + YYDEBUG(832, *YYCURSOR); ++YYCURSOR; if ((yych = *YYCURSOR) <= '^') { if (yych <= '@') { - if (yych <= '/') goto yy835; - if (yych <= '9') goto yy281; + if (yych <= '/') goto yy833; + if (yych <= '9') goto yy279; } else { - if (yych == 'E') goto yy836; - if (yych <= 'Z') goto yy281; + if (yych == 'E') goto yy834; + if (yych <= 'Z') goto yy279; } } else { if (yych <= 'd') { - if (yych != '`') goto yy281; + if (yych != '`') goto yy279; } else { - if (yych <= 'e') goto yy836; - if (yych <= 'z') goto yy281; - if (yych >= 0x7F) goto yy281; + if (yych <= 'e') goto yy834; + if (yych <= 'z') goto yy279; + if (yych >= 0x7F) goto yy279; } } -yy835: - YYDEBUG(835, *YYCURSOR); +yy833: + YYDEBUG(833, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); #line 1002 "Zend/zend_language_scanner.l" { return T_ENDFOR; } -#line 7662 "Zend/zend_language_scanner.c" +#line 7652 "Zend/zend_language_scanner.c" +yy834: + YYDEBUG(834, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'A') goto yy835; + if (yych != 'a') goto yy280; +yy835: + YYDEBUG(835, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'C') goto yy836; + if (yych != 'c') goto yy280; yy836: YYDEBUG(836, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'A') goto yy837; - if (yych != 'a') goto yy282; + if (yych == 'H') goto yy837; + if (yych != 'h') goto yy280; yy837: YYDEBUG(837, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'C') goto yy838; - if (yych != 'c') goto yy282; -yy838: - YYDEBUG(838, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'H') goto yy839; - if (yych != 'h') goto yy282; -yy839: - YYDEBUG(839, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy281; + goto yy279; } - YYDEBUG(840, *YYCURSOR); + YYDEBUG(838, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); #line 1010 "Zend/zend_language_scanner.l" { return T_ENDFOREACH; } -#line 7690 "Zend/zend_language_scanner.c" +#line 7680 "Zend/zend_language_scanner.c" +yy839: + YYDEBUG(839, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'C') goto yy840; + if (yych != 'c') goto yy280; +yy840: + YYDEBUG(840, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'L') goto yy841; + if (yych != 'l') goto yy280; yy841: YYDEBUG(841, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'C') goto yy842; - if (yych != 'c') goto yy282; + if (yych == 'A') goto yy842; + if (yych != 'a') goto yy280; yy842: YYDEBUG(842, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'L') goto yy843; - if (yych != 'l') goto yy282; + if (yych == 'R') goto yy843; + if (yych != 'r') goto yy280; yy843: YYDEBUG(843, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'A') goto yy844; - if (yych != 'a') goto yy282; + if (yych == 'E') goto yy844; + if (yych != 'e') goto yy280; yy844: YYDEBUG(844, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'R') goto yy845; - if (yych != 'r') goto yy282; -yy845: - YYDEBUG(845, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy846; - if (yych != 'e') goto yy282; -yy846: - YYDEBUG(846, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy281; + goto yy279; } - YYDEBUG(847, *YYCURSOR); + YYDEBUG(845, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); #line 1018 "Zend/zend_language_scanner.l" { return T_ENDDECLARE; } -#line 7728 "Zend/zend_language_scanner.c" -yy848: - YYDEBUG(848, *YYCURSOR); +#line 7718 "Zend/zend_language_scanner.c" +yy846: + YYDEBUG(846, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'T') goto yy849; - if (yych != 't') goto yy282; -yy849: - YYDEBUG(849, *YYCURSOR); + if (yych == 'T') goto yy847; + if (yych != 't') goto yy280; +yy847: + YYDEBUG(847, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'Y') goto yy850; - if (yych != 'y') goto yy282; -yy850: - YYDEBUG(850, *YYCURSOR); + if (yych == 'Y') goto yy848; + if (yych != 'y') goto yy280; +yy848: + YYDEBUG(848, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy281; + goto yy279; } - YYDEBUG(851, *YYCURSOR); + YYDEBUG(849, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1200 "Zend/zend_language_scanner.l" +#line 1196 "Zend/zend_language_scanner.l" { return T_EMPTY; } -#line 7751 "Zend/zend_language_scanner.c" -yy852: - YYDEBUG(852, *YYCURSOR); +#line 7741 "Zend/zend_language_scanner.c" +yy850: + YYDEBUG(850, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy853; - if (yych != 'e') goto yy282; -yy853: - YYDEBUG(853, *YYCURSOR); + if (yych == 'E') goto yy851; + if (yych != 'e') goto yy280; +yy851: + YYDEBUG(851, *YYCURSOR); ++YYCURSOR; if ((yych = *YYCURSOR) <= '^') { if (yych <= '@') { - if (yych <= '/') goto yy854; - if (yych <= '9') goto yy281; + if (yych <= '/') goto yy852; + if (yych <= '9') goto yy279; } else { - if (yych == 'I') goto yy855; - if (yych <= 'Z') goto yy281; + if (yych == 'I') goto yy853; + if (yych <= 'Z') goto yy279; } } else { if (yych <= 'h') { - if (yych != '`') goto yy281; + if (yych != '`') goto yy279; } else { - if (yych <= 'i') goto yy855; - if (yych <= 'z') goto yy281; - if (yych >= 0x7F) goto yy281; + if (yych <= 'i') goto yy853; + if (yych <= 'z') goto yy279; + if (yych >= 0x7F) goto yy279; } } -yy854: - YYDEBUG(854, *YYCURSOR); +yy852: + YYDEBUG(852, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); #line 982 "Zend/zend_language_scanner.l" { return T_ELSE; } -#line 7784 "Zend/zend_language_scanner.c" -yy855: - YYDEBUG(855, *YYCURSOR); +#line 7774 "Zend/zend_language_scanner.c" +yy853: + YYDEBUG(853, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'F') goto yy856; - if (yych != 'f') goto yy282; -yy856: - YYDEBUG(856, *YYCURSOR); + if (yych == 'F') goto yy854; + if (yych != 'f') goto yy280; +yy854: + YYDEBUG(854, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy281; + goto yy279; } - YYDEBUG(857, *YYCURSOR); + YYDEBUG(855, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); #line 974 "Zend/zend_language_scanner.l" { return T_ELSEIF; } -#line 7802 "Zend/zend_language_scanner.c" -yy858: - YYDEBUG(858, *YYCURSOR); +#line 7792 "Zend/zend_language_scanner.c" +yy856: + YYDEBUG(856, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'O') goto yy859; - if (yych != 'o') goto yy282; -yy859: - YYDEBUG(859, *YYCURSOR); + if (yych == 'O') goto yy857; + if (yych != 'o') goto yy280; +yy857: + YYDEBUG(857, *YYCURSOR); ++YYCURSOR; if (yybm[0+(yych = *YYCURSOR)] & 8) { - goto yy281; + goto yy279; } - YYDEBUG(860, *YYCURSOR); + YYDEBUG(858, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); #line 1058 "Zend/zend_language_scanner.l" { return T_ECHO; } -#line 7820 "Zend/zend_language_scanner.c" +#line 7810 "Zend/zend_language_scanner.c" } /* *********************************** */ yyc_ST_LOOKING_FOR_PROPERTY: @@ -7855,39 +7845,39 @@ yyc_ST_LOOKING_FOR_PROPERTY: 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, }; - YYDEBUG(861, *YYCURSOR); + YYDEBUG(859, *YYCURSOR); YYFILL(2); yych = *YYCURSOR; if (yych <= '-') { if (yych <= '\r') { - if (yych <= 0x08) goto yy869; - if (yych <= '\n') goto yy863; - if (yych <= '\f') goto yy869; + if (yych <= 0x08) goto yy867; + if (yych <= '\n') goto yy861; + if (yych <= '\f') goto yy867; } else { - if (yych == ' ') goto yy863; - if (yych <= ',') goto yy869; - goto yy865; + if (yych == ' ') goto yy861; + if (yych <= ',') goto yy867; + goto yy863; } } else { if (yych <= '_') { - if (yych <= '@') goto yy869; - if (yych <= 'Z') goto yy867; - if (yych <= '^') goto yy869; - goto yy867; + if (yych <= '@') goto yy867; + if (yych <= 'Z') goto yy865; + if (yych <= '^') goto yy867; + goto yy865; } else { - if (yych <= '`') goto yy869; - if (yych <= 'z') goto yy867; - if (yych <= '~') goto yy869; - goto yy867; + if (yych <= '`') goto yy867; + if (yych <= 'z') goto yy865; + if (yych <= '~') goto yy867; + goto yy865; } } -yy863: - YYDEBUG(863, *YYCURSOR); +yy861: + YYDEBUG(861, *YYCURSOR); ++YYCURSOR; yych = *YYCURSOR; - goto yy875; -yy864: - YYDEBUG(864, *YYCURSOR); + goto yy873; +yy862: + YYDEBUG(862, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); #line 1087 "Zend/zend_language_scanner.l" { @@ -7897,13 +7887,13 @@ yy864: HANDLE_NEWLINES(yytext, yyleng); return T_WHITESPACE; } -#line 7901 "Zend/zend_language_scanner.c" -yy865: - YYDEBUG(865, *YYCURSOR); +#line 7891 "Zend/zend_language_scanner.c" +yy863: + YYDEBUG(863, *YYCURSOR); ++YYCURSOR; - if ((yych = *YYCURSOR) == '>') goto yy872; -yy866: - YYDEBUG(866, *YYCURSOR); + if ((yych = *YYCURSOR) == '>') goto yy870; +yy864: + YYDEBUG(864, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); #line 1106 "Zend/zend_language_scanner.l" { @@ -7911,14 +7901,14 @@ yy866: yy_pop_state(TSRMLS_C); goto restart; } -#line 7915 "Zend/zend_language_scanner.c" -yy867: - YYDEBUG(867, *YYCURSOR); +#line 7905 "Zend/zend_language_scanner.c" +yy865: + YYDEBUG(865, *YYCURSOR); ++YYCURSOR; yych = *YYCURSOR; - goto yy871; -yy868: - YYDEBUG(868, *YYCURSOR); + goto yy869; +yy866: + YYDEBUG(866, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); #line 1099 "Zend/zend_language_scanner.l" { @@ -7927,43 +7917,43 @@ yy868: zendlval->type = IS_STRING; return T_STRING; } -#line 7931 "Zend/zend_language_scanner.c" -yy869: - YYDEBUG(869, *YYCURSOR); +#line 7921 "Zend/zend_language_scanner.c" +yy867: + YYDEBUG(867, *YYCURSOR); yych = *++YYCURSOR; - goto yy866; -yy870: - YYDEBUG(870, *YYCURSOR); + goto yy864; +yy868: + YYDEBUG(868, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; -yy871: - YYDEBUG(871, *YYCURSOR); +yy869: + YYDEBUG(869, *YYCURSOR); if (yybm[0+yych] & 64) { - goto yy870; + goto yy868; } - goto yy868; -yy872: - YYDEBUG(872, *YYCURSOR); + goto yy866; +yy870: + YYDEBUG(870, *YYCURSOR); ++YYCURSOR; - YYDEBUG(873, *YYCURSOR); + YYDEBUG(871, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); #line 1095 "Zend/zend_language_scanner.l" { return T_OBJECT_OPERATOR; } -#line 7956 "Zend/zend_language_scanner.c" -yy874: - YYDEBUG(874, *YYCURSOR); +#line 7946 "Zend/zend_language_scanner.c" +yy872: + YYDEBUG(872, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; -yy875: - YYDEBUG(875, *YYCURSOR); +yy873: + YYDEBUG(873, *YYCURSOR); if (yybm[0+yych] & 128) { - goto yy874; + goto yy872; } - goto yy864; + goto yy862; } /* *********************************** */ yyc_ST_LOOKING_FOR_VARNAME: @@ -8002,27 +7992,27 @@ yyc_ST_LOOKING_FOR_VARNAME: 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, }; - YYDEBUG(876, *YYCURSOR); + YYDEBUG(874, *YYCURSOR); YYFILL(2); yych = *YYCURSOR; if (yych <= '_') { - if (yych <= '@') goto yy880; - if (yych <= 'Z') goto yy878; - if (yych <= '^') goto yy880; + if (yych <= '@') goto yy878; + if (yych <= 'Z') goto yy876; + if (yych <= '^') goto yy878; } else { - if (yych <= '`') goto yy880; - if (yych <= 'z') goto yy878; - if (yych <= '~') goto yy880; + if (yych <= '`') goto yy878; + if (yych <= 'z') goto yy876; + if (yych <= '~') goto yy878; } -yy878: - YYDEBUG(878, *YYCURSOR); +yy876: + YYDEBUG(876, *YYCURSOR); ++YYCURSOR; yych = *YYCURSOR; - goto yy883; -yy879: - YYDEBUG(879, *YYCURSOR); + goto yy881; +yy877: + YYDEBUG(877, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1378 "Zend/zend_language_scanner.l" +#line 1374 "Zend/zend_language_scanner.l" { zend_copy_value(zendlval, yytext, yyleng); zendlval->type = IS_STRING; @@ -8030,31 +8020,31 @@ yy879: yy_push_state(ST_IN_SCRIPTING TSRMLS_CC); return T_STRING_VARNAME; } -#line 8034 "Zend/zend_language_scanner.c" -yy880: - YYDEBUG(880, *YYCURSOR); +#line 8024 "Zend/zend_language_scanner.c" +yy878: + YYDEBUG(878, *YYCURSOR); ++YYCURSOR; - YYDEBUG(881, *YYCURSOR); + YYDEBUG(879, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1387 "Zend/zend_language_scanner.l" +#line 1383 "Zend/zend_language_scanner.l" { yyless(0); yy_pop_state(TSRMLS_C); yy_push_state(ST_IN_SCRIPTING TSRMLS_CC); goto restart; } -#line 8047 "Zend/zend_language_scanner.c" -yy882: - YYDEBUG(882, *YYCURSOR); +#line 8037 "Zend/zend_language_scanner.c" +yy880: + YYDEBUG(880, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; -yy883: - YYDEBUG(883, *YYCURSOR); +yy881: + YYDEBUG(881, *YYCURSOR); if (yybm[0+yych] & 128) { - goto yy882; + goto yy880; } - goto yy879; + goto yy877; } /* *********************************** */ yyc_ST_NOWDOC: @@ -8093,106 +8083,106 @@ yyc_ST_NOWDOC: 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, }; - YYDEBUG(884, *YYCURSOR); + YYDEBUG(882, *YYCURSOR); YYFILL(1); yych = *YYCURSOR; if (yybm[0+yych] & 16) { - goto yy886; + goto yy884; } - if (yych <= '\f') goto yy888; - goto yy890; -yy886: - YYDEBUG(886, *YYCURSOR); + if (yych <= '\f') goto yy886; + goto yy888; +yy884: + YYDEBUG(884, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - YYDEBUG(887, *YYCURSOR); + YYDEBUG(885, *YYCURSOR); if (yybm[0+yych] & 16) { - goto yy886; + goto yy884; } - if (yych <= '\f') goto yy897; - goto yy899; -yy888: - YYDEBUG(888, *YYCURSOR); + if (yych <= '\f') goto yy895; + goto yy897; +yy886: + YYDEBUG(886, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - YYDEBUG(889, *YYCURSOR); + YYDEBUG(887, *YYCURSOR); if (yybm[0+yych] & 32) { - goto yy888; + goto yy886; } if (yych <= '^') { if (yych <= '\r') { - if (yych <= '\f') goto yy886; + if (yych <= '\f') goto yy884; } else { - if (yych <= '@') goto yy886; - if (yych <= 'Z') goto yy892; - goto yy886; + if (yych <= '@') goto yy884; + if (yych <= 'Z') goto yy890; + goto yy884; } } else { if (yych <= '`') { - if (yych <= '_') goto yy892; - goto yy886; + if (yych <= '_') goto yy890; + goto yy884; } else { - if (yych <= 'z') goto yy892; - if (yych <= '~') goto yy886; - goto yy892; + if (yych <= 'z') goto yy890; + if (yych <= '~') goto yy884; + goto yy890; } } -yy890: - YYDEBUG(890, *YYCURSOR); +yy888: + YYDEBUG(888, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - YYDEBUG(891, *YYCURSOR); + YYDEBUG(889, *YYCURSOR); if (yybm[0+yych] & 32) { - goto yy888; + goto yy886; } if (yych <= '^') { if (yych <= '\r') { - if (yych <= '\f') goto yy886; - goto yy890; + if (yych <= '\f') goto yy884; + goto yy888; } else { - if (yych <= '@') goto yy886; - if (yych >= '[') goto yy886; + if (yych <= '@') goto yy884; + if (yych >= '[') goto yy884; } } else { if (yych <= '`') { - if (yych >= '`') goto yy886; + if (yych >= '`') goto yy884; } else { - if (yych <= 'z') goto yy892; - if (yych <= '~') goto yy886; + if (yych <= 'z') goto yy890; + if (yych <= '~') goto yy884; } } -yy892: - YYDEBUG(892, *YYCURSOR); +yy890: + YYDEBUG(890, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - YYDEBUG(893, *YYCURSOR); + YYDEBUG(891, *YYCURSOR); if (yybm[0+yych] & 128) { - goto yy892; + goto yy890; } if (yych <= '\f') { - if (yych == '\n') goto yy895; - goto yy886; + if (yych == '\n') goto yy893; + goto yy884; } else { - if (yych <= '\r') goto yy895; - if (yych != ';') goto yy886; + if (yych <= '\r') goto yy893; + if (yych != ';') goto yy884; } - YYDEBUG(894, *YYCURSOR); + YYDEBUG(892, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; if (yybm[0+yych] & 16) { - goto yy886; + goto yy884; } -yy895: - YYDEBUG(895, *YYCURSOR); +yy893: + YYDEBUG(893, *YYCURSOR); ++YYCURSOR; - YYDEBUG(896, *YYCURSOR); + YYDEBUG(894, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2077 "Zend/zend_language_scanner.l" +#line 2073 "Zend/zend_language_scanner.l" { char *end = yytext + yyleng - 1; @@ -8232,55 +8222,55 @@ yy895: yymore(); } } -#line 8236 "Zend/zend_language_scanner.c" -yy897: - YYDEBUG(897, *YYCURSOR); +#line 8226 "Zend/zend_language_scanner.c" +yy895: + YYDEBUG(895, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - YYDEBUG(898, *YYCURSOR); + YYDEBUG(896, *YYCURSOR); if (yych <= 'Z') { if (yych <= '\f') { - if (yych == '\n') goto yy897; - goto yy886; + if (yych == '\n') goto yy895; + goto yy884; } else { - if (yych <= '\r') goto yy899; - if (yych <= '@') goto yy886; - goto yy892; + if (yych <= '\r') goto yy897; + if (yych <= '@') goto yy884; + goto yy890; } } else { if (yych <= '`') { - if (yych == '_') goto yy892; - goto yy886; + if (yych == '_') goto yy890; + goto yy884; } else { - if (yych <= 'z') goto yy892; - if (yych <= '~') goto yy886; - goto yy892; + if (yych <= 'z') goto yy890; + if (yych <= '~') goto yy884; + goto yy890; } } -yy899: - YYDEBUG(899, *YYCURSOR); +yy897: + YYDEBUG(897, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - YYDEBUG(900, *YYCURSOR); + YYDEBUG(898, *YYCURSOR); if (yych <= 'Z') { if (yych <= '\f') { - if (yych == '\n') goto yy897; - goto yy886; + if (yych == '\n') goto yy895; + goto yy884; } else { - if (yych <= '\r') goto yy899; - if (yych <= '@') goto yy886; - goto yy892; + if (yych <= '\r') goto yy897; + if (yych <= '@') goto yy884; + goto yy890; } } else { if (yych <= '`') { - if (yych == '_') goto yy892; - goto yy886; + if (yych == '_') goto yy890; + goto yy884; } else { - if (yych <= 'z') goto yy892; - if (yych <= '~') goto yy886; - goto yy892; + if (yych <= 'z') goto yy890; + if (yych <= '~') goto yy884; + goto yy890; } } } @@ -8321,52 +8311,52 @@ yyc_ST_ONE_LINE_COMMENT: 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, }; - YYDEBUG(901, *YYCURSOR); + YYDEBUG(899, *YYCURSOR); YYFILL(2); yych = *YYCURSOR; if (yybm[0+yych] & 128) { - goto yy907; + goto yy905; } - if (yych <= '\f') goto yy910; - if (yych <= '\r') goto yy911; - if (yych <= '=') goto yy903; - if (yych <= '>') goto yy905; - goto yy906; -yy903: - YYDEBUG(903, *YYCURSOR); + if (yych <= '\f') goto yy908; + if (yych <= '\r') goto yy909; + if (yych <= '=') goto yy901; + if (yych <= '>') goto yy903; + goto yy904; +yy901: + YYDEBUG(901, *YYCURSOR); ++YYCURSOR; - if ((yych = *YYCURSOR) == '>') goto yy915; -yy904: - YYDEBUG(904, *YYCURSOR); + if ((yych = *YYCURSOR) == '>') goto yy913; +yy902: + YYDEBUG(902, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1745 "Zend/zend_language_scanner.l" +#line 1741 "Zend/zend_language_scanner.l" { yymore(); } -#line 8347 "Zend/zend_language_scanner.c" -yy905: - YYDEBUG(905, *YYCURSOR); +#line 8337 "Zend/zend_language_scanner.c" +yy903: + YYDEBUG(903, *YYCURSOR); yych = *++YYCURSOR; - goto yy904; -yy906: - YYDEBUG(906, *YYCURSOR); + goto yy902; +yy904: + YYDEBUG(904, *YYCURSOR); yych = *++YYCURSOR; - if (yych == '>') goto yy915; - goto yy904; -yy907: - YYDEBUG(907, *YYCURSOR); + if (yych == '>') goto yy913; + goto yy902; +yy905: + YYDEBUG(905, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - YYDEBUG(908, *YYCURSOR); + YYDEBUG(906, *YYCURSOR); if (yybm[0+yych] & 128) { - goto yy907; + goto yy905; } - goto yy914; -yy909: - YYDEBUG(909, *YYCURSOR); + goto yy912; +yy907: + YYDEBUG(907, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1749 "Zend/zend_language_scanner.l" +#line 1745 "Zend/zend_language_scanner.l" { switch (yytext[yyleng-1]) { case '?': case '%': case '>': @@ -8384,20 +8374,20 @@ yy909: return T_COMMENT; } } -#line 8388 "Zend/zend_language_scanner.c" -yy910: - YYDEBUG(910, *YYCURSOR); +#line 8378 "Zend/zend_language_scanner.c" +yy908: + YYDEBUG(908, *YYCURSOR); yych = *++YYCURSOR; - goto yy909; -yy911: - YYDEBUG(911, *YYCURSOR); + goto yy907; +yy909: + YYDEBUG(909, *YYCURSOR); yych = *++YYCURSOR; - if (yych != '\n') goto yy909; - YYDEBUG(912, *YYCURSOR); + if (yych != '\n') goto yy907; + YYDEBUG(910, *YYCURSOR); ++YYCURSOR; - YYDEBUG(913, *YYCURSOR); + YYDEBUG(911, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1767 "Zend/zend_language_scanner.l" +#line 1763 "Zend/zend_language_scanner.l" { zendlval->value.str.val = yytext; /* no copying - intentional */ zendlval->value.str.len = yyleng; @@ -8406,17 +8396,17 @@ yy911: CG(zend_lineno)++; return T_COMMENT; } -#line 8410 "Zend/zend_language_scanner.c" -yy914: - YYDEBUG(914, *YYCURSOR); +#line 8400 "Zend/zend_language_scanner.c" +yy912: + YYDEBUG(912, *YYCURSOR); yych = *++YYCURSOR; - goto yy909; -yy915: - YYDEBUG(915, *YYCURSOR); + goto yy907; +yy913: + YYDEBUG(913, *YYCURSOR); ++YYCURSOR; - YYDEBUG(916, *YYCURSOR); + YYDEBUG(914, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1776 "Zend/zend_language_scanner.l" +#line 1772 "Zend/zend_language_scanner.l" { if (CG(asp_tags) || yytext[yyleng-2] != '%') { /* asp comment? */ zendlval->value.str.val = yytext; /* no copying - intentional */ @@ -8429,7 +8419,7 @@ yy915: yymore(); } } -#line 8433 "Zend/zend_language_scanner.c" +#line 8423 "Zend/zend_language_scanner.c" } /* *********************************** */ yyc_ST_VAR_OFFSET: @@ -8468,69 +8458,69 @@ yyc_ST_VAR_OFFSET: 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, }; - YYDEBUG(917, *YYCURSOR); + YYDEBUG(915, *YYCURSOR); YYFILL(3); yych = *YYCURSOR; if (yych <= '/') { if (yych <= ' ') { if (yych <= '\f') { - if (yych <= 0x08) goto yy931; - if (yych <= '\n') goto yy927; - goto yy931; + if (yych <= 0x08) goto yy929; + if (yych <= '\n') goto yy925; + goto yy929; } else { - if (yych <= '\r') goto yy927; - if (yych <= 0x1F) goto yy931; - goto yy927; + if (yych <= '\r') goto yy925; + if (yych <= 0x1F) goto yy929; + goto yy925; } } else { if (yych <= '$') { - if (yych <= '"') goto yy926; - if (yych <= '#') goto yy927; - goto yy922; + if (yych <= '"') goto yy924; + if (yych <= '#') goto yy925; + goto yy920; } else { - if (yych == '\'') goto yy927; - goto yy926; + if (yych == '\'') goto yy925; + goto yy924; } } } else { if (yych <= '\\') { if (yych <= '@') { - if (yych <= '0') goto yy919; - if (yych <= '9') goto yy921; - goto yy926; + if (yych <= '0') goto yy917; + if (yych <= '9') goto yy919; + goto yy924; } else { - if (yych <= 'Z') goto yy929; - if (yych <= '[') goto yy926; - goto yy927; + if (yych <= 'Z') goto yy927; + if (yych <= '[') goto yy924; + goto yy925; } } else { if (yych <= '_') { - if (yych <= ']') goto yy924; - if (yych <= '^') goto yy926; - goto yy929; + if (yych <= ']') goto yy922; + if (yych <= '^') goto yy924; + goto yy927; } else { - if (yych <= '`') goto yy926; - if (yych <= 'z') goto yy929; - if (yych <= '~') goto yy926; - goto yy929; + if (yych <= '`') goto yy924; + if (yych <= 'z') goto yy927; + if (yych <= '~') goto yy924; + goto yy927; } } } -yy919: - YYDEBUG(919, *YYCURSOR); +yy917: + YYDEBUG(917, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'W') { - if (yych <= '/') goto yy920; - if (yych <= '9') goto yy942; + if (yych <= '/') goto yy918; + if (yych <= '9') goto yy940; } else { - if (yych <= 'X') goto yy940; - if (yych == 'x') goto yy940; + if (yych <= 'X') goto yy938; + if (yych == 'x') goto yy938; } -yy920: - YYDEBUG(920, *YYCURSOR); +yy918: + YYDEBUG(918, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1437 "Zend/zend_language_scanner.l" +#line 1433 "Zend/zend_language_scanner.l" { /* Offset could be treated as a long */ if (yyleng < MAX_LENGTH_OF_LONG - 1 || (yyleng == MAX_LENGTH_OF_LONG - 1 && strcmp(yytext, long_min_digits) < 0)) { zendlval->value.lval = strtol(yytext, NULL, 10); @@ -8542,53 +8532,53 @@ yy920: } return T_NUM_STRING; } -#line 8546 "Zend/zend_language_scanner.c" -yy921: - YYDEBUG(921, *YYCURSOR); +#line 8536 "Zend/zend_language_scanner.c" +yy919: + YYDEBUG(919, *YYCURSOR); yych = *++YYCURSOR; - goto yy939; -yy922: - YYDEBUG(922, *YYCURSOR); + goto yy937; +yy920: + YYDEBUG(920, *YYCURSOR); ++YYCURSOR; if ((yych = *YYCURSOR) <= '_') { - if (yych <= '@') goto yy923; - if (yych <= 'Z') goto yy935; - if (yych >= '_') goto yy935; + if (yych <= '@') goto yy921; + if (yych <= 'Z') goto yy933; + if (yych >= '_') goto yy933; } else { - if (yych <= '`') goto yy923; - if (yych <= 'z') goto yy935; - if (yych >= 0x7F) goto yy935; + if (yych <= '`') goto yy921; + if (yych <= 'z') goto yy933; + if (yych >= 0x7F) goto yy933; } -yy923: - YYDEBUG(923, *YYCURSOR); +yy921: + YYDEBUG(921, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1720 "Zend/zend_language_scanner.l" +#line 1716 "Zend/zend_language_scanner.l" { /* Only '[' can be valid, but returning other tokens will allow a more explicit parse error */ return yytext[0]; } -#line 8571 "Zend/zend_language_scanner.c" -yy924: - YYDEBUG(924, *YYCURSOR); +#line 8561 "Zend/zend_language_scanner.c" +yy922: + YYDEBUG(922, *YYCURSOR); ++YYCURSOR; - YYDEBUG(925, *YYCURSOR); + YYDEBUG(923, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1715 "Zend/zend_language_scanner.l" +#line 1711 "Zend/zend_language_scanner.l" { yy_pop_state(TSRMLS_C); return ']'; } -#line 8582 "Zend/zend_language_scanner.c" -yy926: - YYDEBUG(926, *YYCURSOR); +#line 8572 "Zend/zend_language_scanner.c" +yy924: + YYDEBUG(924, *YYCURSOR); yych = *++YYCURSOR; - goto yy923; -yy927: - YYDEBUG(927, *YYCURSOR); + goto yy921; +yy925: + YYDEBUG(925, *YYCURSOR); ++YYCURSOR; - YYDEBUG(928, *YYCURSOR); + YYDEBUG(926, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1725 "Zend/zend_language_scanner.l" +#line 1721 "Zend/zend_language_scanner.l" { /* Invalid rule to return a more explicit parse error with proper line number */ yyless(0); @@ -8596,126 +8586,126 @@ yy927: ZVAL_EMPTY_STRING(zendlval); /* Empty since it won't be used */ return T_ENCAPSED_AND_WHITESPACE; } -#line 8600 "Zend/zend_language_scanner.c" -yy929: - YYDEBUG(929, *YYCURSOR); +#line 8590 "Zend/zend_language_scanner.c" +yy927: + YYDEBUG(927, *YYCURSOR); ++YYCURSOR; yych = *YYCURSOR; - goto yy934; -yy930: - YYDEBUG(930, *YYCURSOR); + goto yy932; +yy928: + YYDEBUG(928, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1733 "Zend/zend_language_scanner.l" +#line 1729 "Zend/zend_language_scanner.l" { zend_copy_value(zendlval, yytext, yyleng); zendlval->type = IS_STRING; return T_STRING; } -#line 8615 "Zend/zend_language_scanner.c" -yy931: - YYDEBUG(931, *YYCURSOR); +#line 8605 "Zend/zend_language_scanner.c" +yy929: + YYDEBUG(929, *YYCURSOR); ++YYCURSOR; - YYDEBUG(932, *YYCURSOR); + YYDEBUG(930, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2130 "Zend/zend_language_scanner.l" +#line 2126 "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 8626 "Zend/zend_language_scanner.c" -yy933: - YYDEBUG(933, *YYCURSOR); +#line 8616 "Zend/zend_language_scanner.c" +yy931: + YYDEBUG(931, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; -yy934: - YYDEBUG(934, *YYCURSOR); +yy932: + YYDEBUG(932, *YYCURSOR); if (yybm[0+yych] & 32) { - goto yy933; + goto yy931; } - goto yy930; -yy935: - YYDEBUG(935, *YYCURSOR); + goto yy928; +yy933: + YYDEBUG(933, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - YYDEBUG(936, *YYCURSOR); + YYDEBUG(934, *YYCURSOR); if (yych <= '^') { if (yych <= '9') { - if (yych >= '0') goto yy935; + if (yych >= '0') goto yy933; } else { - if (yych <= '@') goto yy937; - if (yych <= 'Z') goto yy935; + if (yych <= '@') goto yy935; + if (yych <= 'Z') goto yy933; } } else { if (yych <= '`') { - if (yych <= '_') goto yy935; + if (yych <= '_') goto yy933; } else { - if (yych <= 'z') goto yy935; - if (yych >= 0x7F) goto yy935; + if (yych <= 'z') goto yy933; + if (yych >= 0x7F) goto yy933; } } -yy937: - YYDEBUG(937, *YYCURSOR); +yy935: + YYDEBUG(935, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1709 "Zend/zend_language_scanner.l" +#line 1705 "Zend/zend_language_scanner.l" { zend_copy_value(zendlval, (yytext+1), (yyleng-1)); zendlval->type = IS_STRING; return T_VARIABLE; } -#line 8668 "Zend/zend_language_scanner.c" -yy938: - YYDEBUG(938, *YYCURSOR); +#line 8658 "Zend/zend_language_scanner.c" +yy936: + YYDEBUG(936, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; -yy939: - YYDEBUG(939, *YYCURSOR); +yy937: + YYDEBUG(937, *YYCURSOR); if (yybm[0+yych] & 64) { - goto yy938; + goto yy936; } - goto yy920; -yy940: - YYDEBUG(940, *YYCURSOR); + goto yy918; +yy938: + YYDEBUG(938, *YYCURSOR); yych = *++YYCURSOR; if (yybm[0+yych] & 128) { - goto yy945; + goto yy943; } - YYDEBUG(941, *YYCURSOR); + YYDEBUG(939, *YYCURSOR); YYCURSOR = YYMARKER; - goto yy920; -yy942: - YYDEBUG(942, *YYCURSOR); + goto yy918; +yy940: + YYDEBUG(940, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - YYDEBUG(943, *YYCURSOR); - if (yych <= '/') goto yy944; - if (yych <= '9') goto yy942; -yy944: - YYDEBUG(944, *YYCURSOR); + YYDEBUG(941, *YYCURSOR); + if (yych <= '/') goto yy942; + if (yych <= '9') goto yy940; +yy942: + YYDEBUG(942, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1449 "Zend/zend_language_scanner.l" +#line 1445 "Zend/zend_language_scanner.l" { /* Offset must be treated as a string */ zendlval->value.str.val = (char *)estrndup(yytext, yyleng); zendlval->value.str.len = yyleng; zendlval->type = IS_STRING; return T_NUM_STRING; } -#line 8707 "Zend/zend_language_scanner.c" -yy945: - YYDEBUG(945, *YYCURSOR); +#line 8697 "Zend/zend_language_scanner.c" +yy943: + YYDEBUG(943, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - YYDEBUG(946, *YYCURSOR); + YYDEBUG(944, *YYCURSOR); if (yybm[0+yych] & 128) { - goto yy945; + goto yy943; } - goto yy944; + goto yy942; } } -#line 2135 "Zend/zend_language_scanner.l" +#line 2131 "Zend/zend_language_scanner.l" } diff --git a/Zend/zend_language_scanner.l b/Zend/zend_language_scanner.l index cd7d2ba530..8952b8ee46 100644 --- a/Zend/zend_language_scanner.l +++ b/Zend/zend_language_scanner.l @@ -1113,10 +1113,6 @@ 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 3b2d270fd0..175315884a 100644 --- a/Zend/zend_language_scanner_defs.h +++ b/Zend/zend_language_scanner_defs.h @@ -1,4 +1,4 @@ -/* Generated by re2c 0.13.6.dev on Tue Nov 4 01:40:34 2008 */ +/* Generated by re2c 0.13.5 on Tue Aug 12 20:38:47 2008 */ #line 3 "Zend/zend_language_scanner_defs.h" enum YYCONDTYPE { diff --git a/Zend/zend_list.h b/Zend/zend_list.h index 4472b1a4e4..ffd54cb14d 100644 --- a/Zend/zend_list.h +++ b/Zend/zend_list.h @@ -95,16 +95,10 @@ extern ZEND_API int le_index_ptr; /* list entry type for index pointers */ #define ZEND_FETCH_RESOURCE(rsrc, rsrc_type, passed_id, default_id, resource_type_name, resource_type) \ rsrc = (rsrc_type) zend_fetch_resource(passed_id TSRMLS_CC, default_id, resource_type_name, NULL, 1, resource_type); \ ZEND_VERIFY_RESOURCE(rsrc); - -#define ZEND_FETCH_RESOURCE_NO_RETURN(rsrc, rsrc_type, passed_id, default_id, resource_type_name, resource_type) \ - (rsrc = (rsrc_type) zend_fetch_resource(passed_id TSRMLS_CC, default_id, resource_type_name, NULL, 1, resource_type)) #define ZEND_FETCH_RESOURCE2(rsrc, rsrc_type, passed_id, default_id, resource_type_name, resource_type1, resource_type2) \ rsrc = (rsrc_type) zend_fetch_resource(passed_id TSRMLS_CC, default_id, resource_type_name, NULL, 2, resource_type1, resource_type2); \ ZEND_VERIFY_RESOURCE(rsrc); - -#define ZEND_FETCH_RESOURCE2_NO_RETURN(rsrc, rsrc_type, passed_id, default_id, resource_type_name, resource_type1, resource_type2) \ - (rsrc = (rsrc_type) zend_fetch_resource(passed_id TSRMLS_CC, default_id, resource_type_name, NULL, 2, resource_type1, resource_type2)) #define ZEND_REGISTER_RESOURCE(rsrc_result, rsrc_pointer, rsrc_type) \ zend_register_resource(rsrc_result, rsrc_pointer, rsrc_type); diff --git a/Zend/zend_object_handlers.c b/Zend/zend_object_handlers.c index 0c0a4522a9..49dbf5ceb1 100644 --- a/Zend/zend_object_handlers.c +++ b/Zend/zend_object_handlers.c @@ -345,7 +345,6 @@ zval *zend_std_read_property(zval *object, zval *member, int type TSRMLS_DC) /* zend_get_property_guard(zobj, property_info, member, &guard) == SUCCESS && !guard->in_get) { /* have getter - try with it! */ - Z_ADDREF_P(object); guard->in_get = 1; /* prevent circular getting */ rv = zend_std_call_getter(object, member TSRMLS_CC); guard->in_get = 0; @@ -370,7 +369,6 @@ zval *zend_std_read_property(zval *object, zval *member, int type TSRMLS_DC) /* } else { retval = &EG(uninitialized_zval_ptr); } - zval_ptr_dtor(&object); } else { if (!silent) { zend_error(E_NOTICE,"Undefined property: %s::$%s", zobj->ce->name, Z_STRVAL_P(member)); @@ -441,14 +439,12 @@ static void zend_std_write_property(zval *object, zval *member, zval *value TSRM if (zobj->ce->__set && zend_get_property_guard(zobj, property_info, member, &guard) == SUCCESS && !guard->in_set) { - Z_ADDREF_P(object); guard->in_set = 1; /* prevent circular setting */ if (zend_std_call_setter(object, member, value TSRMLS_CC) != SUCCESS) { /* for now, just ignore it - __set should take care of warnings, etc. */ } setter_done = 1; guard->in_set = 0; - zval_ptr_dtor(&object); } if (!setter_done && property_info) { zval **foo; @@ -624,11 +620,9 @@ static void zend_std_unset_property(zval *object, zval *member TSRMLS_DC) /* {{{ zend_get_property_guard(zobj, property_info, member, &guard) == SUCCESS && !guard->in_unset) { /* have unseter - try with it! */ - Z_ADDREF_P(object); guard->in_unset = 1; /* prevent circular unsetting */ zend_std_call_unsetter(object, member TSRMLS_CC); guard->in_unset = 0; - zval_ptr_dtor(&object); } } @@ -1123,7 +1117,6 @@ static int zend_std_has_property(zval *object, zval *member, int has_set_exists zval *rv; /* have issetter - try with it! */ - Z_ADDREF_P(object); guard->in_isset = 1; /* prevent circular getting */ rv = zend_std_call_issetter(object, member TSRMLS_CC); if (rv) { @@ -1147,7 +1140,6 @@ static int zend_std_has_property(zval *object, zval *member, int has_set_exists } } guard->in_isset = 0; - zval_ptr_dtor(&object); } } else { switch (has_set_exists) { @@ -1270,7 +1262,7 @@ ZEND_API int zend_std_cast_object_tostring(zval *readobj, zval *writeobj, int ty } /* }}} */ -int zend_std_get_closure(zval *obj, zend_class_entry **ce_ptr, zend_function **fptr_ptr, zval **zobj_ptr TSRMLS_DC) /* {{{ */ +int zend_std_get_closure(zval *obj, zend_class_entry **ce_ptr, zend_function **fptr_ptr, zval **zobj_ptr, zval ***zobj_ptr_ptr TSRMLS_DC) /* {{{ */ { zend_class_entry *ce; if (Z_TYPE_P(obj) != IS_OBJECT) { @@ -1288,10 +1280,16 @@ int zend_std_get_closure(zval *obj, zend_class_entry **ce_ptr, zend_function **f if (zobj_ptr) { *zobj_ptr = NULL; } + if (zobj_ptr_ptr) { + *zobj_ptr_ptr = NULL; + } } else { if (zobj_ptr) { *zobj_ptr = obj; } + if (zobj_ptr_ptr) { + *zobj_ptr_ptr = NULL; + } } return SUCCESS; } diff --git a/Zend/zend_object_handlers.h b/Zend/zend_object_handlers.h index ed8c750345..0d8a46b1bf 100644 --- a/Zend/zend_object_handlers.h +++ b/Zend/zend_object_handlers.h @@ -108,7 +108,7 @@ typedef int (*zend_object_cast_t)(zval *readobj, zval *retval, int type TSRMLS_D * Returns FAILURE if the object does not have any sense of overloaded dimensions */ typedef int (*zend_object_count_elements_t)(zval *object, long *count TSRMLS_DC); -typedef int (*zend_object_get_closure_t)(zval *obj, zend_class_entry **ce_ptr, union _zend_function **fptr_ptr, zval **zobj_ptr TSRMLS_DC); +typedef int (*zend_object_get_closure_t)(zval *obj, zend_class_entry **ce_ptr, union _zend_function **fptr_ptr, zval **zobj_ptr, zval ***zobj_ptr_ptr TSRMLS_DC); struct _zend_object_handlers { /* general object functions */ diff --git a/Zend/zend_operators.c b/Zend/zend_operators.c index db60de5229..b050a8d94d 100644 --- a/Zend/zend_operators.c +++ b/Zend/zend_operators.c @@ -30,7 +30,6 @@ #include "zend_multiply.h" #include "zend_strtod.h" #include "zend_exceptions.h" -#include "zend_float.h" #define LONG_SIGN_MASK (1L << (8*sizeof(long)-1)) @@ -776,7 +775,6 @@ ZEND_API void multi_convert_to_string_ex(int argc, ...) ZEND_API int add_function(zval *result, zval *op1, zval *op2 TSRMLS_DC) { - ZEND_FLOAT_DECLARE zval op1_copy, op2_copy; int converted = 0; @@ -789,9 +787,7 @@ ZEND_API int add_function(zval *result, zval *op1, zval *op2 TSRMLS_DC) if ((Z_LVAL_P(op1) & LONG_SIGN_MASK) == (Z_LVAL_P(op2) & LONG_SIGN_MASK) && (Z_LVAL_P(op1) & LONG_SIGN_MASK) != (lval & LONG_SIGN_MASK)) { - ZEND_FLOAT_ENSURE(); ZVAL_DOUBLE(result, (double) Z_LVAL_P(op1) + (double) Z_LVAL_P(op2)); - ZEND_FLOAT_RESTORE(); } else { ZVAL_LONG(result, lval); } @@ -799,21 +795,15 @@ ZEND_API int add_function(zval *result, zval *op1, zval *op2 TSRMLS_DC) } case TYPE_PAIR(IS_LONG, IS_DOUBLE): - ZEND_FLOAT_ENSURE(); ZVAL_DOUBLE(result, ((double)Z_LVAL_P(op1)) + Z_DVAL_P(op2)); - ZEND_FLOAT_RESTORE(); return SUCCESS; case TYPE_PAIR(IS_DOUBLE, IS_LONG): - ZEND_FLOAT_ENSURE(); ZVAL_DOUBLE(result, Z_DVAL_P(op1) + ((double)Z_LVAL_P(op2))); - ZEND_FLOAT_RESTORE(); return SUCCESS; case TYPE_PAIR(IS_DOUBLE, IS_DOUBLE): - ZEND_FLOAT_ENSURE(); ZVAL_DOUBLE(result, Z_DVAL_P(op1) + Z_DVAL_P(op2)); - ZEND_FLOAT_RESTORE(); return SUCCESS; case TYPE_PAIR(IS_ARRAY, IS_ARRAY): { @@ -847,7 +837,6 @@ ZEND_API int add_function(zval *result, zval *op1, zval *op2 TSRMLS_DC) ZEND_API int sub_function(zval *result, zval *op1, zval *op2 TSRMLS_DC) { - ZEND_FLOAT_DECLARE zval op1_copy, op2_copy; int converted = 0; @@ -860,9 +849,7 @@ ZEND_API int sub_function(zval *result, zval *op1, zval *op2 TSRMLS_DC) if ((Z_LVAL_P(op1) & LONG_SIGN_MASK) != (Z_LVAL_P(op2) & LONG_SIGN_MASK) && (Z_LVAL_P(op1) & LONG_SIGN_MASK) != (lval & LONG_SIGN_MASK)) { - ZEND_FLOAT_ENSURE(); ZVAL_DOUBLE(result, (double) Z_LVAL_P(op1) - (double) Z_LVAL_P(op2)); - ZEND_FLOAT_RESTORE(); } else { ZVAL_LONG(result, lval); } @@ -870,21 +857,15 @@ ZEND_API int sub_function(zval *result, zval *op1, zval *op2 TSRMLS_DC) } case TYPE_PAIR(IS_LONG, IS_DOUBLE): - ZEND_FLOAT_ENSURE(); ZVAL_DOUBLE(result, ((double)Z_LVAL_P(op1)) - Z_DVAL_P(op2)); - ZEND_FLOAT_RESTORE(); return SUCCESS; case TYPE_PAIR(IS_DOUBLE, IS_LONG): - ZEND_FLOAT_ENSURE(); ZVAL_DOUBLE(result, Z_DVAL_P(op1) - ((double)Z_LVAL_P(op2))); - ZEND_FLOAT_RESTORE(); return SUCCESS; case TYPE_PAIR(IS_DOUBLE, IS_DOUBLE): - ZEND_FLOAT_ENSURE(); ZVAL_DOUBLE(result, Z_DVAL_P(op1) - Z_DVAL_P(op2)); - ZEND_FLOAT_RESTORE(); return SUCCESS; default: @@ -903,7 +884,6 @@ ZEND_API int sub_function(zval *result, zval *op1, zval *op2 TSRMLS_DC) ZEND_API int mul_function(zval *result, zval *op1, zval *op2 TSRMLS_DC) { - ZEND_FLOAT_DECLARE zval op1_copy, op2_copy; int converted = 0; @@ -912,29 +892,21 @@ ZEND_API int mul_function(zval *result, zval *op1, zval *op2 TSRMLS_DC) case TYPE_PAIR(IS_LONG, IS_LONG): { long overflow; - ZEND_FLOAT_ENSURE(); ZEND_SIGNED_MULTIPLY_LONG(Z_LVAL_P(op1),Z_LVAL_P(op2), Z_LVAL_P(result),Z_DVAL_P(result),overflow); - ZEND_FLOAT_RESTORE(); Z_TYPE_P(result) = overflow ? IS_DOUBLE : IS_LONG; return SUCCESS; } case TYPE_PAIR(IS_LONG, IS_DOUBLE): - ZEND_FLOAT_ENSURE(); ZVAL_DOUBLE(result, ((double)Z_LVAL_P(op1)) * Z_DVAL_P(op2)); - ZEND_FLOAT_RESTORE(); return SUCCESS; case TYPE_PAIR(IS_DOUBLE, IS_LONG): - ZEND_FLOAT_ENSURE(); ZVAL_DOUBLE(result, Z_DVAL_P(op1) * ((double)Z_LVAL_P(op2))); - ZEND_FLOAT_RESTORE(); return SUCCESS; case TYPE_PAIR(IS_DOUBLE, IS_DOUBLE): - ZEND_FLOAT_ENSURE(); ZVAL_DOUBLE(result, Z_DVAL_P(op1) * Z_DVAL_P(op2)); - ZEND_FLOAT_RESTORE(); return SUCCESS; default: @@ -952,7 +924,6 @@ ZEND_API int mul_function(zval *result, zval *op1, zval *op2 TSRMLS_DC) ZEND_API int div_function(zval *result, zval *op1, zval *op2 TSRMLS_DC) { - ZEND_FLOAT_DECLARE zval op1_copy, op2_copy; int converted = 0; @@ -965,17 +936,13 @@ ZEND_API int div_function(zval *result, zval *op1, zval *op2 TSRMLS_DC) return FAILURE; /* division by zero */ } else if (Z_LVAL_P(op2) == -1 && Z_LVAL_P(op1) == LONG_MIN) { /* Prevent overflow error/crash */ - ZEND_FLOAT_ENSURE(); ZVAL_DOUBLE(result, (double) LONG_MIN / -1); - ZEND_FLOAT_RESTORE(); return SUCCESS; } if (Z_LVAL_P(op1) % Z_LVAL_P(op2) == 0) { /* integer */ ZVAL_LONG(result, Z_LVAL_P(op1) / Z_LVAL_P(op2)); } else { - ZEND_FLOAT_ENSURE(); ZVAL_DOUBLE(result, ((double) Z_LVAL_P(op1)) / Z_LVAL_P(op2)); - ZEND_FLOAT_RESTORE(); } return SUCCESS; @@ -985,9 +952,7 @@ ZEND_API int div_function(zval *result, zval *op1, zval *op2 TSRMLS_DC) ZVAL_BOOL(result, 0); return FAILURE; /* division by zero */ } - ZEND_FLOAT_ENSURE(); ZVAL_DOUBLE(result, Z_DVAL_P(op1) / (double)Z_LVAL_P(op2)); - ZEND_FLOAT_RESTORE(); return SUCCESS; case TYPE_PAIR(IS_LONG, IS_DOUBLE): @@ -996,9 +961,7 @@ ZEND_API int div_function(zval *result, zval *op1, zval *op2 TSRMLS_DC) ZVAL_BOOL(result, 0); return FAILURE; /* division by zero */ } - ZEND_FLOAT_ENSURE(); ZVAL_DOUBLE(result, (double)Z_LVAL_P(op1) / Z_DVAL_P(op2)); - ZEND_FLOAT_RESTORE(); return SUCCESS; case TYPE_PAIR(IS_DOUBLE, IS_DOUBLE): @@ -1007,9 +970,7 @@ ZEND_API int div_function(zval *result, zval *op1, zval *op2 TSRMLS_DC) ZVAL_BOOL(result, 0); return FAILURE; /* division by zero */ } - ZEND_FLOAT_ENSURE(); ZVAL_DOUBLE(result, Z_DVAL_P(op1) / Z_DVAL_P(op2)); - ZEND_FLOAT_RESTORE(); return SUCCESS; default: diff --git a/Zend/zend_stream.c b/Zend/zend_stream.c index a67fcdab1f..068b30ed87 100644 --- a/Zend/zend_stream.c +++ b/Zend/zend_stream.c @@ -49,11 +49,6 @@ static size_t zend_stream_stdio_fsizer(void *handle TSRMLS_DC) /* {{{ */ { struct stat buf; if (handle && fstat(fileno((FILE*)handle), &buf) == 0) { -#ifdef S_ISREG - if (!S_ISREG(buf.st_mode)) { - return 0; - } -#endif return buf.st_size; } return 0; @@ -98,11 +93,6 @@ static size_t zend_stream_fsize(zend_file_handle *file_handle TSRMLS_DC) /* {{{ return file_handle->handle.stream.fsizer(file_handle->handle.stream.handle TSRMLS_CC); } if (file_handle->handle.fp && fstat(fileno(file_handle->handle.fp), &buf) == 0) { -#ifdef S_ISREG - if (!S_ISREG(buf.st_mode)) { - return 0; - } -#endif return buf.st_size; } diff --git a/Zend/zend_strtod.c b/Zend/zend_strtod.c index 4a3e976d25..a65b738b53 100644 --- a/Zend/zend_strtod.c +++ b/Zend/zend_strtod.c @@ -93,7 +93,6 @@ #include <zend_operators.h> #include <zend_strtod.h> -#include <zend_float.h> #ifdef ZTS #include <TSRM.h> @@ -1721,7 +1720,14 @@ ZEND_API char * zend_dtoa(double _d, int mode, int ndigits, int *decpt, int *sig if (value(d) > 0.5 + value(eps)) goto bump_up; else if (value(d) < 0.5 - value(eps)) { - while(*--s == '0'); + /* cut ALL traling zeros only if the number of chars is greater than precision + * otherwise cut only extra zeros + */ + if (k < ndigits) { + while(*--s == '0' && (s - s0) > k); + } else { + while(*--s == '0'); + } s++; goto ret1; } @@ -2033,7 +2039,6 @@ ret1: ZEND_API double zend_strtod (CONST char *s00, char **se) { - ZEND_FLOAT_DECLARE int bb2, bb5, bbe, bd2, bd5, bbbits, bs2, c, dsign, e, e1, esign, i, j, k, nd, nd0, nf, nz, nz0, sign; CONST char *s, *s0, *s1; @@ -2046,8 +2051,6 @@ ZEND_API double zend_strtod (CONST char *s00, char **se) CONST char decimal_point = '.'; - ZEND_FLOAT_ENSURE(); - sign = nz0 = nz = 0; value(rv) = 0.; @@ -2578,7 +2581,7 @@ ret: } _THREAD_PRIVATE_MUTEX_UNLOCK(pow5mult_mutex); - ZEND_FLOAT_RETURN(result); + return result; } ZEND_API double zend_hex_strtod(const char *str, char **endptr) diff --git a/Zend/zend_vm_def.h b/Zend/zend_vm_def.h index d8387fcb4f..a86a79b8c8 100644 --- a/Zend/zend_vm_def.h +++ b/Zend/zend_vm_def.h @@ -1957,9 +1957,16 @@ ZEND_VM_HANDLER(113, ZEND_INIT_STATIC_METHOD_CALL, CONST|VAR, CONST|TMP|VAR|UNUS zend_ptr_stack_3_push(&EG(arg_types_stack), EX(fbc), EX(object), EX(called_scope)); if (OP1_TYPE == IS_CONST && OP2_TYPE == IS_CONST) { + /* try a function in namespace */ + zend_op *op_data = opline+1; ZEND_VM_INC_OPCODE(); + if (zend_hash_quick_find(EG(function_table), Z_STRVAL(op_data->op1.u.constant), Z_STRLEN(op_data->op1.u.constant)+1, op_data->extended_value, (void **) &EX(fbc))==SUCCESS) { + EX(object) = NULL; + ZEND_VM_NEXT_OPCODE(); + } + /* no function found. try a static method in class */ ce = zend_fetch_class(Z_STRVAL(opline->op1.u.constant), Z_STRLEN(opline->op1.u.constant), opline->extended_value TSRMLS_CC); if (!ce) { @@ -1976,7 +1983,7 @@ ZEND_VM_HANDLER(113, ZEND_INIT_STATIC_METHOD_CALL, CONST|VAR, CONST|TMP|VAR|UNUS } } if(OP2_TYPE != IS_UNUSED) { - char *function_name_strval = NULL; + char *function_name_strval; int function_name_strlen = 0; zend_free_op free_op2; @@ -1994,7 +2001,7 @@ ZEND_VM_HANDLER(113, ZEND_INIT_STATIC_METHOD_CALL, CONST|VAR, CONST|TMP|VAR|UNUS } } - if (function_name_strval) { + if (function_name_strlen) { if (ce->get_static_method) { EX(fbc) = ce->get_static_method(ce, function_name_strval, function_name_strlen TSRMLS_CC); } else { @@ -2067,7 +2074,7 @@ ZEND_VM_HANDLER(59, ZEND_INIT_FCALL_BY_NAME, ANY, CONST|TMP|VAR|CV) if (Z_TYPE_P(function_name) == IS_OBJECT && Z_OBJ_HANDLER_P(function_name, get_closure) && - Z_OBJ_HANDLER_P(function_name, get_closure)(function_name, &EX(called_scope), &EX(fbc), &EX(object) TSRMLS_CC) == SUCCESS) { + Z_OBJ_HANDLER_P(function_name, get_closure)(function_name, &EX(called_scope), &EX(fbc), &EX(object), NULL TSRMLS_CC) == SUCCESS) { if (EX(object)) { Z_ADDREF_P(EX(object)); } @@ -2080,10 +2087,11 @@ ZEND_VM_HANDLER(59, ZEND_INIT_FCALL_BY_NAME, ANY, CONST|TMP|VAR|CV) } function_name_strval = Z_STRVAL_P(function_name); function_name_strlen = Z_STRLEN_P(function_name); - if (function_name_strval[0] == '\\') { + if (function_name_strval[0] == ':' && + function_name_strval[1] == ':') { - function_name_strlen -= 1; - lcname = zend_str_tolower_dup(function_name_strval + 1, function_name_strlen); + function_name_strlen -= 2; + lcname = zend_str_tolower_dup(function_name_strval + 2, function_name_strlen); } else { lcname = zend_str_tolower_dup(function_name_strval, function_name_strlen); } @@ -2108,8 +2116,8 @@ 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_hash_quick_find(EG(function_table), Z_STRVAL(opline->op1.u.constant), Z_STRLEN(opline->op1.u.constant)+1, opline->extended_value, (void **) &EX(fbc))==FAILURE) { - char *short_name = Z_STRVAL(opline->op1.u.constant)+Z_LVAL(op_data->op1.u.constant); - if (zend_hash_quick_find(EG(function_table), short_name, Z_STRLEN(opline->op1.u.constant)-Z_LVAL(op_data->op1.u.constant)+1, op_data->extended_value, (void **) &EX(fbc))==FAILURE) { + if (zend_hash_quick_find(EG(function_table), Z_STRVAL(op_data->op1.u.constant), Z_STRLEN(op_data->op1.u.constant)+1, op_data->extended_value, (void **) &EX(fbc))==FAILURE || + EX(fbc)->type != ZEND_INTERNAL_FUNCTION) { zend_error_noreturn(E_ERROR, "Call to undefined function %s()", Z_STRVAL(opline->op2.u.constant)); } } @@ -2270,6 +2278,7 @@ ZEND_VM_HELPER(zend_do_fcall_common_helper, ANY, ANY) EX(function_state).arguments = zend_vm_stack_push_args(opline->extended_value TSRMLS_CC); if (EX(function_state).function->type == ZEND_INTERNAL_FUNCTION) { + zend_error_handling error_handling; ALLOC_INIT_ZVAL(EX_T(opline->result.u.var).var.ptr); EX_T(opline->result.u.var).var.ptr_ptr = &EX_T(opline->result.u.var).var.ptr; EX_T(opline->result.u.var).var.fcall_returned_reference = EX(function_state).function->common.return_reference; @@ -2284,12 +2293,14 @@ ZEND_VM_HELPER(zend_do_fcall_common_helper, ANY, ANY) arg_count--; } } + zend_save_error_handling(&error_handling TSRMLS_CC); if (!zend_execute_internal) { /* saves one function call if zend_execute_internal is not used */ ((zend_internal_function *) EX(function_state).function)->handler(opline->extended_value, EX_T(opline->result.u.var).var.ptr, EX(function_state).function->common.return_reference?&EX_T(opline->result.u.var).var.ptr:NULL, EX(object), RETURN_VALUE_USED(opline) TSRMLS_CC); } else { zend_execute_internal(EXECUTE_DATA, RETURN_VALUE_USED(opline) TSRMLS_CC); } + zend_restore_error_handling(&error_handling TSRMLS_CC); if (!RETURN_VALUE_USED(opline)) { zval_ptr_dtor(&EX_T(opline->result.u.var).var.ptr); @@ -2337,7 +2348,10 @@ ZEND_VM_HELPER(zend_do_fcall_common_helper, ANY, ANY) /* Not sure what should be done here if it's a static method */ if (EX(object)) { + zend_error_handling error_handling; + zend_save_error_handling(&error_handling TSRMLS_CC); Z_OBJ_HT_P(EX(object))->call_method(EX(function_state).function->common.function_name, opline->extended_value, EX_T(opline->result.u.var).var.ptr, &EX_T(opline->result.u.var).var.ptr, EX(object), RETURN_VALUE_USED(opline) TSRMLS_CC); + zend_restore_error_handling(&error_handling TSRMLS_CC); } else { zend_error_noreturn(E_ERROR, "Cannot call overloaded function for non-object"); } @@ -2966,31 +2980,46 @@ ZEND_VM_HANDLER(99, ZEND_FETCH_CONSTANT, VAR|CONST|UNUSED, CONST) zend_op *opline = EX(opline); if (OP1_TYPE == IS_UNUSED) { - /* namespaced constant */ - if (!zend_get_constant_ex(Z_STRVAL(opline->op2.u.constant), Z_STRLEN(opline->op2.u.constant), &EX_T(opline->result.u.var).tmp_var, NULL, opline->extended_value TSRMLS_CC)) { - if ((opline->extended_value & IS_CONSTANT_UNQUALIFIED) != 0) { - char *actual = (char *)zend_memrchr(Z_STRVAL(opline->op2.u.constant), '\\', Z_STRLEN(opline->op2.u.constant)); - if(!actual) { - actual = Z_STRVAL(opline->op2.u.constant); - } else { - actual++; - } - /* non-qualified constant - allow text substitution */ - zend_error(E_NOTICE, "Use of undefined constant %s - assumed '%s'", actual, actual); - ZVAL_STRINGL(&EX_T(opline->result.u.var).tmp_var, actual, Z_STRLEN(opline->op2.u.constant)-(actual - Z_STRVAL(opline->op2.u.constant)), 1); - } else { - zend_error_noreturn(E_ERROR, "Undefined constant '%s'", - Z_STRVAL(opline->op2.u.constant), Z_STRVAL(opline->op2.u.constant)); + if (!zend_get_constant(Z_STRVAL(opline->op2.u.constant), Z_STRLEN(opline->op2.u.constant), &EX_T(opline->result.u.var).tmp_var TSRMLS_CC)) { + if (opline->extended_value & ZEND_FETCH_CLASS_RT_NS_CHECK) { + zend_error_noreturn(E_ERROR, "Undefined constant '%s'", Z_STRVAL(opline->op2.u.constant)); } + zend_error(E_NOTICE, "Use of undefined constant %s - assumed '%s'", + Z_STRVAL(opline->op2.u.constant), + Z_STRVAL(opline->op2.u.constant)); + EX_T(opline->result.u.var).tmp_var = opline->op2.u.constant; + zval_copy_ctor(&EX_T(opline->result.u.var).tmp_var); } ZEND_VM_NEXT_OPCODE(); } else { - /* class constant */ zend_class_entry *ce; zval **value; if (OP1_TYPE == IS_CONST) { + zend_op *op_data = opline + 1; + zend_constant *c; + + ZEND_VM_INC_OPCODE(); + + /* try a constant in namespace */ + if (zend_hash_quick_find(EG(zend_constants), Z_STRVAL(op_data->op1.u.constant), Z_STRLEN(op_data->op1.u.constant)+1, op_data->extended_value, (void **) &c)==SUCCESS) { + EX_T(opline->result.u.var).tmp_var = c->value; + zval_copy_ctor(&EX_T(opline->result.u.var).tmp_var); + ZEND_VM_NEXT_OPCODE(); + } else if ((opline->extended_value & IS_CONSTANT_RT_NS_CHECK) != 0) { + if (opline->extended_value & ZEND_FETCH_CLASS_RT_NS_CHECK) { + zend_error_noreturn(E_ERROR, "Undefined constant '%s::%s'", Z_STRVAL(opline->op1.u.constant), Z_STRVAL(opline->op2.u.constant)); + } else if (!zend_get_constant(Z_STRVAL(opline->op2.u.constant), Z_STRLEN(opline->op2.u.constant), &EX_T(opline->result.u.var).tmp_var TSRMLS_CC)) { + zend_error(E_NOTICE, "Use of undefined constant %s - assumed '%s'", + Z_STRVAL(opline->op2.u.constant), + Z_STRVAL(opline->op2.u.constant)); + EX_T(opline->result.u.var).tmp_var = opline->op2.u.constant; + zval_copy_ctor(&EX_T(opline->result.u.var).tmp_var); + } + ZEND_VM_NEXT_OPCODE(); + } + /* no constant found. try a constant in class */ ce = zend_fetch_class(Z_STRVAL(opline->op1.u.constant), Z_STRLEN(opline->op1.u.constant), opline->extended_value TSRMLS_CC); if (!ce) { zend_error_noreturn(E_ERROR, "Undefined class constant '%s'", Z_STRVAL(opline->op2.u.constant)); diff --git a/Zend/zend_vm_execute.h b/Zend/zend_vm_execute.h index abcd410a3e..6f4ef773f5 100644 --- a/Zend/zend_vm_execute.h +++ b/Zend/zend_vm_execute.h @@ -294,6 +294,7 @@ static int ZEND_FASTCALL zend_do_fcall_common_helper_SPEC(ZEND_OPCODE_HANDLER_AR EX(function_state).arguments = zend_vm_stack_push_args(opline->extended_value TSRMLS_CC); if (EX(function_state).function->type == ZEND_INTERNAL_FUNCTION) { + zend_error_handling error_handling; ALLOC_INIT_ZVAL(EX_T(opline->result.u.var).var.ptr); EX_T(opline->result.u.var).var.ptr_ptr = &EX_T(opline->result.u.var).var.ptr; EX_T(opline->result.u.var).var.fcall_returned_reference = EX(function_state).function->common.return_reference; @@ -308,12 +309,14 @@ static int ZEND_FASTCALL zend_do_fcall_common_helper_SPEC(ZEND_OPCODE_HANDLER_AR arg_count--; } } + zend_save_error_handling(&error_handling TSRMLS_CC); if (!zend_execute_internal) { /* saves one function call if zend_execute_internal is not used */ ((zend_internal_function *) EX(function_state).function)->handler(opline->extended_value, EX_T(opline->result.u.var).var.ptr, EX(function_state).function->common.return_reference?&EX_T(opline->result.u.var).var.ptr:NULL, EX(object), RETURN_VALUE_USED(opline) TSRMLS_CC); } else { zend_execute_internal(execute_data, RETURN_VALUE_USED(opline) TSRMLS_CC); } + zend_restore_error_handling(&error_handling TSRMLS_CC); if (!RETURN_VALUE_USED(opline)) { zval_ptr_dtor(&EX_T(opline->result.u.var).var.ptr); @@ -361,7 +364,10 @@ static int ZEND_FASTCALL zend_do_fcall_common_helper_SPEC(ZEND_OPCODE_HANDLER_AR /* Not sure what should be done here if it's a static method */ if (EX(object)) { + zend_error_handling error_handling; + zend_save_error_handling(&error_handling TSRMLS_CC); Z_OBJ_HT_P(EX(object))->call_method(EX(function_state).function->common.function_name, opline->extended_value, EX_T(opline->result.u.var).var.ptr, &EX_T(opline->result.u.var).var.ptr, EX(object), RETURN_VALUE_USED(opline) TSRMLS_CC); + zend_restore_error_handling(&error_handling TSRMLS_CC); } else { zend_error_noreturn(E_ERROR, "Cannot call overloaded function for non-object"); } @@ -749,7 +755,7 @@ static int ZEND_FASTCALL ZEND_INIT_FCALL_BY_NAME_SPEC_CONST_HANDLER(ZEND_OPCODE if (Z_TYPE_P(function_name) == IS_OBJECT && Z_OBJ_HANDLER_P(function_name, get_closure) && - Z_OBJ_HANDLER_P(function_name, get_closure)(function_name, &EX(called_scope), &EX(fbc), &EX(object) TSRMLS_CC) == SUCCESS) { + Z_OBJ_HANDLER_P(function_name, get_closure)(function_name, &EX(called_scope), &EX(fbc), &EX(object), NULL TSRMLS_CC) == SUCCESS) { if (EX(object)) { Z_ADDREF_P(EX(object)); } @@ -762,10 +768,11 @@ static int ZEND_FASTCALL ZEND_INIT_FCALL_BY_NAME_SPEC_CONST_HANDLER(ZEND_OPCODE } function_name_strval = Z_STRVAL_P(function_name); function_name_strlen = Z_STRLEN_P(function_name); - if (function_name_strval[0] == '\\') { + if (function_name_strval[0] == ':' && + function_name_strval[1] == ':') { - function_name_strlen -= 1; - lcname = zend_str_tolower_dup(function_name_strval + 1, function_name_strlen); + function_name_strlen -= 2; + lcname = zend_str_tolower_dup(function_name_strval + 2, function_name_strlen); } else { lcname = zend_str_tolower_dup(function_name_strval, function_name_strlen); } @@ -790,8 +797,8 @@ 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_hash_quick_find(EG(function_table), Z_STRVAL(opline->op1.u.constant), Z_STRLEN(opline->op1.u.constant)+1, opline->extended_value, (void **) &EX(fbc))==FAILURE) { - char *short_name = Z_STRVAL(opline->op1.u.constant)+Z_LVAL(op_data->op1.u.constant); - if (zend_hash_quick_find(EG(function_table), short_name, Z_STRLEN(opline->op1.u.constant)-Z_LVAL(op_data->op1.u.constant)+1, op_data->extended_value, (void **) &EX(fbc))==FAILURE) { + if (zend_hash_quick_find(EG(function_table), Z_STRVAL(op_data->op1.u.constant), Z_STRLEN(op_data->op1.u.constant)+1, op_data->extended_value, (void **) &EX(fbc))==FAILURE || + EX(fbc)->type != ZEND_INTERNAL_FUNCTION) { zend_error_noreturn(E_ERROR, "Call to undefined function %s()", Z_STRVAL(opline->op2.u.constant)); } } @@ -946,7 +953,7 @@ static int ZEND_FASTCALL ZEND_INIT_FCALL_BY_NAME_SPEC_TMP_HANDLER(ZEND_OPCODE_H if (Z_TYPE_P(function_name) == IS_OBJECT && Z_OBJ_HANDLER_P(function_name, get_closure) && - Z_OBJ_HANDLER_P(function_name, get_closure)(function_name, &EX(called_scope), &EX(fbc), &EX(object) TSRMLS_CC) == SUCCESS) { + Z_OBJ_HANDLER_P(function_name, get_closure)(function_name, &EX(called_scope), &EX(fbc), &EX(object), NULL TSRMLS_CC) == SUCCESS) { if (EX(object)) { Z_ADDREF_P(EX(object)); } @@ -959,10 +966,11 @@ static int ZEND_FASTCALL ZEND_INIT_FCALL_BY_NAME_SPEC_TMP_HANDLER(ZEND_OPCODE_H } function_name_strval = Z_STRVAL_P(function_name); function_name_strlen = Z_STRLEN_P(function_name); - if (function_name_strval[0] == '\\') { + if (function_name_strval[0] == ':' && + function_name_strval[1] == ':') { - function_name_strlen -= 1; - lcname = zend_str_tolower_dup(function_name_strval + 1, function_name_strlen); + function_name_strlen -= 2; + lcname = zend_str_tolower_dup(function_name_strval + 2, function_name_strlen); } else { lcname = zend_str_tolower_dup(function_name_strval, function_name_strlen); } @@ -1051,7 +1059,7 @@ static int ZEND_FASTCALL ZEND_INIT_FCALL_BY_NAME_SPEC_VAR_HANDLER(ZEND_OPCODE_H if (Z_TYPE_P(function_name) == IS_OBJECT && Z_OBJ_HANDLER_P(function_name, get_closure) && - Z_OBJ_HANDLER_P(function_name, get_closure)(function_name, &EX(called_scope), &EX(fbc), &EX(object) TSRMLS_CC) == SUCCESS) { + Z_OBJ_HANDLER_P(function_name, get_closure)(function_name, &EX(called_scope), &EX(fbc), &EX(object), NULL TSRMLS_CC) == SUCCESS) { if (EX(object)) { Z_ADDREF_P(EX(object)); } @@ -1064,10 +1072,11 @@ static int ZEND_FASTCALL ZEND_INIT_FCALL_BY_NAME_SPEC_VAR_HANDLER(ZEND_OPCODE_H } function_name_strval = Z_STRVAL_P(function_name); function_name_strlen = Z_STRLEN_P(function_name); - if (function_name_strval[0] == '\\') { + if (function_name_strval[0] == ':' && + function_name_strval[1] == ':') { - function_name_strlen -= 1; - lcname = zend_str_tolower_dup(function_name_strval + 1, function_name_strlen); + function_name_strlen -= 2; + lcname = zend_str_tolower_dup(function_name_strval + 2, function_name_strlen); } else { lcname = zend_str_tolower_dup(function_name_strval, function_name_strlen); } @@ -1184,7 +1193,7 @@ static int ZEND_FASTCALL ZEND_INIT_FCALL_BY_NAME_SPEC_CV_HANDLER(ZEND_OPCODE_HA if (Z_TYPE_P(function_name) == IS_OBJECT && Z_OBJ_HANDLER_P(function_name, get_closure) && - Z_OBJ_HANDLER_P(function_name, get_closure)(function_name, &EX(called_scope), &EX(fbc), &EX(object) TSRMLS_CC) == SUCCESS) { + Z_OBJ_HANDLER_P(function_name, get_closure)(function_name, &EX(called_scope), &EX(fbc), &EX(object), NULL TSRMLS_CC) == SUCCESS) { if (EX(object)) { Z_ADDREF_P(EX(object)); } @@ -1197,10 +1206,11 @@ static int ZEND_FASTCALL ZEND_INIT_FCALL_BY_NAME_SPEC_CV_HANDLER(ZEND_OPCODE_HA } function_name_strval = Z_STRVAL_P(function_name); function_name_strlen = Z_STRLEN_P(function_name); - if (function_name_strval[0] == '\\') { + if (function_name_strval[0] == ':' && + function_name_strval[1] == ':') { - function_name_strlen -= 1; - lcname = zend_str_tolower_dup(function_name_strval + 1, function_name_strlen); + function_name_strlen -= 2; + lcname = zend_str_tolower_dup(function_name_strval + 2, function_name_strlen); } else { lcname = zend_str_tolower_dup(function_name_strval, function_name_strlen); } @@ -2594,9 +2604,16 @@ static int ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_CONST_CONST_HANDLER( zend_ptr_stack_3_push(&EG(arg_types_stack), EX(fbc), EX(object), EX(called_scope)); if (IS_CONST == IS_CONST && IS_CONST == IS_CONST) { + /* try a function in namespace */ + zend_op *op_data = opline+1; ZEND_VM_INC_OPCODE(); + if (zend_hash_quick_find(EG(function_table), Z_STRVAL(op_data->op1.u.constant), Z_STRLEN(op_data->op1.u.constant)+1, op_data->extended_value, (void **) &EX(fbc))==SUCCESS) { + EX(object) = NULL; + ZEND_VM_NEXT_OPCODE(); + } + /* no function found. try a static method in class */ ce = zend_fetch_class(Z_STRVAL(opline->op1.u.constant), Z_STRLEN(opline->op1.u.constant), opline->extended_value TSRMLS_CC); if (!ce) { @@ -2613,7 +2630,7 @@ static int ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_CONST_CONST_HANDLER( } } if(IS_CONST != IS_UNUSED) { - char *function_name_strval = NULL; + char *function_name_strval; int function_name_strlen = 0; @@ -2631,7 +2648,7 @@ static int ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_CONST_CONST_HANDLER( } } - if (function_name_strval) { + if (function_name_strlen) { if (ce->get_static_method) { EX(fbc) = ce->get_static_method(ce, function_name_strval, function_name_strlen TSRMLS_CC); } else { @@ -2721,31 +2738,46 @@ static int ZEND_FASTCALL ZEND_FETCH_CONSTANT_SPEC_CONST_CONST_HANDLER(ZEND_OPCO zend_op *opline = EX(opline); if (IS_CONST == IS_UNUSED) { - /* namespaced constant */ - if (!zend_get_constant_ex(Z_STRVAL(opline->op2.u.constant), Z_STRLEN(opline->op2.u.constant), &EX_T(opline->result.u.var).tmp_var, NULL, opline->extended_value TSRMLS_CC)) { - if ((opline->extended_value & IS_CONSTANT_UNQUALIFIED) != 0) { - char *actual = (char *)zend_memrchr(Z_STRVAL(opline->op2.u.constant), '\\', Z_STRLEN(opline->op2.u.constant)); - if(!actual) { - actual = Z_STRVAL(opline->op2.u.constant); - } else { - actual++; - } - /* non-qualified constant - allow text substitution */ - zend_error(E_NOTICE, "Use of undefined constant %s - assumed '%s'", actual, actual); - ZVAL_STRINGL(&EX_T(opline->result.u.var).tmp_var, actual, Z_STRLEN(opline->op2.u.constant)-(actual - Z_STRVAL(opline->op2.u.constant)), 1); - } else { - zend_error_noreturn(E_ERROR, "Undefined constant '%s'", - Z_STRVAL(opline->op2.u.constant), Z_STRVAL(opline->op2.u.constant)); - } + if (!zend_get_constant(Z_STRVAL(opline->op2.u.constant), Z_STRLEN(opline->op2.u.constant), &EX_T(opline->result.u.var).tmp_var TSRMLS_CC)) { + if (opline->extended_value & ZEND_FETCH_CLASS_RT_NS_CHECK) { + zend_error_noreturn(E_ERROR, "Undefined constant '%s'", Z_STRVAL(opline->op2.u.constant)); + } + zend_error(E_NOTICE, "Use of undefined constant %s - assumed '%s'", + Z_STRVAL(opline->op2.u.constant), + Z_STRVAL(opline->op2.u.constant)); + EX_T(opline->result.u.var).tmp_var = opline->op2.u.constant; + zval_copy_ctor(&EX_T(opline->result.u.var).tmp_var); } ZEND_VM_NEXT_OPCODE(); } else { - /* class constant */ zend_class_entry *ce; zval **value; if (IS_CONST == IS_CONST) { + zend_op *op_data = opline + 1; + zend_constant *c; + ZEND_VM_INC_OPCODE(); + + /* try a constant in namespace */ + if (zend_hash_quick_find(EG(zend_constants), Z_STRVAL(op_data->op1.u.constant), Z_STRLEN(op_data->op1.u.constant)+1, op_data->extended_value, (void **) &c)==SUCCESS) { + EX_T(opline->result.u.var).tmp_var = c->value; + zval_copy_ctor(&EX_T(opline->result.u.var).tmp_var); + ZEND_VM_NEXT_OPCODE(); + } else if ((opline->extended_value & IS_CONSTANT_RT_NS_CHECK) != 0) { + if (opline->extended_value & ZEND_FETCH_CLASS_RT_NS_CHECK) { + zend_error_noreturn(E_ERROR, "Undefined constant '%s::%s'", Z_STRVAL(opline->op1.u.constant), Z_STRVAL(opline->op2.u.constant)); + } else if (!zend_get_constant(Z_STRVAL(opline->op2.u.constant), Z_STRLEN(opline->op2.u.constant), &EX_T(opline->result.u.var).tmp_var TSRMLS_CC)) { + zend_error(E_NOTICE, "Use of undefined constant %s - assumed '%s'", + Z_STRVAL(opline->op2.u.constant), + Z_STRVAL(opline->op2.u.constant)); + EX_T(opline->result.u.var).tmp_var = opline->op2.u.constant; + zval_copy_ctor(&EX_T(opline->result.u.var).tmp_var); + } + ZEND_VM_NEXT_OPCODE(); + } + + /* no constant found. try a constant in class */ ce = zend_fetch_class(Z_STRVAL(opline->op1.u.constant), Z_STRLEN(opline->op1.u.constant), opline->extended_value TSRMLS_CC); if (!ce) { zend_error_noreturn(E_ERROR, "Undefined class constant '%s'", Z_STRVAL(opline->op2.u.constant)); @@ -3168,9 +3200,16 @@ static int ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_CONST_TMP_HANDLER(ZE zend_ptr_stack_3_push(&EG(arg_types_stack), EX(fbc), EX(object), EX(called_scope)); if (IS_CONST == IS_CONST && IS_TMP_VAR == IS_CONST) { + /* try a function in namespace */ + zend_op *op_data = opline+1; ZEND_VM_INC_OPCODE(); + if (zend_hash_quick_find(EG(function_table), Z_STRVAL(op_data->op1.u.constant), Z_STRLEN(op_data->op1.u.constant)+1, op_data->extended_value, (void **) &EX(fbc))==SUCCESS) { + EX(object) = NULL; + ZEND_VM_NEXT_OPCODE(); + } + /* no function found. try a static method in class */ ce = zend_fetch_class(Z_STRVAL(opline->op1.u.constant), Z_STRLEN(opline->op1.u.constant), opline->extended_value TSRMLS_CC); if (!ce) { @@ -3187,7 +3226,7 @@ static int ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_CONST_TMP_HANDLER(ZE } } if(IS_TMP_VAR != IS_UNUSED) { - char *function_name_strval = NULL; + char *function_name_strval; int function_name_strlen = 0; zend_free_op free_op2; @@ -3205,7 +3244,7 @@ static int ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_CONST_TMP_HANDLER(ZE } } - if (function_name_strval) { + if (function_name_strlen) { if (ce->get_static_method) { EX(fbc) = ce->get_static_method(ce, function_name_strval, function_name_strlen TSRMLS_CC); } else { @@ -3637,9 +3676,16 @@ static int ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_CONST_VAR_HANDLER(ZE zend_ptr_stack_3_push(&EG(arg_types_stack), EX(fbc), EX(object), EX(called_scope)); if (IS_CONST == IS_CONST && IS_VAR == IS_CONST) { + /* try a function in namespace */ + zend_op *op_data = opline+1; ZEND_VM_INC_OPCODE(); + if (zend_hash_quick_find(EG(function_table), Z_STRVAL(op_data->op1.u.constant), Z_STRLEN(op_data->op1.u.constant)+1, op_data->extended_value, (void **) &EX(fbc))==SUCCESS) { + EX(object) = NULL; + ZEND_VM_NEXT_OPCODE(); + } + /* no function found. try a static method in class */ ce = zend_fetch_class(Z_STRVAL(opline->op1.u.constant), Z_STRLEN(opline->op1.u.constant), opline->extended_value TSRMLS_CC); if (!ce) { @@ -3656,7 +3702,7 @@ static int ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_CONST_VAR_HANDLER(ZE } } if(IS_VAR != IS_UNUSED) { - char *function_name_strval = NULL; + char *function_name_strval; int function_name_strlen = 0; zend_free_op free_op2; @@ -3674,7 +3720,7 @@ static int ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_CONST_VAR_HANDLER(ZE } } - if (function_name_strval) { + if (function_name_strlen) { if (ce->get_static_method) { EX(fbc) = ce->get_static_method(ce, function_name_strval, function_name_strlen TSRMLS_CC); } else { @@ -3862,9 +3908,16 @@ static int ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_CONST_UNUSED_HANDLER zend_ptr_stack_3_push(&EG(arg_types_stack), EX(fbc), EX(object), EX(called_scope)); if (IS_CONST == IS_CONST && IS_UNUSED == IS_CONST) { + /* try a function in namespace */ + zend_op *op_data = opline+1; ZEND_VM_INC_OPCODE(); + if (zend_hash_quick_find(EG(function_table), Z_STRVAL(op_data->op1.u.constant), Z_STRLEN(op_data->op1.u.constant)+1, op_data->extended_value, (void **) &EX(fbc))==SUCCESS) { + EX(object) = NULL; + ZEND_VM_NEXT_OPCODE(); + } + /* no function found. try a static method in class */ ce = zend_fetch_class(Z_STRVAL(opline->op1.u.constant), Z_STRLEN(opline->op1.u.constant), opline->extended_value TSRMLS_CC); if (!ce) { @@ -3881,7 +3934,7 @@ static int ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_CONST_UNUSED_HANDLER } } if(IS_UNUSED != IS_UNUSED) { - char *function_name_strval = NULL; + char *function_name_strval; int function_name_strlen = 0; @@ -3899,7 +3952,7 @@ static int ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_CONST_UNUSED_HANDLER } } - if (function_name_strval) { + if (function_name_strlen) { if (ce->get_static_method) { EX(fbc) = ce->get_static_method(ce, function_name_strval, function_name_strlen TSRMLS_CC); } else { @@ -4299,9 +4352,16 @@ static int ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_CONST_CV_HANDLER(ZEN zend_ptr_stack_3_push(&EG(arg_types_stack), EX(fbc), EX(object), EX(called_scope)); if (IS_CONST == IS_CONST && IS_CV == IS_CONST) { + /* try a function in namespace */ + zend_op *op_data = opline+1; ZEND_VM_INC_OPCODE(); + if (zend_hash_quick_find(EG(function_table), Z_STRVAL(op_data->op1.u.constant), Z_STRLEN(op_data->op1.u.constant)+1, op_data->extended_value, (void **) &EX(fbc))==SUCCESS) { + EX(object) = NULL; + ZEND_VM_NEXT_OPCODE(); + } + /* no function found. try a static method in class */ ce = zend_fetch_class(Z_STRVAL(opline->op1.u.constant), Z_STRLEN(opline->op1.u.constant), opline->extended_value TSRMLS_CC); if (!ce) { @@ -4318,7 +4378,7 @@ static int ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_CONST_CV_HANDLER(ZEN } } if(IS_CV != IS_UNUSED) { - char *function_name_strval = NULL; + char *function_name_strval; int function_name_strlen = 0; @@ -4336,7 +4396,7 @@ static int ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_CONST_CV_HANDLER(ZEN } } - if (function_name_strval) { + if (function_name_strlen) { if (ce->get_static_method) { EX(fbc) = ce->get_static_method(ce, function_name_strval, function_name_strlen TSRMLS_CC); } else { @@ -10285,9 +10345,16 @@ static int ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_VAR_CONST_HANDLER(ZE zend_ptr_stack_3_push(&EG(arg_types_stack), EX(fbc), EX(object), EX(called_scope)); if (IS_VAR == IS_CONST && IS_CONST == IS_CONST) { + /* try a function in namespace */ + zend_op *op_data = opline+1; ZEND_VM_INC_OPCODE(); + if (zend_hash_quick_find(EG(function_table), Z_STRVAL(op_data->op1.u.constant), Z_STRLEN(op_data->op1.u.constant)+1, op_data->extended_value, (void **) &EX(fbc))==SUCCESS) { + EX(object) = NULL; + ZEND_VM_NEXT_OPCODE(); + } + /* no function found. try a static method in class */ ce = zend_fetch_class(Z_STRVAL(opline->op1.u.constant), Z_STRLEN(opline->op1.u.constant), opline->extended_value TSRMLS_CC); if (!ce) { @@ -10304,7 +10371,7 @@ static int ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_VAR_CONST_HANDLER(ZE } } if(IS_CONST != IS_UNUSED) { - char *function_name_strval = NULL; + char *function_name_strval; int function_name_strlen = 0; @@ -10322,7 +10389,7 @@ static int ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_VAR_CONST_HANDLER(ZE } } - if (function_name_strval) { + if (function_name_strlen) { if (ce->get_static_method) { EX(fbc) = ce->get_static_method(ce, function_name_strval, function_name_strlen TSRMLS_CC); } else { @@ -10412,31 +10479,46 @@ static int ZEND_FASTCALL ZEND_FETCH_CONSTANT_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE zend_op *opline = EX(opline); if (IS_VAR == IS_UNUSED) { - /* namespaced constant */ - if (!zend_get_constant_ex(Z_STRVAL(opline->op2.u.constant), Z_STRLEN(opline->op2.u.constant), &EX_T(opline->result.u.var).tmp_var, NULL, opline->extended_value TSRMLS_CC)) { - if ((opline->extended_value & IS_CONSTANT_UNQUALIFIED) != 0) { - char *actual = (char *)zend_memrchr(Z_STRVAL(opline->op2.u.constant), '\\', Z_STRLEN(opline->op2.u.constant)); - if(!actual) { - actual = Z_STRVAL(opline->op2.u.constant); - } else { - actual++; - } - /* non-qualified constant - allow text substitution */ - zend_error(E_NOTICE, "Use of undefined constant %s - assumed '%s'", actual, actual); - ZVAL_STRINGL(&EX_T(opline->result.u.var).tmp_var, actual, Z_STRLEN(opline->op2.u.constant)-(actual - Z_STRVAL(opline->op2.u.constant)), 1); - } else { - zend_error_noreturn(E_ERROR, "Undefined constant '%s'", - Z_STRVAL(opline->op2.u.constant), Z_STRVAL(opline->op2.u.constant)); - } + if (!zend_get_constant(Z_STRVAL(opline->op2.u.constant), Z_STRLEN(opline->op2.u.constant), &EX_T(opline->result.u.var).tmp_var TSRMLS_CC)) { + if (opline->extended_value & ZEND_FETCH_CLASS_RT_NS_CHECK) { + zend_error_noreturn(E_ERROR, "Undefined constant '%s'", Z_STRVAL(opline->op2.u.constant)); + } + zend_error(E_NOTICE, "Use of undefined constant %s - assumed '%s'", + Z_STRVAL(opline->op2.u.constant), + Z_STRVAL(opline->op2.u.constant)); + EX_T(opline->result.u.var).tmp_var = opline->op2.u.constant; + zval_copy_ctor(&EX_T(opline->result.u.var).tmp_var); } ZEND_VM_NEXT_OPCODE(); } else { - /* class constant */ zend_class_entry *ce; zval **value; if (IS_VAR == IS_CONST) { + zend_op *op_data = opline + 1; + zend_constant *c; + + ZEND_VM_INC_OPCODE(); + + /* try a constant in namespace */ + if (zend_hash_quick_find(EG(zend_constants), Z_STRVAL(op_data->op1.u.constant), Z_STRLEN(op_data->op1.u.constant)+1, op_data->extended_value, (void **) &c)==SUCCESS) { + EX_T(opline->result.u.var).tmp_var = c->value; + zval_copy_ctor(&EX_T(opline->result.u.var).tmp_var); + ZEND_VM_NEXT_OPCODE(); + } else if ((opline->extended_value & IS_CONSTANT_RT_NS_CHECK) != 0) { + if (opline->extended_value & ZEND_FETCH_CLASS_RT_NS_CHECK) { + zend_error_noreturn(E_ERROR, "Undefined constant '%s::%s'", Z_STRVAL(opline->op1.u.constant), Z_STRVAL(opline->op2.u.constant)); + } else if (!zend_get_constant(Z_STRVAL(opline->op2.u.constant), Z_STRLEN(opline->op2.u.constant), &EX_T(opline->result.u.var).tmp_var TSRMLS_CC)) { + zend_error(E_NOTICE, "Use of undefined constant %s - assumed '%s'", + Z_STRVAL(opline->op2.u.constant), + Z_STRVAL(opline->op2.u.constant)); + EX_T(opline->result.u.var).tmp_var = opline->op2.u.constant; + zval_copy_ctor(&EX_T(opline->result.u.var).tmp_var); + } + ZEND_VM_NEXT_OPCODE(); + } + /* no constant found. try a constant in class */ ce = zend_fetch_class(Z_STRVAL(opline->op1.u.constant), Z_STRLEN(opline->op1.u.constant), opline->extended_value TSRMLS_CC); if (!ce) { zend_error_noreturn(E_ERROR, "Undefined class constant '%s'", Z_STRVAL(opline->op2.u.constant)); @@ -12117,9 +12199,16 @@ static int ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_VAR_TMP_HANDLER(ZEND zend_ptr_stack_3_push(&EG(arg_types_stack), EX(fbc), EX(object), EX(called_scope)); if (IS_VAR == IS_CONST && IS_TMP_VAR == IS_CONST) { + /* try a function in namespace */ + zend_op *op_data = opline+1; ZEND_VM_INC_OPCODE(); + if (zend_hash_quick_find(EG(function_table), Z_STRVAL(op_data->op1.u.constant), Z_STRLEN(op_data->op1.u.constant)+1, op_data->extended_value, (void **) &EX(fbc))==SUCCESS) { + EX(object) = NULL; + ZEND_VM_NEXT_OPCODE(); + } + /* no function found. try a static method in class */ ce = zend_fetch_class(Z_STRVAL(opline->op1.u.constant), Z_STRLEN(opline->op1.u.constant), opline->extended_value TSRMLS_CC); if (!ce) { @@ -12136,7 +12225,7 @@ static int ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_VAR_TMP_HANDLER(ZEND } } if(IS_TMP_VAR != IS_UNUSED) { - char *function_name_strval = NULL; + char *function_name_strval; int function_name_strlen = 0; zend_free_op free_op2; @@ -12154,7 +12243,7 @@ static int ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_VAR_TMP_HANDLER(ZEND } } - if (function_name_strval) { + if (function_name_strlen) { if (ce->get_static_method) { EX(fbc) = ce->get_static_method(ce, function_name_strval, function_name_strlen TSRMLS_CC); } else { @@ -13944,9 +14033,16 @@ static int ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_VAR_VAR_HANDLER(ZEND zend_ptr_stack_3_push(&EG(arg_types_stack), EX(fbc), EX(object), EX(called_scope)); if (IS_VAR == IS_CONST && IS_VAR == IS_CONST) { + /* try a function in namespace */ + zend_op *op_data = opline+1; ZEND_VM_INC_OPCODE(); + if (zend_hash_quick_find(EG(function_table), Z_STRVAL(op_data->op1.u.constant), Z_STRLEN(op_data->op1.u.constant)+1, op_data->extended_value, (void **) &EX(fbc))==SUCCESS) { + EX(object) = NULL; + ZEND_VM_NEXT_OPCODE(); + } + /* no function found. try a static method in class */ ce = zend_fetch_class(Z_STRVAL(opline->op1.u.constant), Z_STRLEN(opline->op1.u.constant), opline->extended_value TSRMLS_CC); if (!ce) { @@ -13963,7 +14059,7 @@ static int ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_VAR_VAR_HANDLER(ZEND } } if(IS_VAR != IS_UNUSED) { - char *function_name_strval = NULL; + char *function_name_strval; int function_name_strlen = 0; zend_free_op free_op2; @@ -13981,7 +14077,7 @@ static int ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_VAR_VAR_HANDLER(ZEND } } - if (function_name_strval) { + if (function_name_strlen) { if (ce->get_static_method) { EX(fbc) = ce->get_static_method(ce, function_name_strval, function_name_strlen TSRMLS_CC); } else { @@ -14864,9 +14960,16 @@ static int ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_VAR_UNUSED_HANDLER(Z zend_ptr_stack_3_push(&EG(arg_types_stack), EX(fbc), EX(object), EX(called_scope)); if (IS_VAR == IS_CONST && IS_UNUSED == IS_CONST) { + /* try a function in namespace */ + zend_op *op_data = opline+1; ZEND_VM_INC_OPCODE(); + if (zend_hash_quick_find(EG(function_table), Z_STRVAL(op_data->op1.u.constant), Z_STRLEN(op_data->op1.u.constant)+1, op_data->extended_value, (void **) &EX(fbc))==SUCCESS) { + EX(object) = NULL; + ZEND_VM_NEXT_OPCODE(); + } + /* no function found. try a static method in class */ ce = zend_fetch_class(Z_STRVAL(opline->op1.u.constant), Z_STRLEN(opline->op1.u.constant), opline->extended_value TSRMLS_CC); if (!ce) { @@ -14883,7 +14986,7 @@ static int ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_VAR_UNUSED_HANDLER(Z } } if(IS_UNUSED != IS_UNUSED) { - char *function_name_strval = NULL; + char *function_name_strval; int function_name_strlen = 0; @@ -14901,7 +15004,7 @@ static int ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_VAR_UNUSED_HANDLER(Z } } - if (function_name_strval) { + if (function_name_strlen) { if (ce->get_static_method) { EX(fbc) = ce->get_static_method(ce, function_name_strval, function_name_strlen TSRMLS_CC); } else { @@ -16378,9 +16481,16 @@ static int ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_VAR_CV_HANDLER(ZEND_ zend_ptr_stack_3_push(&EG(arg_types_stack), EX(fbc), EX(object), EX(called_scope)); if (IS_VAR == IS_CONST && IS_CV == IS_CONST) { + /* try a function in namespace */ + zend_op *op_data = opline+1; ZEND_VM_INC_OPCODE(); + if (zend_hash_quick_find(EG(function_table), Z_STRVAL(op_data->op1.u.constant), Z_STRLEN(op_data->op1.u.constant)+1, op_data->extended_value, (void **) &EX(fbc))==SUCCESS) { + EX(object) = NULL; + ZEND_VM_NEXT_OPCODE(); + } + /* no function found. try a static method in class */ ce = zend_fetch_class(Z_STRVAL(opline->op1.u.constant), Z_STRLEN(opline->op1.u.constant), opline->extended_value TSRMLS_CC); if (!ce) { @@ -16397,7 +16507,7 @@ static int ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_VAR_CV_HANDLER(ZEND_ } } if(IS_CV != IS_UNUSED) { - char *function_name_strval = NULL; + char *function_name_strval; int function_name_strlen = 0; @@ -16415,7 +16525,7 @@ static int ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_VAR_CV_HANDLER(ZEND_ } } - if (function_name_strval) { + if (function_name_strlen) { if (ce->get_static_method) { EX(fbc) = ce->get_static_method(ce, function_name_strval, function_name_strlen TSRMLS_CC); } else { @@ -17740,31 +17850,46 @@ static int ZEND_FASTCALL ZEND_FETCH_CONSTANT_SPEC_UNUSED_CONST_HANDLER(ZEND_OPC zend_op *opline = EX(opline); if (IS_UNUSED == IS_UNUSED) { - /* namespaced constant */ - if (!zend_get_constant_ex(Z_STRVAL(opline->op2.u.constant), Z_STRLEN(opline->op2.u.constant), &EX_T(opline->result.u.var).tmp_var, NULL, opline->extended_value TSRMLS_CC)) { - if ((opline->extended_value & IS_CONSTANT_UNQUALIFIED) != 0) { - char *actual = (char *)zend_memrchr(Z_STRVAL(opline->op2.u.constant), '\\', Z_STRLEN(opline->op2.u.constant)); - if(!actual) { - actual = Z_STRVAL(opline->op2.u.constant); - } else { - actual++; - } - /* non-qualified constant - allow text substitution */ - zend_error(E_NOTICE, "Use of undefined constant %s - assumed '%s'", actual, actual); - ZVAL_STRINGL(&EX_T(opline->result.u.var).tmp_var, actual, Z_STRLEN(opline->op2.u.constant)-(actual - Z_STRVAL(opline->op2.u.constant)), 1); - } else { - zend_error_noreturn(E_ERROR, "Undefined constant '%s'", - Z_STRVAL(opline->op2.u.constant), Z_STRVAL(opline->op2.u.constant)); - } + if (!zend_get_constant(Z_STRVAL(opline->op2.u.constant), Z_STRLEN(opline->op2.u.constant), &EX_T(opline->result.u.var).tmp_var TSRMLS_CC)) { + if (opline->extended_value & ZEND_FETCH_CLASS_RT_NS_CHECK) { + zend_error_noreturn(E_ERROR, "Undefined constant '%s'", Z_STRVAL(opline->op2.u.constant)); + } + zend_error(E_NOTICE, "Use of undefined constant %s - assumed '%s'", + Z_STRVAL(opline->op2.u.constant), + Z_STRVAL(opline->op2.u.constant)); + EX_T(opline->result.u.var).tmp_var = opline->op2.u.constant; + zval_copy_ctor(&EX_T(opline->result.u.var).tmp_var); } ZEND_VM_NEXT_OPCODE(); } else { - /* class constant */ zend_class_entry *ce; zval **value; if (IS_UNUSED == IS_CONST) { + zend_op *op_data = opline + 1; + zend_constant *c; + + ZEND_VM_INC_OPCODE(); + + /* try a constant in namespace */ + if (zend_hash_quick_find(EG(zend_constants), Z_STRVAL(op_data->op1.u.constant), Z_STRLEN(op_data->op1.u.constant)+1, op_data->extended_value, (void **) &c)==SUCCESS) { + EX_T(opline->result.u.var).tmp_var = c->value; + zval_copy_ctor(&EX_T(opline->result.u.var).tmp_var); + ZEND_VM_NEXT_OPCODE(); + } else if ((opline->extended_value & IS_CONSTANT_RT_NS_CHECK) != 0) { + if (opline->extended_value & ZEND_FETCH_CLASS_RT_NS_CHECK) { + zend_error_noreturn(E_ERROR, "Undefined constant '%s::%s'", Z_STRVAL(opline->op1.u.constant), Z_STRVAL(opline->op2.u.constant)); + } else if (!zend_get_constant(Z_STRVAL(opline->op2.u.constant), Z_STRLEN(opline->op2.u.constant), &EX_T(opline->result.u.var).tmp_var TSRMLS_CC)) { + zend_error(E_NOTICE, "Use of undefined constant %s - assumed '%s'", + Z_STRVAL(opline->op2.u.constant), + Z_STRVAL(opline->op2.u.constant)); + EX_T(opline->result.u.var).tmp_var = opline->op2.u.constant; + zval_copy_ctor(&EX_T(opline->result.u.var).tmp_var); + } + ZEND_VM_NEXT_OPCODE(); + } + /* no constant found. try a constant in class */ ce = zend_fetch_class(Z_STRVAL(opline->op1.u.constant), Z_STRLEN(opline->op1.u.constant), opline->extended_value TSRMLS_CC); if (!ce) { zend_error_noreturn(E_ERROR, "Undefined class constant '%s'", Z_STRVAL(opline->op2.u.constant)); |