[Pkg-php-commits] [php/debian-sid] Cherry pick fix for leak in highlight_string

Ondřej Surý ondrej at sury.org
Wed Jan 5 10:06:14 UTC 2011


---
 .../fix-memory-leak-inside-highlight_string.patch  | 2571 ++++++++++++++++++++
 debian/patches/series                              |    1 +
 2 files changed, 2572 insertions(+), 0 deletions(-)
 create mode 100644 debian/patches/fix-memory-leak-inside-highlight_string.patch

diff --git a/debian/patches/fix-memory-leak-inside-highlight_string.patch b/debian/patches/fix-memory-leak-inside-highlight_string.patch
new file mode 100644
index 0000000..ec47f50
--- /dev/null
+++ b/debian/patches/fix-memory-leak-inside-highlight_string.patch
@@ -0,0 +1,2571 @@
+--- a/Zend/zend_language_scanner_defs.h
++++ b/Zend/zend_language_scanner_defs.h
+@@ -1,4 +1,4 @@
+-/* Generated by re2c 0.13.5 on Tue Jun 29 08:18:52 2010 */
++/* Generated by re2c 0.13.5 on Mon Jan  3 05:56:03 2011 */
+ #line 3 "Zend/zend_language_scanner_defs.h"
+ 
+ enum YYCONDTYPE {
+--- a/Zend/zend_language_scanner.c
++++ b/Zend/zend_language_scanner.c
+@@ -1,4 +1,4 @@
+-/* Generated by re2c 0.13.5 on Tue Jun 29 23:22:29 2010 */
++/* Generated by re2c 0.13.5 on Mon Jan  3 05:56:03 2011 */
+ #line 1 "Zend/zend_language_scanner.l"
+ /*
+    +----------------------------------------------------------------------+
+@@ -229,6 +229,12 @@ ZEND_API void zend_restore_lexical_state
+ 	SCNG(script_encoding) = lex_state->script_encoding;
+ 	SCNG(internal_encoding) = lex_state->internal_encoding;
+ #endif /* ZEND_MULTIBYTE */
++
++	if (CG(heredoc)) {
++		efree(CG(heredoc));
++		CG(heredoc) = NULL;
++		CG(heredoc_len) = 0;
++	}
+ }
+ 
+ ZEND_API void zend_destroy_file_handle(zend_file_handle *file_handle TSRMLS_DC)
+@@ -286,6 +292,10 @@ ZEND_API int open_file_for_scanning(zend
+ 			SCNG(script_filtered_size) = SCNG(script_org_size);
+ 		} else {
+ 			SCNG(input_filter)(&SCNG(script_filtered), &SCNG(script_filtered_size), SCNG(script_org), SCNG(script_org_size) TSRMLS_CC);
++			if (SCNG(script_filtered) == NULL) {
++				zend_error_noreturn(E_COMPILE_ERROR, "Could not convert the script from the detected "
++						"encoding \"%s\" to a compatible encoding", LANG_SCNG(script_encoding)->name);
++			}
+ 		}
+ 		SCNG(yy_start) = SCNG(script_filtered) - offset;
+ 		yy_scan_buffer((char *)SCNG(script_filtered), SCNG(script_filtered_size) TSRMLS_CC);
+@@ -846,7 +856,7 @@ restart:
+ yymore_restart:
+ 
+ 
+-#line 850 "Zend/zend_language_scanner.c"
++#line 860 "Zend/zend_language_scanner.c"
+ {
+ 	YYCTYPE yych;
+ 	unsigned int yyaccept = 0;
+@@ -945,7 +955,7 @@ yyc_INITIAL:
+ yy3:
+ 		YYDEBUG(3, *YYCURSOR);
+ 		yyleng = YYCURSOR - SCNG(yy_text);
+-#line 1574 "Zend/zend_language_scanner.l"
++#line 1584 "Zend/zend_language_scanner.l"
+ 		{
+ 	if (YYCURSOR > YYLIMIT) {
+ 		return 0;
+@@ -1010,7 +1020,7 @@ inline_html:
+ 	HANDLE_NEWLINES(yytext, yyleng);
+ 	return T_INLINE_HTML;
+ }
+-#line 1014 "Zend/zend_language_scanner.c"
++#line 1024 "Zend/zend_language_scanner.c"
+ yy4:
+ 		YYDEBUG(4, *YYCURSOR);
+ 		yych = *++YYCURSOR;
+@@ -1028,7 +1038,7 @@ yy5:
+ yy6:
+ 		YYDEBUG(6, *YYCURSOR);
+ 		yyleng = YYCURSOR - SCNG(yy_text);
+-#line 1562 "Zend/zend_language_scanner.l"
++#line 1572 "Zend/zend_language_scanner.l"
+ 		{
+ 	if (CG(short_tags)) {
+ 		zendlval->value.str.val = yytext; /* no copying - intentional */
+@@ -1040,14 +1050,14 @@ yy6:
+ 		goto inline_char_handler;
+ 	}
+ }
+-#line 1044 "Zend/zend_language_scanner.c"
++#line 1054 "Zend/zend_language_scanner.c"
+ yy7:
+ 		YYDEBUG(7, *YYCURSOR);
+ 		++YYCURSOR;
+ 		if ((yych = *YYCURSOR) == '=') goto yy43;
+ 		YYDEBUG(8, *YYCURSOR);
+ 		yyleng = YYCURSOR - SCNG(yy_text);
+-#line 1539 "Zend/zend_language_scanner.l"
++#line 1549 "Zend/zend_language_scanner.l"
+ 		{
+ 	if (CG(asp_tags)) {
+ 		zendlval->value.str.val = yytext; /* no copying - intentional */
+@@ -1059,7 +1069,7 @@ yy7:
+ 		goto inline_char_handler;
+ 	}
+ }
+-#line 1063 "Zend/zend_language_scanner.c"
++#line 1073 "Zend/zend_language_scanner.c"
+ yy9:
+ 		YYDEBUG(9, *YYCURSOR);
+ 		yych = *++YYCURSOR;
+@@ -1245,7 +1255,7 @@ yy35:
+ 		++YYCURSOR;
+ 		YYDEBUG(38, *YYCURSOR);
+ 		yyleng = YYCURSOR - SCNG(yy_text);
+-#line 1495 "Zend/zend_language_scanner.l"
++#line 1505 "Zend/zend_language_scanner.l"
+ 		{
+ 	YYCTYPE *bracket = zend_memrchr(yytext, '<', yyleng - (sizeof("script language=php>") - 1));
+ 
+@@ -1262,7 +1272,7 @@ yy35:
+ 	BEGIN(ST_IN_SCRIPTING);
+ 	return T_OPEN_TAG;
+ }
+-#line 1266 "Zend/zend_language_scanner.c"
++#line 1276 "Zend/zend_language_scanner.c"
+ yy39:
+ 		YYDEBUG(39, *YYCURSOR);
+ 		yych = *++YYCURSOR;
+@@ -1289,7 +1299,7 @@ yy43:
+ 		++YYCURSOR;
+ 		YYDEBUG(44, *YYCURSOR);
+ 		yyleng = YYCURSOR - SCNG(yy_text);
+-#line 1513 "Zend/zend_language_scanner.l"
++#line 1523 "Zend/zend_language_scanner.l"
+ 		{
+ 	if (CG(asp_tags)) {
+ 		zendlval->value.str.val = yytext; /* no copying - intentional */
+@@ -1301,13 +1311,13 @@ yy43:
+ 		goto inline_char_handler;
+ 	}
+ }
+-#line 1305 "Zend/zend_language_scanner.c"
++#line 1315 "Zend/zend_language_scanner.c"
+ yy45:
+ 		YYDEBUG(45, *YYCURSOR);
+ 		++YYCURSOR;
+ 		YYDEBUG(46, *YYCURSOR);
+ 		yyleng = YYCURSOR - SCNG(yy_text);
+-#line 1526 "Zend/zend_language_scanner.l"
++#line 1536 "Zend/zend_language_scanner.l"
+ 		{
+ 	if (CG(short_tags)) {
+ 		zendlval->value.str.val = yytext; /* no copying - intentional */
+@@ -1319,7 +1329,7 @@ yy45:
+ 		goto inline_char_handler;
+ 	}
+ }
+-#line 1323 "Zend/zend_language_scanner.c"
++#line 1333 "Zend/zend_language_scanner.c"
+ yy47:
+ 		YYDEBUG(47, *YYCURSOR);
+ 		yych = *++YYCURSOR;
+@@ -1346,7 +1356,7 @@ yy50:
+ yy51:
+ 		YYDEBUG(51, *YYCURSOR);
+ 		yyleng = YYCURSOR - SCNG(yy_text);
+-#line 1552 "Zend/zend_language_scanner.l"
++#line 1562 "Zend/zend_language_scanner.l"
+ 		{
+ 	zendlval->value.str.val = yytext; /* no copying - intentional */
+ 	zendlval->value.str.len = yyleng;
+@@ -1355,7 +1365,7 @@ yy51:
+ 	BEGIN(ST_IN_SCRIPTING);
+ 	return T_OPEN_TAG;
+ }
+-#line 1359 "Zend/zend_language_scanner.c"
++#line 1369 "Zend/zend_language_scanner.c"
+ yy52:
+ 		YYDEBUG(52, *YYCURSOR);
+ 		++YYCURSOR;
+@@ -1426,7 +1436,7 @@ yyc_ST_BACKQUOTE:
+ yy56:
+ 		YYDEBUG(56, *YYCURSOR);
+ 		yyleng = YYCURSOR - SCNG(yy_text);
+-#line 2032 "Zend/zend_language_scanner.l"
++#line 2042 "Zend/zend_language_scanner.l"
+ 		{
+ 	if (YYCURSOR > YYLIMIT) {
+ 		return 0;
+@@ -1467,7 +1477,7 @@ yy56:
+ 	zend_scan_escape_string(zendlval, yytext, yyleng, '`' TSRMLS_CC);
+ 	return T_ENCAPSED_AND_WHITESPACE;
+ }
+-#line 1471 "Zend/zend_language_scanner.c"
++#line 1481 "Zend/zend_language_scanner.c"
+ yy57:
+ 		YYDEBUG(57, *YYCURSOR);
+ 		yych = *++YYCURSOR;
+@@ -1478,12 +1488,12 @@ yy58:
+ 		++YYCURSOR;
+ 		YYDEBUG(59, *YYCURSOR);
+ 		yyleng = YYCURSOR - SCNG(yy_text);
+-#line 1976 "Zend/zend_language_scanner.l"
++#line 1986 "Zend/zend_language_scanner.l"
+ 		{
+ 	BEGIN(ST_IN_SCRIPTING);
+ 	return '`';
+ }
+-#line 1487 "Zend/zend_language_scanner.c"
++#line 1497 "Zend/zend_language_scanner.c"
+ yy60:
+ 		YYDEBUG(60, *YYCURSOR);
+ 		yych = *++YYCURSOR;
+@@ -1493,14 +1503,14 @@ yy61:
+ 		++YYCURSOR;
+ 		YYDEBUG(62, *YYCURSOR);
+ 		yyleng = YYCURSOR - SCNG(yy_text);
+-#line 1963 "Zend/zend_language_scanner.l"
++#line 1973 "Zend/zend_language_scanner.l"
+ 		{
+ 	zendlval->value.lval = (long) '{';
+ 	yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
+ 	yyless(1);
+ 	return T_CURLY_OPEN;
+ }
+-#line 1504 "Zend/zend_language_scanner.c"
++#line 1514 "Zend/zend_language_scanner.c"
+ yy63:
+ 		YYDEBUG(63, *YYCURSOR);
+ 		yyaccept = 0;
+@@ -1516,24 +1526,24 @@ yy63:
+ yy65:
+ 		YYDEBUG(65, *YYCURSOR);
+ 		yyleng = YYCURSOR - SCNG(yy_text);
+-#line 1661 "Zend/zend_language_scanner.l"
++#line 1671 "Zend/zend_language_scanner.l"
+ 		{
+ 	zend_copy_value(zendlval, (yytext+1), (yyleng-1));
+ 	zendlval->type = IS_STRING;
+ 	return T_VARIABLE;
+ }
+-#line 1526 "Zend/zend_language_scanner.c"
++#line 1536 "Zend/zend_language_scanner.c"
+ yy66:
+ 		YYDEBUG(66, *YYCURSOR);
+ 		++YYCURSOR;
+ 		YYDEBUG(67, *YYCURSOR);
+ 		yyleng = YYCURSOR - SCNG(yy_text);
+-#line 1288 "Zend/zend_language_scanner.l"
++#line 1298 "Zend/zend_language_scanner.l"
+ 		{
+ 	yy_push_state(ST_LOOKING_FOR_VARNAME TSRMLS_CC);
+ 	return T_DOLLAR_OPEN_CURLY_BRACES;
+ }
+-#line 1537 "Zend/zend_language_scanner.c"
++#line 1547 "Zend/zend_language_scanner.c"
+ yy68:
+ 		YYDEBUG(68, *YYCURSOR);
+ 		yych = *++YYCURSOR;
+@@ -1547,7 +1557,7 @@ yy70:
+ 		++YYCURSOR;
+ 		YYDEBUG(71, *YYCURSOR);
+ 		yyleng = YYCURSOR - SCNG(yy_text);
+-#line 1653 "Zend/zend_language_scanner.l"
++#line 1663 "Zend/zend_language_scanner.l"
+ 		{
+ 	yyless(yyleng - 1);
+ 	yy_push_state(ST_VAR_OFFSET TSRMLS_CC);
+@@ -1555,7 +1565,7 @@ yy70:
+ 	zendlval->type = IS_STRING;
+ 	return T_VARIABLE;
+ }
+-#line 1559 "Zend/zend_language_scanner.c"
++#line 1569 "Zend/zend_language_scanner.c"
+ yy72:
+ 		YYDEBUG(72, *YYCURSOR);
+ 		yych = *++YYCURSOR;
+@@ -1573,7 +1583,7 @@ yy73:
+ 		++YYCURSOR;
+ 		YYDEBUG(74, *YYCURSOR);
+ 		yyleng = YYCURSOR - SCNG(yy_text);
+-#line 1643 "Zend/zend_language_scanner.l"
++#line 1653 "Zend/zend_language_scanner.l"
+ 		{
+ 	yyless(yyleng - 3);
+ 	yy_push_state(ST_LOOKING_FOR_PROPERTY TSRMLS_CC);
+@@ -1581,7 +1591,7 @@ yy73:
+ 	zendlval->type = IS_STRING;
+ 	return T_VARIABLE;
+ }
+-#line 1585 "Zend/zend_language_scanner.c"
++#line 1595 "Zend/zend_language_scanner.c"
+ 	}
+ /* *********************************** */
+ yyc_ST_DOUBLE_QUOTES:
+@@ -1649,7 +1659,7 @@ yy77:
+ yy78:
+ 		YYDEBUG(78, *YYCURSOR);
+ 		yyleng = YYCURSOR - SCNG(yy_text);
+-#line 1982 "Zend/zend_language_scanner.l"
++#line 1992 "Zend/zend_language_scanner.l"
+ 		{
+ 	if (GET_DOUBLE_QUOTES_SCANNED_LENGTH()) {
+ 		YYCURSOR += GET_DOUBLE_QUOTES_SCANNED_LENGTH() - 1;
+@@ -1698,7 +1708,7 @@ double_quotes_scan_done:
+ 	zend_scan_escape_string(zendlval, yytext, yyleng, '"' TSRMLS_CC);
+ 	return T_ENCAPSED_AND_WHITESPACE;
+ }
+-#line 1702 "Zend/zend_language_scanner.c"
++#line 1712 "Zend/zend_language_scanner.c"
+ yy79:
+ 		YYDEBUG(79, *YYCURSOR);
+ 		yych = *++YYCURSOR;
+@@ -1709,12 +1719,12 @@ yy80:
+ 		++YYCURSOR;
+ 		YYDEBUG(81, *YYCURSOR);
+ 		yyleng = YYCURSOR - SCNG(yy_text);
+-#line 1971 "Zend/zend_language_scanner.l"
++#line 1981 "Zend/zend_language_scanner.l"
+ 		{
+ 	BEGIN(ST_IN_SCRIPTING);
+ 	return '"';
+ }
+-#line 1718 "Zend/zend_language_scanner.c"
++#line 1728 "Zend/zend_language_scanner.c"
+ yy82:
+ 		YYDEBUG(82, *YYCURSOR);
+ 		yych = *++YYCURSOR;
+@@ -1724,14 +1734,14 @@ yy83:
+ 		++YYCURSOR;
+ 		YYDEBUG(84, *YYCURSOR);
+ 		yyleng = YYCURSOR - SCNG(yy_text);
+-#line 1963 "Zend/zend_language_scanner.l"
++#line 1973 "Zend/zend_language_scanner.l"
+ 		{
+ 	zendlval->value.lval = (long) '{';
+ 	yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
+ 	yyless(1);
+ 	return T_CURLY_OPEN;
+ }
+-#line 1735 "Zend/zend_language_scanner.c"
++#line 1745 "Zend/zend_language_scanner.c"
+ yy85:
+ 		YYDEBUG(85, *YYCURSOR);
+ 		yyaccept = 0;
+@@ -1747,24 +1757,24 @@ yy85:
+ yy87:
+ 		YYDEBUG(87, *YYCURSOR);
+ 		yyleng = YYCURSOR - SCNG(yy_text);
+-#line 1661 "Zend/zend_language_scanner.l"
++#line 1671 "Zend/zend_language_scanner.l"
+ 		{
+ 	zend_copy_value(zendlval, (yytext+1), (yyleng-1));
+ 	zendlval->type = IS_STRING;
+ 	return T_VARIABLE;
+ }
+-#line 1757 "Zend/zend_language_scanner.c"
++#line 1767 "Zend/zend_language_scanner.c"
+ yy88:
+ 		YYDEBUG(88, *YYCURSOR);
+ 		++YYCURSOR;
+ 		YYDEBUG(89, *YYCURSOR);
+ 		yyleng = YYCURSOR - SCNG(yy_text);
+-#line 1288 "Zend/zend_language_scanner.l"
++#line 1298 "Zend/zend_language_scanner.l"
+ 		{
+ 	yy_push_state(ST_LOOKING_FOR_VARNAME TSRMLS_CC);
+ 	return T_DOLLAR_OPEN_CURLY_BRACES;
+ }
+-#line 1768 "Zend/zend_language_scanner.c"
++#line 1778 "Zend/zend_language_scanner.c"
+ yy90:
+ 		YYDEBUG(90, *YYCURSOR);
+ 		yych = *++YYCURSOR;
+@@ -1778,7 +1788,7 @@ yy92:
+ 		++YYCURSOR;
+ 		YYDEBUG(93, *YYCURSOR);
+ 		yyleng = YYCURSOR - SCNG(yy_text);
+-#line 1653 "Zend/zend_language_scanner.l"
++#line 1663 "Zend/zend_language_scanner.l"
+ 		{
+ 	yyless(yyleng - 1);
+ 	yy_push_state(ST_VAR_OFFSET TSRMLS_CC);
+@@ -1786,7 +1796,7 @@ yy92:
+ 	zendlval->type = IS_STRING;
+ 	return T_VARIABLE;
+ }
+-#line 1790 "Zend/zend_language_scanner.c"
++#line 1800 "Zend/zend_language_scanner.c"
+ yy94:
+ 		YYDEBUG(94, *YYCURSOR);
+ 		yych = *++YYCURSOR;
+@@ -1804,7 +1814,7 @@ yy95:
+ 		++YYCURSOR;
+ 		YYDEBUG(96, *YYCURSOR);
+ 		yyleng = YYCURSOR - SCNG(yy_text);
+-#line 1643 "Zend/zend_language_scanner.l"
++#line 1653 "Zend/zend_language_scanner.l"
+ 		{
+ 	yyless(yyleng - 3);
+ 	yy_push_state(ST_LOOKING_FOR_PROPERTY TSRMLS_CC);
+@@ -1812,7 +1822,7 @@ yy95:
+ 	zendlval->type = IS_STRING;
+ 	return T_VARIABLE;
+ }
+-#line 1816 "Zend/zend_language_scanner.c"
++#line 1826 "Zend/zend_language_scanner.c"
+ 	}
+ /* *********************************** */
+ yyc_ST_END_HEREDOC:
+@@ -1823,7 +1833,7 @@ yyc_ST_END_HEREDOC:
+ 	++YYCURSOR;
+ 	YYDEBUG(100, *YYCURSOR);
+ 	yyleng = YYCURSOR - SCNG(yy_text);
+-#line 1950 "Zend/zend_language_scanner.l"
++#line 1960 "Zend/zend_language_scanner.l"
+ 	{
+ 	YYCURSOR += CG(heredoc_len) - 1;
+ 	yyleng = CG(heredoc_len);
+@@ -1835,7 +1845,7 @@ yyc_ST_END_HEREDOC:
+ 	BEGIN(ST_IN_SCRIPTING);
+ 	return T_END_HEREDOC;
+ }
+-#line 1839 "Zend/zend_language_scanner.c"
++#line 1849 "Zend/zend_language_scanner.c"
+ /* *********************************** */
+ yyc_ST_HEREDOC:
+ 	{
+@@ -1897,7 +1907,7 @@ yy103:
+ yy104:
+ 		YYDEBUG(104, *YYCURSOR);
+ 		yyleng = YYCURSOR - SCNG(yy_text);
+-#line 2074 "Zend/zend_language_scanner.l"
++#line 2084 "Zend/zend_language_scanner.l"
+ 		{
+ 	int newline = 0;
+ 
+@@ -1968,7 +1978,7 @@ heredoc_scan_done:
+ 	zend_scan_escape_string(zendlval, yytext, yyleng - newline, 0 TSRMLS_CC);
+ 	return T_ENCAPSED_AND_WHITESPACE;
+ }
+-#line 1972 "Zend/zend_language_scanner.c"
++#line 1982 "Zend/zend_language_scanner.c"
+ yy105:
+ 		YYDEBUG(105, *YYCURSOR);
+ 		yych = *++YYCURSOR;
+@@ -1983,14 +1993,14 @@ yy107:
+ 		++YYCURSOR;
+ 		YYDEBUG(108, *YYCURSOR);
+ 		yyleng = YYCURSOR - SCNG(yy_text);
+-#line 1963 "Zend/zend_language_scanner.l"
++#line 1973 "Zend/zend_language_scanner.l"
+ 		{
+ 	zendlval->value.lval = (long) '{';
+ 	yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
+ 	yyless(1);
+ 	return T_CURLY_OPEN;
+ }
+-#line 1994 "Zend/zend_language_scanner.c"
++#line 2004 "Zend/zend_language_scanner.c"
+ yy109:
+ 		YYDEBUG(109, *YYCURSOR);
+ 		yyaccept = 0;
+@@ -2006,24 +2016,24 @@ yy109:
+ yy111:
+ 		YYDEBUG(111, *YYCURSOR);
+ 		yyleng = YYCURSOR - SCNG(yy_text);
+-#line 1661 "Zend/zend_language_scanner.l"
++#line 1671 "Zend/zend_language_scanner.l"
+ 		{
+ 	zend_copy_value(zendlval, (yytext+1), (yyleng-1));
+ 	zendlval->type = IS_STRING;
+ 	return T_VARIABLE;
+ }
+-#line 2016 "Zend/zend_language_scanner.c"
++#line 2026 "Zend/zend_language_scanner.c"
+ yy112:
+ 		YYDEBUG(112, *YYCURSOR);
+ 		++YYCURSOR;
+ 		YYDEBUG(113, *YYCURSOR);
+ 		yyleng = YYCURSOR - SCNG(yy_text);
+-#line 1288 "Zend/zend_language_scanner.l"
++#line 1298 "Zend/zend_language_scanner.l"
+ 		{
+ 	yy_push_state(ST_LOOKING_FOR_VARNAME TSRMLS_CC);
+ 	return T_DOLLAR_OPEN_CURLY_BRACES;
+ }
+-#line 2027 "Zend/zend_language_scanner.c"
++#line 2037 "Zend/zend_language_scanner.c"
+ yy114:
+ 		YYDEBUG(114, *YYCURSOR);
+ 		yych = *++YYCURSOR;
+@@ -2037,7 +2047,7 @@ yy116:
+ 		++YYCURSOR;
+ 		YYDEBUG(117, *YYCURSOR);
+ 		yyleng = YYCURSOR - SCNG(yy_text);
+-#line 1653 "Zend/zend_language_scanner.l"
++#line 1663 "Zend/zend_language_scanner.l"
+ 		{
+ 	yyless(yyleng - 1);
+ 	yy_push_state(ST_VAR_OFFSET TSRMLS_CC);
+@@ -2045,7 +2055,7 @@ yy116:
+ 	zendlval->type = IS_STRING;
+ 	return T_VARIABLE;
+ }
+-#line 2049 "Zend/zend_language_scanner.c"
++#line 2059 "Zend/zend_language_scanner.c"
+ yy118:
+ 		YYDEBUG(118, *YYCURSOR);
+ 		yych = *++YYCURSOR;
+@@ -2063,7 +2073,7 @@ yy119:
+ 		++YYCURSOR;
+ 		YYDEBUG(120, *YYCURSOR);
+ 		yyleng = YYCURSOR - SCNG(yy_text);
+-#line 1643 "Zend/zend_language_scanner.l"
++#line 1653 "Zend/zend_language_scanner.l"
+ 		{
+ 	yyless(yyleng - 3);
+ 	yy_push_state(ST_LOOKING_FOR_PROPERTY TSRMLS_CC);
+@@ -2071,7 +2081,7 @@ yy119:
+ 	zendlval->type = IS_STRING;
+ 	return T_VARIABLE;
+ }
+-#line 2075 "Zend/zend_language_scanner.c"
++#line 2085 "Zend/zend_language_scanner.c"
+ 	}
+ /* *********************************** */
+ yyc_ST_IN_SCRIPTING:
+@@ -2252,13 +2262,13 @@ yy123:
+ yy124:
+ 		YYDEBUG(124, *YYCURSOR);
+ 		yyleng = YYCURSOR - SCNG(yy_text);
+-#line 1684 "Zend/zend_language_scanner.l"
++#line 1694 "Zend/zend_language_scanner.l"
+ 		{
+ 	zend_copy_value(zendlval, yytext, yyleng);
+ 	zendlval->type = IS_STRING;
+ 	return T_STRING;
+ }
+-#line 2262 "Zend/zend_language_scanner.c"
++#line 2272 "Zend/zend_language_scanner.c"
+ yy125:
+ 		YYDEBUG(125, *YYCURSOR);
+ 		yych = *++YYCURSOR;
+@@ -2484,11 +2494,11 @@ yy137:
+ yy138:
+ 		YYDEBUG(138, *YYCURSOR);
+ 		yyleng = YYCURSOR - SCNG(yy_text);
+-#line 1277 "Zend/zend_language_scanner.l"
++#line 1287 "Zend/zend_language_scanner.l"
+ 		{
+ 	return yytext[0];
+ }
+-#line 2492 "Zend/zend_language_scanner.c"
++#line 2502 "Zend/zend_language_scanner.c"
+ yy139:
+ 		YYDEBUG(139, *YYCURSOR);
+ 		++YYCURSOR;
+@@ -2497,7 +2507,7 @@ yy139:
+ yy140:
+ 		YYDEBUG(140, *YYCURSOR);
+ 		yyleng = YYCURSOR - SCNG(yy_text);
+-#line 1012 "Zend/zend_language_scanner.l"
++#line 1022 "Zend/zend_language_scanner.l"
+ 		{
+ 	zendlval->value.str.val = yytext; /* no copying - intentional */
+ 	zendlval->value.str.len = yyleng;
+@@ -2505,7 +2515,7 @@ yy140:
+ 	HANDLE_NEWLINES(yytext, yyleng);
+ 	return T_WHITESPACE;
+ }
+-#line 2509 "Zend/zend_language_scanner.c"
++#line 2519 "Zend/zend_language_scanner.c"
+ yy141:
+ 		YYDEBUG(141, *YYCURSOR);
+ 		yych = *++YYCURSOR;
+@@ -2516,11 +2526,11 @@ yy142:
+ 		++YYCURSOR;
+ 		YYDEBUG(143, *YYCURSOR);
+ 		yyleng = YYCURSOR - SCNG(yy_text);
+-#line 1041 "Zend/zend_language_scanner.l"
++#line 1051 "Zend/zend_language_scanner.l"
+ 		{
+ 	return T_NS_SEPARATOR;
+ }
+-#line 2524 "Zend/zend_language_scanner.c"
++#line 2534 "Zend/zend_language_scanner.c"
+ yy144:
+ 		YYDEBUG(144, *YYCURSOR);
+ 		yych = *++YYCURSOR;
+@@ -2748,18 +2758,18 @@ yy167:
+ 		++YYCURSOR;
+ 		YYDEBUG(168, *YYCURSOR);
+ 		yyleng = YYCURSOR - SCNG(yy_text);
+-#line 1282 "Zend/zend_language_scanner.l"
++#line 1292 "Zend/zend_language_scanner.l"
+ 		{
+ 	yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
+ 	return '{';
+ }
+-#line 2757 "Zend/zend_language_scanner.c"
++#line 2767 "Zend/zend_language_scanner.c"
+ yy169:
+ 		YYDEBUG(169, *YYCURSOR);
+ 		++YYCURSOR;
+ 		YYDEBUG(170, *YYCURSOR);
+ 		yyleng = YYCURSOR - SCNG(yy_text);
+-#line 1294 "Zend/zend_language_scanner.l"
++#line 1304 "Zend/zend_language_scanner.l"
+ 		{
+ 	RESET_DOC_COMMENT();
+ 	if (!zend_stack_is_empty(&SCNG(state_stack))) {
+@@ -2767,7 +2777,7 @@ yy169:
+ 	}
+ 	return '}';
+ }
+-#line 2771 "Zend/zend_language_scanner.c"
++#line 2781 "Zend/zend_language_scanner.c"
+ yy171:
+ 		YYDEBUG(171, *YYCURSOR);
+ 		yyaccept = 2;
+@@ -2790,7 +2800,7 @@ yy171:
+ yy172:
+ 		YYDEBUG(172, *YYCURSOR);
+ 		yyleng = YYCURSOR - SCNG(yy_text);
+-#line 1320 "Zend/zend_language_scanner.l"
++#line 1330 "Zend/zend_language_scanner.l"
+ 		{
+ 	if (yyleng < MAX_LENGTH_OF_LONG - 1) { /* Won't overflow */
+ 		zendlval->value.lval = strtol(yytext, NULL, 0);
+@@ -2811,7 +2821,7 @@ yy172:
+ 	zendlval->type = IS_LONG;
+ 	return T_LNUMBER;
+ }
+-#line 2815 "Zend/zend_language_scanner.c"
++#line 2825 "Zend/zend_language_scanner.c"
+ yy173:
+ 		YYDEBUG(173, *YYCURSOR);
+ 		yyaccept = 2;
+@@ -2839,7 +2849,7 @@ yy175:
+ yy176:
+ 		YYDEBUG(176, *YYCURSOR);
+ 		yyleng = YYCURSOR - SCNG(yy_text);
+-#line 1691 "Zend/zend_language_scanner.l"
++#line 1701 "Zend/zend_language_scanner.l"
+ 		{
+ 	while (YYCURSOR < YYLIMIT) {
+ 		switch (*YYCURSOR++) {
+@@ -2873,14 +2883,14 @@ yy176:
+ 
+ 	return T_COMMENT;
+ }
+-#line 2877 "Zend/zend_language_scanner.c"
++#line 2887 "Zend/zend_language_scanner.c"
+ yy177:
+ 		YYDEBUG(177, *YYCURSOR);
+ 		++YYCURSOR;
+ yy178:
+ 		YYDEBUG(178, *YYCURSOR);
+ 		yyleng = YYCURSOR - SCNG(yy_text);
+-#line 1782 "Zend/zend_language_scanner.l"
++#line 1792 "Zend/zend_language_scanner.l"
+ 		{
+ 	register char *s, *t;
+ 	char *end;
+@@ -2950,14 +2960,14 @@ yy178:
+ #endif /* ZEND_MULTIBYTE */
+ 	return T_CONSTANT_ENCAPSED_STRING;
+ }
+-#line 2954 "Zend/zend_language_scanner.c"
++#line 2964 "Zend/zend_language_scanner.c"
+ yy179:
+ 		YYDEBUG(179, *YYCURSOR);
+ 		++YYCURSOR;
+ yy180:
+ 		YYDEBUG(180, *YYCURSOR);
+ 		yyleng = YYCURSOR - SCNG(yy_text);
+-#line 1853 "Zend/zend_language_scanner.l"
++#line 1863 "Zend/zend_language_scanner.l"
+ 		{
+ 	int bprefix = (yytext[0] != '"') ? 1 : 0;
+ 
+@@ -2998,24 +3008,24 @@ yy180:
+ 	BEGIN(ST_DOUBLE_QUOTES);
+ 	return '"';
+ }
+-#line 3002 "Zend/zend_language_scanner.c"
++#line 3012 "Zend/zend_language_scanner.c"
+ yy181:
+ 		YYDEBUG(181, *YYCURSOR);
+ 		++YYCURSOR;
+ 		YYDEBUG(182, *YYCURSOR);
+ 		yyleng = YYCURSOR - SCNG(yy_text);
+-#line 1944 "Zend/zend_language_scanner.l"
++#line 1954 "Zend/zend_language_scanner.l"
+ 		{
+ 	BEGIN(ST_BACKQUOTE);
+ 	return '`';
+ }
+-#line 3013 "Zend/zend_language_scanner.c"
++#line 3023 "Zend/zend_language_scanner.c"
+ yy183:
+ 		YYDEBUG(183, *YYCURSOR);
+ 		++YYCURSOR;
+ 		YYDEBUG(184, *YYCURSOR);
+ 		yyleng = YYCURSOR - SCNG(yy_text);
+-#line 2202 "Zend/zend_language_scanner.l"
++#line 2212 "Zend/zend_language_scanner.l"
+ 		{
+ 	if (YYCURSOR > YYLIMIT) {
+ 		return 0;
+@@ -3024,7 +3034,7 @@ yy183:
+ 	zend_error(E_COMPILE_WARNING,"Unexpected character in input:  '%c' (ASCII=%d) state=%d", yytext[0], yytext[0], YYSTATE);
+ 	goto restart;
+ }
+-#line 3028 "Zend/zend_language_scanner.c"
++#line 3038 "Zend/zend_language_scanner.c"
+ yy185:
+ 		YYDEBUG(185, *YYCURSOR);
+ 		++YYCURSOR;
+@@ -3051,13 +3061,13 @@ yy187:
+ yy189:
+ 		YYDEBUG(189, *YYCURSOR);
+ 		yyleng = YYCURSOR - SCNG(yy_text);
+-#line 1381 "Zend/zend_language_scanner.l"
++#line 1391 "Zend/zend_language_scanner.l"
+ 		{
+ 	zendlval->value.dval = zend_strtod(yytext, NULL);
+ 	zendlval->type = IS_DOUBLE;
+ 	return T_DNUMBER;
+ }
+-#line 3061 "Zend/zend_language_scanner.c"
++#line 3071 "Zend/zend_language_scanner.c"
+ yy190:
+ 		YYDEBUG(190, *YYCURSOR);
+ 		yyaccept = 2;
+@@ -3142,7 +3152,7 @@ yy198:
+ 		}
+ 		YYDEBUG(200, *YYCURSOR);
+ 		yyleng = YYCURSOR - SCNG(yy_text);
+-#line 1341 "Zend/zend_language_scanner.l"
++#line 1351 "Zend/zend_language_scanner.l"
+ 		{
+ 	char *hex = yytext + 2; /* Skip "0x" */
+ 	int len = yyleng - 2;
+@@ -3163,7 +3173,7 @@ yy198:
+ 		return T_DNUMBER;
+ 	}
+ }
+-#line 3167 "Zend/zend_language_scanner.c"
++#line 3177 "Zend/zend_language_scanner.c"
+ yy201:
+ 		YYDEBUG(201, *YYCURSOR);
+ 		++YYCURSOR;
+@@ -3172,7 +3182,7 @@ yy201:
+ yy202:
+ 		YYDEBUG(202, *YYCURSOR);
+ 		yyleng = YYCURSOR - SCNG(yy_text);
+-#line 1759 "Zend/zend_language_scanner.l"
++#line 1769 "Zend/zend_language_scanner.l"
+ 		{
+ 	zendlval->value.str.val = yytext; /* no copying - intentional */
+ 	zendlval->value.str.len = yyleng;
+@@ -3180,7 +3190,7 @@ yy202:
+ 	BEGIN(INITIAL);
+ 	return T_CLOSE_TAG;  /* implicit ';' at php-end tag */
+ }
+-#line 3184 "Zend/zend_language_scanner.c"
++#line 3194 "Zend/zend_language_scanner.c"
+ yy203:
+ 		YYDEBUG(203, *YYCURSOR);
+ 		yych = *++YYCURSOR;
+@@ -3214,13 +3224,13 @@ yy205:
+ yy207:
+ 		YYDEBUG(207, *YYCURSOR);
+ 		yyleng = YYCURSOR - SCNG(yy_text);
+-#line 1661 "Zend/zend_language_scanner.l"
++#line 1671 "Zend/zend_language_scanner.l"
+ 		{
+ 	zend_copy_value(zendlval, (yytext+1), (yyleng-1));
+ 	zendlval->type = IS_STRING;
+ 	return T_VARIABLE;
+ }
+-#line 3224 "Zend/zend_language_scanner.c"
++#line 3234 "Zend/zend_language_scanner.c"
+ yy208:
+ 		YYDEBUG(208, *YYCURSOR);
+ 		yych = *++YYCURSOR;
+@@ -3234,11 +3244,11 @@ yy209:
+ 		}
+ 		YYDEBUG(210, *YYCURSOR);
+ 		yyleng = YYCURSOR - SCNG(yy_text);
+-#line 1265 "Zend/zend_language_scanner.l"
++#line 1275 "Zend/zend_language_scanner.l"
+ 		{
+ 	return T_LOGICAL_XOR;
+ }
+-#line 3242 "Zend/zend_language_scanner.c"
++#line 3252 "Zend/zend_language_scanner.c"
+ yy211:
+ 		YYDEBUG(211, *YYCURSOR);
+ 		++YYCURSOR;
+@@ -3247,61 +3257,61 @@ yy211:
+ 		}
+ 		YYDEBUG(212, *YYCURSOR);
+ 		yyleng = YYCURSOR - SCNG(yy_text);
+-#line 1257 "Zend/zend_language_scanner.l"
++#line 1267 "Zend/zend_language_scanner.l"
+ 		{
+ 	return T_LOGICAL_OR;
+ }
+-#line 3255 "Zend/zend_language_scanner.c"
++#line 3265 "Zend/zend_language_scanner.c"
+ yy213:
+ 		YYDEBUG(213, *YYCURSOR);
+ 		++YYCURSOR;
+ 		YYDEBUG(214, *YYCURSOR);
+ 		yyleng = YYCURSOR - SCNG(yy_text);
+-#line 1245 "Zend/zend_language_scanner.l"
++#line 1255 "Zend/zend_language_scanner.l"
+ 		{
+ 	return T_XOR_EQUAL;
+ }
+-#line 3265 "Zend/zend_language_scanner.c"
++#line 3275 "Zend/zend_language_scanner.c"
+ yy215:
+ 		YYDEBUG(215, *YYCURSOR);
+ 		++YYCURSOR;
+ 		YYDEBUG(216, *YYCURSOR);
+ 		yyleng = YYCURSOR - SCNG(yy_text);
+-#line 1249 "Zend/zend_language_scanner.l"
++#line 1259 "Zend/zend_language_scanner.l"
+ 		{
+ 	return T_BOOLEAN_OR;
+ }
+-#line 3275 "Zend/zend_language_scanner.c"
++#line 3285 "Zend/zend_language_scanner.c"
+ yy217:
+ 		YYDEBUG(217, *YYCURSOR);
+ 		++YYCURSOR;
+ 		YYDEBUG(218, *YYCURSOR);
+ 		yyleng = YYCURSOR - SCNG(yy_text);
+-#line 1241 "Zend/zend_language_scanner.l"
++#line 1251 "Zend/zend_language_scanner.l"
+ 		{
+ 	return T_OR_EQUAL;
+ }
+-#line 3285 "Zend/zend_language_scanner.c"
++#line 3295 "Zend/zend_language_scanner.c"
+ yy219:
+ 		YYDEBUG(219, *YYCURSOR);
+ 		++YYCURSOR;
+ 		YYDEBUG(220, *YYCURSOR);
+ 		yyleng = YYCURSOR - SCNG(yy_text);
+-#line 1253 "Zend/zend_language_scanner.l"
++#line 1263 "Zend/zend_language_scanner.l"
+ 		{
+ 	return T_BOOLEAN_AND;
+ }
+-#line 3295 "Zend/zend_language_scanner.c"
++#line 3305 "Zend/zend_language_scanner.c"
+ yy221:
+ 		YYDEBUG(221, *YYCURSOR);
+ 		++YYCURSOR;
+ 		YYDEBUG(222, *YYCURSOR);
+ 		yyleng = YYCURSOR - SCNG(yy_text);
+-#line 1237 "Zend/zend_language_scanner.l"
++#line 1247 "Zend/zend_language_scanner.l"
+ 		{
+ 	return T_AND_EQUAL;
+ }
+-#line 3305 "Zend/zend_language_scanner.c"
++#line 3315 "Zend/zend_language_scanner.c"
+ yy223:
+ 		YYDEBUG(223, *YYCURSOR);
+ 		++YYCURSOR;
+@@ -3310,7 +3320,7 @@ yy223:
+ yy224:
+ 		YYDEBUG(224, *YYCURSOR);
+ 		yyleng = YYCURSOR - SCNG(yy_text);
+-#line 1768 "Zend/zend_language_scanner.l"
++#line 1778 "Zend/zend_language_scanner.l"
+ 		{
+ 	if (CG(asp_tags)) {
+ 		BEGIN(INITIAL);
+@@ -3323,17 +3333,17 @@ yy224:
+ 		return yytext[0];
+ 	}
+ }
+-#line 3327 "Zend/zend_language_scanner.c"
++#line 3337 "Zend/zend_language_scanner.c"
+ yy225:
+ 		YYDEBUG(225, *YYCURSOR);
+ 		++YYCURSOR;
+ 		YYDEBUG(226, *YYCURSOR);
+ 		yyleng = YYCURSOR - SCNG(yy_text);
+-#line 1225 "Zend/zend_language_scanner.l"
++#line 1235 "Zend/zend_language_scanner.l"
+ 		{
+ 	return T_MOD_EQUAL;
+ }
+-#line 3337 "Zend/zend_language_scanner.c"
++#line 3347 "Zend/zend_language_scanner.c"
+ yy227:
+ 		YYDEBUG(227, *YYCURSOR);
+ 		yych = *++YYCURSOR;
+@@ -3364,11 +3374,11 @@ yy231:
+ 		++YYCURSOR;
+ 		YYDEBUG(232, *YYCURSOR);
+ 		yyleng = YYCURSOR - SCNG(yy_text);
+-#line 1221 "Zend/zend_language_scanner.l"
++#line 1231 "Zend/zend_language_scanner.l"
+ 		{
+ 	return T_CONCAT_EQUAL;
+ }
+-#line 3372 "Zend/zend_language_scanner.c"
++#line 3382 "Zend/zend_language_scanner.c"
+ yy233:
+ 		YYDEBUG(233, *YYCURSOR);
+ 		yyaccept = 4;
+@@ -3377,7 +3387,7 @@ yy233:
+ yy234:
+ 		YYDEBUG(234, *YYCURSOR);
+ 		yyleng = YYCURSOR - SCNG(yy_text);
+-#line 1725 "Zend/zend_language_scanner.l"
++#line 1735 "Zend/zend_language_scanner.l"
+ 		{
+ 	int doc_com;
+ 
+@@ -3411,7 +3421,7 @@ yy234:
+ 
+ 	return T_COMMENT;
+ }
+-#line 3415 "Zend/zend_language_scanner.c"
++#line 3425 "Zend/zend_language_scanner.c"
+ yy235:
+ 		YYDEBUG(235, *YYCURSOR);
+ 		yych = *++YYCURSOR;
+@@ -3421,11 +3431,11 @@ yy236:
+ 		++YYCURSOR;
+ 		YYDEBUG(237, *YYCURSOR);
+ 		yyleng = YYCURSOR - SCNG(yy_text);
+-#line 1217 "Zend/zend_language_scanner.l"
++#line 1227 "Zend/zend_language_scanner.l"
+ 		{
+ 	return T_DIV_EQUAL;
+ }
+-#line 3429 "Zend/zend_language_scanner.c"
++#line 3439 "Zend/zend_language_scanner.c"
+ yy238:
+ 		YYDEBUG(238, *YYCURSOR);
+ 		yych = *++YYCURSOR;
+@@ -3448,42 +3458,42 @@ yy241:
+ 		++YYCURSOR;
+ 		YYDEBUG(242, *YYCURSOR);
+ 		yyleng = YYCURSOR - SCNG(yy_text);
+-#line 1213 "Zend/zend_language_scanner.l"
++#line 1223 "Zend/zend_language_scanner.l"
+ 		{
+ 	return T_MUL_EQUAL;
+ }
+-#line 3456 "Zend/zend_language_scanner.c"
++#line 3466 "Zend/zend_language_scanner.c"
+ yy243:
+ 		YYDEBUG(243, *YYCURSOR);
+ 		++YYCURSOR;
+ 		if ((yych = *YYCURSOR) == '=') goto yy247;
+ 		YYDEBUG(244, *YYCURSOR);
+ 		yyleng = YYCURSOR - SCNG(yy_text);
+-#line 1273 "Zend/zend_language_scanner.l"
++#line 1283 "Zend/zend_language_scanner.l"
+ 		{
+ 	return T_SR;
+ }
+-#line 3467 "Zend/zend_language_scanner.c"
++#line 3477 "Zend/zend_language_scanner.c"
+ yy245:
+ 		YYDEBUG(245, *YYCURSOR);
+ 		++YYCURSOR;
+ 		YYDEBUG(246, *YYCURSOR);
+ 		yyleng = YYCURSOR - SCNG(yy_text);
+-#line 1201 "Zend/zend_language_scanner.l"
++#line 1211 "Zend/zend_language_scanner.l"
+ 		{
+ 	return T_IS_GREATER_OR_EQUAL;
+ }
+-#line 3477 "Zend/zend_language_scanner.c"
++#line 3487 "Zend/zend_language_scanner.c"
+ yy247:
+ 		YYDEBUG(247, *YYCURSOR);
+ 		++YYCURSOR;
+ 		YYDEBUG(248, *YYCURSOR);
+ 		yyleng = YYCURSOR - SCNG(yy_text);
+-#line 1233 "Zend/zend_language_scanner.l"
++#line 1243 "Zend/zend_language_scanner.l"
+ 		{
+ 	return T_SR_EQUAL;
+ }
+-#line 3487 "Zend/zend_language_scanner.c"
++#line 3497 "Zend/zend_language_scanner.c"
+ yy249:
+ 		YYDEBUG(249, *YYCURSOR);
+ 		yyaccept = 5;
+@@ -3494,11 +3504,11 @@ yy249:
+ yy250:
+ 		YYDEBUG(250, *YYCURSOR);
+ 		yyleng = YYCURSOR - SCNG(yy_text);
+-#line 1269 "Zend/zend_language_scanner.l"
++#line 1279 "Zend/zend_language_scanner.l"
+ 		{
+ 	return T_SL;
+ }
+-#line 3502 "Zend/zend_language_scanner.c"
++#line 3512 "Zend/zend_language_scanner.c"
+ yy251:
+ 		YYDEBUG(251, *YYCURSOR);
+ 		yych = *++YYCURSOR;
+@@ -3510,22 +3520,22 @@ yy252:
+ 		++YYCURSOR;
+ 		YYDEBUG(253, *YYCURSOR);
+ 		yyleng = YYCURSOR - SCNG(yy_text);
+-#line 1197 "Zend/zend_language_scanner.l"
++#line 1207 "Zend/zend_language_scanner.l"
+ 		{
+ 	return T_IS_SMALLER_OR_EQUAL;
+ }
+-#line 3518 "Zend/zend_language_scanner.c"
++#line 3528 "Zend/zend_language_scanner.c"
+ yy254:
+ 		YYDEBUG(254, *YYCURSOR);
+ 		++YYCURSOR;
+ yy255:
+ 		YYDEBUG(255, *YYCURSOR);
+ 		yyleng = YYCURSOR - SCNG(yy_text);
+-#line 1193 "Zend/zend_language_scanner.l"
++#line 1203 "Zend/zend_language_scanner.l"
+ 		{
+ 	return T_IS_NOT_EQUAL;
+ }
+-#line 3529 "Zend/zend_language_scanner.c"
++#line 3539 "Zend/zend_language_scanner.c"
+ yy256:
+ 		YYDEBUG(256, *YYCURSOR);
+ 		yych = *++YYCURSOR;
+@@ -3576,11 +3586,11 @@ yy263:
+ 		++YYCURSOR;
+ 		YYDEBUG(264, *YYCURSOR);
+ 		yyleng = YYCURSOR - SCNG(yy_text);
+-#line 1229 "Zend/zend_language_scanner.l"
++#line 1239 "Zend/zend_language_scanner.l"
+ 		{
+ 	return T_SL_EQUAL;
+ }
+-#line 3584 "Zend/zend_language_scanner.c"
++#line 3594 "Zend/zend_language_scanner.c"
+ yy265:
+ 		YYDEBUG(265, *YYCURSOR);
+ 		++YYCURSOR;
+@@ -3685,7 +3695,7 @@ yy274:
+ yy275:
+ 		YYDEBUG(275, *YYCURSOR);
+ 		yyleng = YYCURSOR - SCNG(yy_text);
+-#line 1895 "Zend/zend_language_scanner.l"
++#line 1905 "Zend/zend_language_scanner.l"
+ 		{
+ 	char *s;
+ 	int bprefix = (yytext[0] != '<') ? 1 : 0;
+@@ -3733,7 +3743,7 @@ yy275:
+ 
+ 	return T_START_HEREDOC;
+ }
+-#line 3737 "Zend/zend_language_scanner.c"
++#line 3747 "Zend/zend_language_scanner.c"
+ yy276:
+ 		YYDEBUG(276, *YYCURSOR);
+ 		yych = *++YYCURSOR;
+@@ -3773,31 +3783,31 @@ yy279:
+ 		++YYCURSOR;
+ 		YYDEBUG(281, *YYCURSOR);
+ 		yyleng = YYCURSOR - SCNG(yy_text);
+-#line 1185 "Zend/zend_language_scanner.l"
++#line 1195 "Zend/zend_language_scanner.l"
+ 		{
+ 	return T_IS_NOT_IDENTICAL;
+ }
+-#line 3781 "Zend/zend_language_scanner.c"
++#line 3791 "Zend/zend_language_scanner.c"
+ yy282:
+ 		YYDEBUG(282, *YYCURSOR);
+ 		++YYCURSOR;
+ 		YYDEBUG(283, *YYCURSOR);
+ 		yyleng = YYCURSOR - SCNG(yy_text);
+-#line 1205 "Zend/zend_language_scanner.l"
++#line 1215 "Zend/zend_language_scanner.l"
+ 		{
+ 	return T_PLUS_EQUAL;
+ }
+-#line 3791 "Zend/zend_language_scanner.c"
++#line 3801 "Zend/zend_language_scanner.c"
+ yy284:
+ 		YYDEBUG(284, *YYCURSOR);
+ 		++YYCURSOR;
+ 		YYDEBUG(285, *YYCURSOR);
+ 		yyleng = YYCURSOR - SCNG(yy_text);
+-#line 1173 "Zend/zend_language_scanner.l"
++#line 1183 "Zend/zend_language_scanner.l"
+ 		{
+ 	return T_INC;
+ }
+-#line 3801 "Zend/zend_language_scanner.c"
++#line 3811 "Zend/zend_language_scanner.c"
+ yy286:
+ 		YYDEBUG(286, *YYCURSOR);
+ 		yych = *++YYCURSOR;
+@@ -3816,42 +3826,42 @@ yy288:
+ 		}
+ 		YYDEBUG(289, *YYCURSOR);
+ 		yyleng = YYCURSOR - SCNG(yy_text);
+-#line 1165 "Zend/zend_language_scanner.l"
++#line 1175 "Zend/zend_language_scanner.l"
+ 		{
+ 	return T_LIST;
+ }
+-#line 3824 "Zend/zend_language_scanner.c"
++#line 3834 "Zend/zend_language_scanner.c"
+ yy290:
+ 		YYDEBUG(290, *YYCURSOR);
+ 		++YYCURSOR;
+ 		if ((yych = *YYCURSOR) == '=') goto yy294;
+ 		YYDEBUG(291, *YYCURSOR);
+ 		yyleng = YYCURSOR - SCNG(yy_text);
+-#line 1189 "Zend/zend_language_scanner.l"
++#line 1199 "Zend/zend_language_scanner.l"
+ 		{
+ 	return T_IS_EQUAL;
+ }
+-#line 3835 "Zend/zend_language_scanner.c"
++#line 3845 "Zend/zend_language_scanner.c"
+ yy292:
+ 		YYDEBUG(292, *YYCURSOR);
+ 		++YYCURSOR;
+ 		YYDEBUG(293, *YYCURSOR);
+ 		yyleng = YYCURSOR - SCNG(yy_text);
+-#line 1161 "Zend/zend_language_scanner.l"
++#line 1171 "Zend/zend_language_scanner.l"
+ 		{
+ 	return T_DOUBLE_ARROW;
+ }
+-#line 3845 "Zend/zend_language_scanner.c"
++#line 3855 "Zend/zend_language_scanner.c"
+ yy294:
+ 		YYDEBUG(294, *YYCURSOR);
+ 		++YYCURSOR;
+ 		YYDEBUG(295, *YYCURSOR);
+ 		yyleng = YYCURSOR - SCNG(yy_text);
+-#line 1181 "Zend/zend_language_scanner.l"
++#line 1191 "Zend/zend_language_scanner.l"
+ 		{
+ 	return T_IS_IDENTICAL;
+ }
+-#line 3855 "Zend/zend_language_scanner.c"
++#line 3865 "Zend/zend_language_scanner.c"
+ yy296:
+ 		YYDEBUG(296, *YYCURSOR);
+ 		yych = *++YYCURSOR;
+@@ -3973,7 +3983,7 @@ yy311:
+ 		}
+ 		YYDEBUG(314, *YYCURSOR);
+ 		yyleng = YYCURSOR - SCNG(yy_text);
+-#line 1485 "Zend/zend_language_scanner.l"
++#line 1495 "Zend/zend_language_scanner.l"
+ 		{
+ 	if (CG(current_namespace)) {
+ 		*zendlval = *CG(current_namespace);
+@@ -3983,7 +3993,7 @@ yy311:
+ 	}
+ 	return T_NS_C;
+ }
+-#line 3987 "Zend/zend_language_scanner.c"
++#line 3997 "Zend/zend_language_scanner.c"
+ yy315:
+ 		YYDEBUG(315, *YYCURSOR);
+ 		yych = *++YYCURSOR;
+@@ -4003,7 +4013,7 @@ yy316:
+ 		}
+ 		YYDEBUG(319, *YYCURSOR);
+ 		yyleng = YYCURSOR - SCNG(yy_text);
+-#line 1458 "Zend/zend_language_scanner.l"
++#line 1468 "Zend/zend_language_scanner.l"
+ 		{
+ 	char *filename = zend_get_compiled_filename(TSRMLS_C);
+ 	const size_t filename_len = strlen(filename);
+@@ -4030,7 +4040,7 @@ yy316:
+ 	zendlval->type = IS_STRING;
+ 	return T_DIR;
+ }
+-#line 4034 "Zend/zend_language_scanner.c"
++#line 4044 "Zend/zend_language_scanner.c"
+ yy320:
+ 		YYDEBUG(320, *YYCURSOR);
+ 		yych = *++YYCURSOR;
+@@ -4055,13 +4065,13 @@ yy322:
+ 		}
+ 		YYDEBUG(325, *YYCURSOR);
+ 		yyleng = YYCURSOR - SCNG(yy_text);
+-#line 1440 "Zend/zend_language_scanner.l"
++#line 1450 "Zend/zend_language_scanner.l"
+ 		{
+ 	zendlval->value.lval = CG(zend_lineno);
+ 	zendlval->type = IS_LONG;
+ 	return T_LINE;
+ }
+-#line 4065 "Zend/zend_language_scanner.c"
++#line 4075 "Zend/zend_language_scanner.c"
+ yy326:
+ 		YYDEBUG(326, *YYCURSOR);
+ 		yych = *++YYCURSOR;
+@@ -4096,7 +4106,7 @@ yy330:
+ 		}
+ 		YYDEBUG(333, *YYCURSOR);
+ 		yyleng = YYCURSOR - SCNG(yy_text);
+-#line 1419 "Zend/zend_language_scanner.l"
++#line 1429 "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;
+@@ -4117,7 +4127,7 @@ yy330:
+ 	zendlval->type = IS_STRING;
+ 	return T_METHOD_C;
+ }
+-#line 4121 "Zend/zend_language_scanner.c"
++#line 4131 "Zend/zend_language_scanner.c"
+ yy334:
+ 		YYDEBUG(334, *YYCURSOR);
+ 		yych = *++YYCURSOR;
+@@ -4168,7 +4178,7 @@ yy341:
+ 		}
+ 		YYDEBUG(344, *YYCURSOR);
+ 		yyleng = YYCURSOR - SCNG(yy_text);
+-#line 1403 "Zend/zend_language_scanner.l"
++#line 1413 "Zend/zend_language_scanner.l"
+ 		{
+ 	char *func_name = NULL;
+ 
+@@ -4184,7 +4194,7 @@ yy341:
+ 	zendlval->type = IS_STRING;
+ 	return T_FUNC_C;
+ }
+-#line 4188 "Zend/zend_language_scanner.c"
++#line 4198 "Zend/zend_language_scanner.c"
+ yy345:
+ 		YYDEBUG(345, *YYCURSOR);
+ 		yych = *++YYCURSOR;
+@@ -4204,7 +4214,7 @@ yy346:
+ 		}
+ 		YYDEBUG(349, *YYCURSOR);
+ 		yyleng = YYCURSOR - SCNG(yy_text);
+-#line 1446 "Zend/zend_language_scanner.l"
++#line 1456 "Zend/zend_language_scanner.l"
+ 		{
+ 	char *filename = zend_get_compiled_filename(TSRMLS_C);
+ 
+@@ -4216,7 +4226,7 @@ yy346:
+ 	zendlval->type = IS_STRING;
+ 	return T_FILE;
+ }
+-#line 4220 "Zend/zend_language_scanner.c"
++#line 4230 "Zend/zend_language_scanner.c"
+ yy350:
+ 		YYDEBUG(350, *YYCURSOR);
+ 		yych = *++YYCURSOR;
+@@ -4246,7 +4256,7 @@ yy353:
+ 		}
+ 		YYDEBUG(356, *YYCURSOR);
+ 		yyleng = YYCURSOR - SCNG(yy_text);
+-#line 1387 "Zend/zend_language_scanner.l"
++#line 1397 "Zend/zend_language_scanner.l"
+ 		{
+ 	char *class_name = NULL;
+ 
+@@ -4262,7 +4272,7 @@ yy353:
+ 	zendlval->type = IS_STRING;
+ 	return T_CLASS_C;
+ }
+-#line 4266 "Zend/zend_language_scanner.c"
++#line 4276 "Zend/zend_language_scanner.c"
+ yy357:
+ 		YYDEBUG(357, *YYCURSOR);
+ 		yych = *++YYCURSOR;
+@@ -4324,11 +4334,11 @@ yy368:
+ 		}
+ 		YYDEBUG(369, *YYCURSOR);
+ 		yyleng = YYCURSOR - SCNG(yy_text);
+-#line 1129 "Zend/zend_language_scanner.l"
++#line 1139 "Zend/zend_language_scanner.l"
+ 		{
+ 	return T_HALT_COMPILER;
+ }
+-#line 4332 "Zend/zend_language_scanner.c"
++#line 4342 "Zend/zend_language_scanner.c"
+ yy370:
+ 		YYDEBUG(370, *YYCURSOR);
+ 		yych = *++YYCURSOR;
+@@ -4348,11 +4358,11 @@ yy372:
+ 		}
+ 		YYDEBUG(373, *YYCURSOR);
+ 		yyleng = YYCURSOR - SCNG(yy_text);
+-#line 1113 "Zend/zend_language_scanner.l"
++#line 1123 "Zend/zend_language_scanner.l"
+ 		{
+ 	return T_USE;
+ }
+-#line 4356 "Zend/zend_language_scanner.c"
++#line 4366 "Zend/zend_language_scanner.c"
+ yy374:
+ 		YYDEBUG(374, *YYCURSOR);
+ 		yych = *++YYCURSOR;
+@@ -4371,11 +4381,11 @@ yy376:
+ 		}
+ 		YYDEBUG(377, *YYCURSOR);
+ 		yyleng = YYCURSOR - SCNG(yy_text);
+-#line 1157 "Zend/zend_language_scanner.l"
++#line 1167 "Zend/zend_language_scanner.l"
+ 		{
+ 	return T_UNSET;
+ }
+-#line 4379 "Zend/zend_language_scanner.c"
++#line 4389 "Zend/zend_language_scanner.c"
+ yy378:
+ 		YYDEBUG(378, *YYCURSOR);
+ 		++YYCURSOR;
+@@ -4547,11 +4557,11 @@ yy393:
+ 		++YYCURSOR;
+ 		YYDEBUG(395, *YYCURSOR);
+ 		yyleng = YYCURSOR - SCNG(yy_text);
+-#line 1057 "Zend/zend_language_scanner.l"
++#line 1067 "Zend/zend_language_scanner.l"
+ 		{
+ 	return T_INT_CAST;
+ }
+-#line 4555 "Zend/zend_language_scanner.c"
++#line 4565 "Zend/zend_language_scanner.c"
+ yy396:
+ 		YYDEBUG(396, *YYCURSOR);
+ 		yych = *++YYCURSOR;
+@@ -4595,11 +4605,11 @@ yy401:
+ 		++YYCURSOR;
+ 		YYDEBUG(404, *YYCURSOR);
+ 		yyleng = YYCURSOR - SCNG(yy_text);
+-#line 1061 "Zend/zend_language_scanner.l"
++#line 1071 "Zend/zend_language_scanner.l"
+ 		{
+ 	return T_DOUBLE_CAST;
+ }
+-#line 4603 "Zend/zend_language_scanner.c"
++#line 4613 "Zend/zend_language_scanner.c"
+ yy405:
+ 		YYDEBUG(405, *YYCURSOR);
+ 		yych = *++YYCURSOR;
+@@ -4669,11 +4679,11 @@ yy415:
+ 		++YYCURSOR;
+ 		YYDEBUG(418, *YYCURSOR);
+ 		yyleng = YYCURSOR - SCNG(yy_text);
+-#line 1065 "Zend/zend_language_scanner.l"
++#line 1075 "Zend/zend_language_scanner.l"
+ 		{
+ 	return T_STRING_CAST;
+ }
+-#line 4677 "Zend/zend_language_scanner.c"
++#line 4687 "Zend/zend_language_scanner.c"
+ yy419:
+ 		YYDEBUG(419, *YYCURSOR);
+ 		yych = *++YYCURSOR;
+@@ -4706,11 +4716,11 @@ yy422:
+ 		++YYCURSOR;
+ 		YYDEBUG(425, *YYCURSOR);
+ 		yyleng = YYCURSOR - SCNG(yy_text);
+-#line 1073 "Zend/zend_language_scanner.l"
++#line 1083 "Zend/zend_language_scanner.l"
+ 		{
+ 	return T_ARRAY_CAST;
+ }
+-#line 4714 "Zend/zend_language_scanner.c"
++#line 4724 "Zend/zend_language_scanner.c"
+ yy426:
+ 		YYDEBUG(426, *YYCURSOR);
+ 		yych = *++YYCURSOR;
+@@ -4748,11 +4758,11 @@ yy430:
+ 		++YYCURSOR;
+ 		YYDEBUG(433, *YYCURSOR);
+ 		yyleng = YYCURSOR - SCNG(yy_text);
+-#line 1077 "Zend/zend_language_scanner.l"
++#line 1087 "Zend/zend_language_scanner.l"
+ 		{
+ 	return T_OBJECT_CAST;
+ }
+-#line 4756 "Zend/zend_language_scanner.c"
++#line 4766 "Zend/zend_language_scanner.c"
+ yy434:
+ 		YYDEBUG(434, *YYCURSOR);
+ 		yych = *++YYCURSOR;
+@@ -4793,11 +4803,11 @@ yy439:
+ 		++YYCURSOR;
+ 		YYDEBUG(441, *YYCURSOR);
+ 		yyleng = YYCURSOR - SCNG(yy_text);
+-#line 1081 "Zend/zend_language_scanner.l"
++#line 1091 "Zend/zend_language_scanner.l"
+ 		{
+ 	return T_BOOL_CAST;
+ }
+-#line 4801 "Zend/zend_language_scanner.c"
++#line 4811 "Zend/zend_language_scanner.c"
+ yy442:
+ 		YYDEBUG(442, *YYCURSOR);
+ 		yych = *++YYCURSOR;
+@@ -4841,11 +4851,11 @@ yy447:
+ 		++YYCURSOR;
+ 		YYDEBUG(450, *YYCURSOR);
+ 		yyleng = YYCURSOR - SCNG(yy_text);
+-#line 1069 "Zend/zend_language_scanner.l"
++#line 1079 "Zend/zend_language_scanner.l"
+ 		{
+ 	return T_STRING_CAST;
+ }
+-#line 4849 "Zend/zend_language_scanner.c"
++#line 4859 "Zend/zend_language_scanner.c"
+ yy451:
+ 		YYDEBUG(451, *YYCURSOR);
+ 		yych = *++YYCURSOR;
+@@ -4878,11 +4888,11 @@ yy454:
+ 		++YYCURSOR;
+ 		YYDEBUG(457, *YYCURSOR);
+ 		yyleng = YYCURSOR - SCNG(yy_text);
+-#line 1085 "Zend/zend_language_scanner.l"
++#line 1095 "Zend/zend_language_scanner.l"
+ 		{
+ 	return T_UNSET_CAST;
+ }
+-#line 4886 "Zend/zend_language_scanner.c"
++#line 4896 "Zend/zend_language_scanner.c"
+ yy458:
+ 		YYDEBUG(458, *YYCURSOR);
+ 		yych = *++YYCURSOR;
+@@ -4896,11 +4906,11 @@ yy459:
+ 		}
+ 		YYDEBUG(460, *YYCURSOR);
+ 		yyleng = YYCURSOR - SCNG(yy_text);
+-#line 1053 "Zend/zend_language_scanner.l"
++#line 1063 "Zend/zend_language_scanner.l"
+ 		{
+ 	return T_VAR;
+ }
+-#line 4904 "Zend/zend_language_scanner.c"
++#line 4914 "Zend/zend_language_scanner.c"
+ yy461:
+ 		YYDEBUG(461, *YYCURSOR);
+ 		yych = *++YYCURSOR;
+@@ -4920,11 +4930,11 @@ yy463:
+ 		}
+ 		YYDEBUG(464, *YYCURSOR);
+ 		yyleng = YYCURSOR - SCNG(yy_text);
+-#line 1045 "Zend/zend_language_scanner.l"
++#line 1055 "Zend/zend_language_scanner.l"
+ 		{
+ 	return T_NEW;
+ }
+-#line 4928 "Zend/zend_language_scanner.c"
++#line 4938 "Zend/zend_language_scanner.c"
+ yy465:
+ 		YYDEBUG(465, *YYCURSOR);
+ 		yych = *++YYCURSOR;
+@@ -4963,21 +4973,21 @@ yy471:
+ 		}
+ 		YYDEBUG(472, *YYCURSOR);
+ 		yyleng = YYCURSOR - SCNG(yy_text);
+-#line 1109 "Zend/zend_language_scanner.l"
++#line 1119 "Zend/zend_language_scanner.l"
+ 		{
+ 	return T_NAMESPACE;
+ }
+-#line 4971 "Zend/zend_language_scanner.c"
++#line 4981 "Zend/zend_language_scanner.c"
+ yy473:
+ 		YYDEBUG(473, *YYCURSOR);
+ 		++YYCURSOR;
+ 		YYDEBUG(474, *YYCURSOR);
+ 		yyleng = YYCURSOR - SCNG(yy_text);
+-#line 1037 "Zend/zend_language_scanner.l"
++#line 1047 "Zend/zend_language_scanner.l"
+ 		{
+ 	return T_PAAMAYIM_NEKUDOTAYIM;
+ }
+-#line 4981 "Zend/zend_language_scanner.c"
++#line 4991 "Zend/zend_language_scanner.c"
+ yy475:
+ 		YYDEBUG(475, *YYCURSOR);
+ 		++YYCURSOR;
+@@ -4999,32 +5009,32 @@ yy477:
+ 		++YYCURSOR;
+ 		YYDEBUG(478, *YYCURSOR);
+ 		yyleng = YYCURSOR - SCNG(yy_text);
+-#line 1209 "Zend/zend_language_scanner.l"
++#line 1219 "Zend/zend_language_scanner.l"
+ 		{
+ 	return T_MINUS_EQUAL;
+ }
+-#line 5007 "Zend/zend_language_scanner.c"
++#line 5017 "Zend/zend_language_scanner.c"
+ yy479:
+ 		YYDEBUG(479, *YYCURSOR);
+ 		++YYCURSOR;
+ 		YYDEBUG(480, *YYCURSOR);
+ 		yyleng = YYCURSOR - SCNG(yy_text);
+-#line 1177 "Zend/zend_language_scanner.l"
++#line 1187 "Zend/zend_language_scanner.l"
+ 		{
+ 	return T_DEC;
+ }
+-#line 5017 "Zend/zend_language_scanner.c"
++#line 5027 "Zend/zend_language_scanner.c"
+ yy481:
+ 		YYDEBUG(481, *YYCURSOR);
+ 		++YYCURSOR;
+ 		YYDEBUG(482, *YYCURSOR);
+ 		yyleng = YYCURSOR - SCNG(yy_text);
+-#line 1007 "Zend/zend_language_scanner.l"
++#line 1017 "Zend/zend_language_scanner.l"
+ 		{
+ 	yy_push_state(ST_LOOKING_FOR_PROPERTY TSRMLS_CC);
+ 	return T_OBJECT_OPERATOR;
+ }
+-#line 5028 "Zend/zend_language_scanner.c"
++#line 5038 "Zend/zend_language_scanner.c"
+ yy483:
+ 		YYDEBUG(483, *YYCURSOR);
+ 		yych = *++YYCURSOR;
+@@ -5069,11 +5079,11 @@ yy488:
+ 		}
+ 		YYDEBUG(489, *YYCURSOR);
+ 		yyleng = YYCURSOR - SCNG(yy_text);
+-#line 1153 "Zend/zend_language_scanner.l"
++#line 1163 "Zend/zend_language_scanner.l"
+ 		{
+ 	return T_PUBLIC;
+ }
+-#line 5077 "Zend/zend_language_scanner.c"
++#line 5087 "Zend/zend_language_scanner.c"
+ yy490:
+ 		YYDEBUG(490, *YYCURSOR);
+ 		yych = *++YYCURSOR;
+@@ -5128,11 +5138,11 @@ yy497:
+ 		}
+ 		YYDEBUG(498, *YYCURSOR);
+ 		yyleng = YYCURSOR - SCNG(yy_text);
+-#line 1149 "Zend/zend_language_scanner.l"
++#line 1159 "Zend/zend_language_scanner.l"
+ 		{
+ 	return T_PROTECTED;
+ }
+-#line 5136 "Zend/zend_language_scanner.c"
++#line 5146 "Zend/zend_language_scanner.c"
+ yy499:
+ 		YYDEBUG(499, *YYCURSOR);
+ 		yych = *++YYCURSOR;
+@@ -5162,11 +5172,11 @@ yy503:
+ 		}
+ 		YYDEBUG(504, *YYCURSOR);
+ 		yyleng = YYCURSOR - SCNG(yy_text);
+-#line 1145 "Zend/zend_language_scanner.l"
++#line 1155 "Zend/zend_language_scanner.l"
+ 		{
+ 	return T_PRIVATE;
+ }
+-#line 5170 "Zend/zend_language_scanner.c"
++#line 5180 "Zend/zend_language_scanner.c"
+ yy505:
+ 		YYDEBUG(505, *YYCURSOR);
+ 		++YYCURSOR;
+@@ -5175,11 +5185,11 @@ yy505:
+ 		}
+ 		YYDEBUG(506, *YYCURSOR);
+ 		yyleng = YYCURSOR - SCNG(yy_text);
+-#line 987 "Zend/zend_language_scanner.l"
++#line 997 "Zend/zend_language_scanner.l"
+ 		{
+ 	return T_PRINT;
+ }
+-#line 5183 "Zend/zend_language_scanner.c"
++#line 5193 "Zend/zend_language_scanner.c"
+ yy507:
+ 		YYDEBUG(507, *YYCURSOR);
+ 		yych = *++YYCURSOR;
+@@ -5204,11 +5214,11 @@ yy510:
+ 		}
+ 		YYDEBUG(511, *YYCURSOR);
+ 		yyleng = YYCURSOR - SCNG(yy_text);
+-#line 979 "Zend/zend_language_scanner.l"
++#line 989 "Zend/zend_language_scanner.l"
+ 		{
+ 	return T_GOTO;
+ }
+-#line 5212 "Zend/zend_language_scanner.c"
++#line 5222 "Zend/zend_language_scanner.c"
+ yy512:
+ 		YYDEBUG(512, *YYCURSOR);
+ 		yych = *++YYCURSOR;
+@@ -5232,11 +5242,11 @@ yy515:
+ 		}
+ 		YYDEBUG(516, *YYCURSOR);
+ 		yyleng = YYCURSOR - SCNG(yy_text);
+-#line 1117 "Zend/zend_language_scanner.l"
++#line 1127 "Zend/zend_language_scanner.l"
+ 		{
+ 	return T_GLOBAL;
+ }
+-#line 5240 "Zend/zend_language_scanner.c"
++#line 5250 "Zend/zend_language_scanner.c"
+ yy517:
+ 		YYDEBUG(517, *YYCURSOR);
+ 		yych = *++YYCURSOR;
+@@ -5273,11 +5283,11 @@ yy523:
+ 		}
+ 		YYDEBUG(524, *YYCURSOR);
+ 		yyleng = YYCURSOR - SCNG(yy_text);
+-#line 971 "Zend/zend_language_scanner.l"
++#line 981 "Zend/zend_language_scanner.l"
+ 		{
+ 	return T_BREAK;
+ }
+-#line 5281 "Zend/zend_language_scanner.c"
++#line 5291 "Zend/zend_language_scanner.c"
+ yy525:
+ 		YYDEBUG(525, *YYCURSOR);
+ 		yych = *++YYCURSOR;
+@@ -5317,11 +5327,11 @@ yy531:
+ 		}
+ 		YYDEBUG(532, *YYCURSOR);
+ 		yyleng = YYCURSOR - SCNG(yy_text);
+-#line 955 "Zend/zend_language_scanner.l"
++#line 965 "Zend/zend_language_scanner.l"
+ 		{
+ 	return T_SWITCH;
+ }
+-#line 5325 "Zend/zend_language_scanner.c"
++#line 5335 "Zend/zend_language_scanner.c"
+ yy533:
+ 		YYDEBUG(533, *YYCURSOR);
+ 		yych = *++YYCURSOR;
+@@ -5345,11 +5355,11 @@ yy536:
+ 		}
+ 		YYDEBUG(537, *YYCURSOR);
+ 		yyleng = YYCURSOR - SCNG(yy_text);
+-#line 1133 "Zend/zend_language_scanner.l"
++#line 1143 "Zend/zend_language_scanner.l"
+ 		{
+ 	return T_STATIC;
+ }
+-#line 5353 "Zend/zend_language_scanner.c"
++#line 5363 "Zend/zend_language_scanner.c"
+ yy538:
+ 		YYDEBUG(538, *YYCURSOR);
+ 		yych = *++YYCURSOR;
+@@ -5376,11 +5386,11 @@ yy541:
+ 		}
+ 		YYDEBUG(542, *YYCURSOR);
+ 		yyleng = YYCURSOR - SCNG(yy_text);
+-#line 951 "Zend/zend_language_scanner.l"
++#line 961 "Zend/zend_language_scanner.l"
+ 		{
+ 	return T_AS;
+ }
+-#line 5384 "Zend/zend_language_scanner.c"
++#line 5394 "Zend/zend_language_scanner.c"
+ yy543:
+ 		YYDEBUG(543, *YYCURSOR);
+ 		yych = *++YYCURSOR;
+@@ -5399,11 +5409,11 @@ yy545:
+ 		}
+ 		YYDEBUG(546, *YYCURSOR);
+ 		yyleng = YYCURSOR - SCNG(yy_text);
+-#line 1169 "Zend/zend_language_scanner.l"
++#line 1179 "Zend/zend_language_scanner.l"
+ 		{
+ 	return T_ARRAY;
+ }
+-#line 5407 "Zend/zend_language_scanner.c"
++#line 5417 "Zend/zend_language_scanner.c"
+ yy547:
+ 		YYDEBUG(547, *YYCURSOR);
+ 		++YYCURSOR;
+@@ -5412,11 +5422,11 @@ yy547:
+ 		}
+ 		YYDEBUG(548, *YYCURSOR);
+ 		yyleng = YYCURSOR - SCNG(yy_text);
+-#line 1261 "Zend/zend_language_scanner.l"
++#line 1271 "Zend/zend_language_scanner.l"
+ 		{
+ 	return T_LOGICAL_AND;
+ }
+-#line 5420 "Zend/zend_language_scanner.c"
++#line 5430 "Zend/zend_language_scanner.c"
+ yy549:
+ 		YYDEBUG(549, *YYCURSOR);
+ 		yych = *++YYCURSOR;
+@@ -5450,11 +5460,11 @@ yy554:
+ 		}
+ 		YYDEBUG(555, *YYCURSOR);
+ 		yyleng = YYCURSOR - SCNG(yy_text);
+-#line 1137 "Zend/zend_language_scanner.l"
++#line 1147 "Zend/zend_language_scanner.l"
+ 		{
+ 	return T_ABSTRACT;
+ }
+-#line 5458 "Zend/zend_language_scanner.c"
++#line 5468 "Zend/zend_language_scanner.c"
+ yy556:
+ 		YYDEBUG(556, *YYCURSOR);
+ 		yych = *++YYCURSOR;
+@@ -5478,11 +5488,11 @@ yy559:
+ 		}
+ 		YYDEBUG(560, *YYCURSOR);
+ 		yyleng = YYCURSOR - SCNG(yy_text);
+-#line 911 "Zend/zend_language_scanner.l"
++#line 921 "Zend/zend_language_scanner.l"
+ 		{
+ 	return T_WHILE;
+ }
+-#line 5486 "Zend/zend_language_scanner.c"
++#line 5496 "Zend/zend_language_scanner.c"
+ yy561:
+ 		YYDEBUG(561, *YYCURSOR);
+ 		++YYCURSOR;
+@@ -5491,11 +5501,11 @@ yy561:
+ 		}
+ 		YYDEBUG(562, *YYCURSOR);
+ 		yyleng = YYCURSOR - SCNG(yy_text);
+-#line 895 "Zend/zend_language_scanner.l"
++#line 905 "Zend/zend_language_scanner.l"
+ 		{
+ 	return T_IF;
+ }
+-#line 5499 "Zend/zend_language_scanner.c"
++#line 5509 "Zend/zend_language_scanner.c"
+ yy563:
+ 		YYDEBUG(563, *YYCURSOR);
+ 		yych = *++YYCURSOR;
+@@ -5547,11 +5557,11 @@ yy568:
+ 		}
+ 		YYDEBUG(569, *YYCURSOR);
+ 		yyleng = YYCURSOR - SCNG(yy_text);
+-#line 1121 "Zend/zend_language_scanner.l"
++#line 1131 "Zend/zend_language_scanner.l"
+ 		{
+ 	return T_ISSET;
+ }
+-#line 5555 "Zend/zend_language_scanner.c"
++#line 5565 "Zend/zend_language_scanner.c"
+ yy570:
+ 		YYDEBUG(570, *YYCURSOR);
+ 		yych = *++YYCURSOR;
+@@ -5605,11 +5615,11 @@ yy576:
+ yy577:
+ 		YYDEBUG(577, *YYCURSOR);
+ 		yyleng = YYCURSOR - SCNG(yy_text);
+-#line 1093 "Zend/zend_language_scanner.l"
++#line 1103 "Zend/zend_language_scanner.l"
+ 		{
+ 	return T_INCLUDE;
+ }
+-#line 5613 "Zend/zend_language_scanner.c"
++#line 5623 "Zend/zend_language_scanner.c"
+ yy578:
+ 		YYDEBUG(578, *YYCURSOR);
+ 		yych = *++YYCURSOR;
+@@ -5638,11 +5648,11 @@ yy582:
+ 		}
+ 		YYDEBUG(583, *YYCURSOR);
+ 		yyleng = YYCURSOR - SCNG(yy_text);
+-#line 1097 "Zend/zend_language_scanner.l"
++#line 1107 "Zend/zend_language_scanner.l"
+ 		{
+ 	return T_INCLUDE_ONCE;
+ }
+-#line 5646 "Zend/zend_language_scanner.c"
++#line 5656 "Zend/zend_language_scanner.c"
+ yy584:
+ 		YYDEBUG(584, *YYCURSOR);
+ 		yych = *++YYCURSOR;
+@@ -5676,11 +5686,11 @@ yy589:
+ 		}
+ 		YYDEBUG(590, *YYCURSOR);
+ 		yyleng = YYCURSOR - SCNG(yy_text);
+-#line 995 "Zend/zend_language_scanner.l"
++#line 1005 "Zend/zend_language_scanner.l"
+ 		{
+ 	return T_INTERFACE;
+ }
+-#line 5684 "Zend/zend_language_scanner.c"
++#line 5694 "Zend/zend_language_scanner.c"
+ yy591:
+ 		YYDEBUG(591, *YYCURSOR);
+ 		yych = *++YYCURSOR;
+@@ -5719,11 +5729,11 @@ yy597:
+ 		}
+ 		YYDEBUG(598, *YYCURSOR);
+ 		yyleng = YYCURSOR - SCNG(yy_text);
+-#line 947 "Zend/zend_language_scanner.l"
++#line 957 "Zend/zend_language_scanner.l"
+ 		{
+ 	return T_INSTANCEOF;
+ }
+-#line 5727 "Zend/zend_language_scanner.c"
++#line 5737 "Zend/zend_language_scanner.c"
+ yy599:
+ 		YYDEBUG(599, *YYCURSOR);
+ 		yych = *++YYCURSOR;
+@@ -5767,11 +5777,11 @@ yy606:
+ 		}
+ 		YYDEBUG(607, *YYCURSOR);
+ 		yyleng = YYCURSOR - SCNG(yy_text);
+-#line 1003 "Zend/zend_language_scanner.l"
++#line 1013 "Zend/zend_language_scanner.l"
+ 		{
+ 	return T_IMPLEMENTS;
+ }
+-#line 5775 "Zend/zend_language_scanner.c"
++#line 5785 "Zend/zend_language_scanner.c"
+ yy608:
+ 		YYDEBUG(608, *YYCURSOR);
+ 		yych = *++YYCURSOR;
+@@ -5791,11 +5801,11 @@ yy610:
+ 		}
+ 		YYDEBUG(611, *YYCURSOR);
+ 		yyleng = YYCURSOR - SCNG(yy_text);
+-#line 883 "Zend/zend_language_scanner.l"
++#line 893 "Zend/zend_language_scanner.l"
+ 		{
+ 	return T_TRY;
+ }
+-#line 5799 "Zend/zend_language_scanner.c"
++#line 5809 "Zend/zend_language_scanner.c"
+ yy612:
+ 		YYDEBUG(612, *YYCURSOR);
+ 		yych = *++YYCURSOR;
+@@ -5814,11 +5824,11 @@ yy614:
+ 		}
+ 		YYDEBUG(615, *YYCURSOR);
+ 		yyleng = YYCURSOR - SCNG(yy_text);
+-#line 891 "Zend/zend_language_scanner.l"
++#line 901 "Zend/zend_language_scanner.l"
+ 		{
+ 	return T_THROW;
+ }
+-#line 5822 "Zend/zend_language_scanner.c"
++#line 5832 "Zend/zend_language_scanner.c"
+ yy616:
+ 		YYDEBUG(616, *YYCURSOR);
+ 		yych = *++YYCURSOR;
+@@ -5879,11 +5889,11 @@ yy622:
+ yy623:
+ 		YYDEBUG(623, *YYCURSOR);
+ 		yyleng = YYCURSOR - SCNG(yy_text);
+-#line 1101 "Zend/zend_language_scanner.l"
++#line 1111 "Zend/zend_language_scanner.l"
+ 		{
+ 	return T_REQUIRE;
+ }
+-#line 5887 "Zend/zend_language_scanner.c"
++#line 5897 "Zend/zend_language_scanner.c"
+ yy624:
+ 		YYDEBUG(624, *YYCURSOR);
+ 		yych = *++YYCURSOR;
+@@ -5912,11 +5922,11 @@ yy628:
+ 		}
+ 		YYDEBUG(629, *YYCURSOR);
+ 		yyleng = YYCURSOR - SCNG(yy_text);
+-#line 1105 "Zend/zend_language_scanner.l"
++#line 1115 "Zend/zend_language_scanner.l"
+ 		{
+ 	return T_REQUIRE_ONCE;
+ }
+-#line 5920 "Zend/zend_language_scanner.c"
++#line 5930 "Zend/zend_language_scanner.c"
+ yy630:
+ 		YYDEBUG(630, *YYCURSOR);
+ 		yych = *++YYCURSOR;
+@@ -5935,11 +5945,11 @@ yy632:
+ 		}
+ 		YYDEBUG(633, *YYCURSOR);
+ 		yyleng = YYCURSOR - SCNG(yy_text);
+-#line 879 "Zend/zend_language_scanner.l"
++#line 889 "Zend/zend_language_scanner.l"
+ 		{
+ 	return T_RETURN;
+ }
+-#line 5943 "Zend/zend_language_scanner.c"
++#line 5953 "Zend/zend_language_scanner.c"
+ yy634:
+ 		YYDEBUG(634, *YYCURSOR);
+ 		yych = *++YYCURSOR;
+@@ -6020,11 +6030,11 @@ yy643:
+ 		}
+ 		YYDEBUG(644, *YYCURSOR);
+ 		yyleng = YYCURSOR - SCNG(yy_text);
+-#line 975 "Zend/zend_language_scanner.l"
++#line 985 "Zend/zend_language_scanner.l"
+ 		{
+ 	return T_CONTINUE;
+ }
+-#line 6028 "Zend/zend_language_scanner.c"
++#line 6038 "Zend/zend_language_scanner.c"
+ yy645:
+ 		YYDEBUG(645, *YYCURSOR);
+ 		++YYCURSOR;
+@@ -6033,11 +6043,11 @@ yy645:
+ 		}
+ 		YYDEBUG(646, *YYCURSOR);
+ 		yyleng = YYCURSOR - SCNG(yy_text);
+-#line 875 "Zend/zend_language_scanner.l"
++#line 885 "Zend/zend_language_scanner.l"
+ 		{
+ 	return T_CONST;
+ }
+-#line 6041 "Zend/zend_language_scanner.c"
++#line 6051 "Zend/zend_language_scanner.c"
+ yy647:
+ 		YYDEBUG(647, *YYCURSOR);
+ 		yych = *++YYCURSOR;
+@@ -6062,11 +6072,11 @@ yy650:
+ 		}
+ 		YYDEBUG(651, *YYCURSOR);
+ 		yyleng = YYCURSOR - SCNG(yy_text);
+-#line 1049 "Zend/zend_language_scanner.l"
++#line 1059 "Zend/zend_language_scanner.l"
+ 		{
+ 	return T_CLONE;
+ }
+-#line 6070 "Zend/zend_language_scanner.c"
++#line 6080 "Zend/zend_language_scanner.c"
+ yy652:
+ 		YYDEBUG(652, *YYCURSOR);
+ 		yych = *++YYCURSOR;
+@@ -6080,11 +6090,11 @@ yy653:
+ 		}
+ 		YYDEBUG(654, *YYCURSOR);
+ 		yyleng = YYCURSOR - SCNG(yy_text);
+-#line 991 "Zend/zend_language_scanner.l"
++#line 1001 "Zend/zend_language_scanner.l"
+ 		{
+ 	return T_CLASS;
+ }
+-#line 6088 "Zend/zend_language_scanner.c"
++#line 6098 "Zend/zend_language_scanner.c"
+ yy655:
+ 		YYDEBUG(655, *YYCURSOR);
+ 		yych = *++YYCURSOR;
+@@ -6104,11 +6114,11 @@ yy657:
+ 		}
+ 		YYDEBUG(658, *YYCURSOR);
+ 		yyleng = YYCURSOR - SCNG(yy_text);
+-#line 963 "Zend/zend_language_scanner.l"
++#line 973 "Zend/zend_language_scanner.l"
+ 		{
+ 	return T_CASE;
+ }
+-#line 6112 "Zend/zend_language_scanner.c"
++#line 6122 "Zend/zend_language_scanner.c"
+ yy659:
+ 		YYDEBUG(659, *YYCURSOR);
+ 		yych = *++YYCURSOR;
+@@ -6122,11 +6132,11 @@ yy660:
+ 		}
+ 		YYDEBUG(661, *YYCURSOR);
+ 		yyleng = YYCURSOR - SCNG(yy_text);
+-#line 887 "Zend/zend_language_scanner.l"
++#line 897 "Zend/zend_language_scanner.l"
+ 		{
+ 	return T_CATCH;
+ }
+-#line 6130 "Zend/zend_language_scanner.c"
++#line 6140 "Zend/zend_language_scanner.c"
+ yy662:
+ 		YYDEBUG(662, *YYCURSOR);
+ 		yych = *++YYCURSOR;
+@@ -6177,11 +6187,11 @@ yy670:
+ 		}
+ 		YYDEBUG(671, *YYCURSOR);
+ 		yyleng = YYCURSOR - SCNG(yy_text);
+-#line 871 "Zend/zend_language_scanner.l"
++#line 881 "Zend/zend_language_scanner.l"
+ 		{
+ 	return T_FUNCTION;
+ }
+-#line 6185 "Zend/zend_language_scanner.c"
++#line 6195 "Zend/zend_language_scanner.c"
+ yy672:
+ 		YYDEBUG(672, *YYCURSOR);
+ 		++YYCURSOR;
+@@ -6205,11 +6215,11 @@ yy672:
+ yy673:
+ 		YYDEBUG(673, *YYCURSOR);
+ 		yyleng = YYCURSOR - SCNG(yy_text);
+-#line 923 "Zend/zend_language_scanner.l"
++#line 933 "Zend/zend_language_scanner.l"
+ 		{
+ 	return T_FOR;
+ }
+-#line 6213 "Zend/zend_language_scanner.c"
++#line 6223 "Zend/zend_language_scanner.c"
+ yy674:
+ 		YYDEBUG(674, *YYCURSOR);
+ 		yych = *++YYCURSOR;
+@@ -6233,11 +6243,11 @@ yy677:
+ 		}
+ 		YYDEBUG(678, *YYCURSOR);
+ 		yyleng = YYCURSOR - SCNG(yy_text);
+-#line 931 "Zend/zend_language_scanner.l"
++#line 941 "Zend/zend_language_scanner.l"
+ 		{
+ 	return T_FOREACH;
+ }
+-#line 6241 "Zend/zend_language_scanner.c"
++#line 6251 "Zend/zend_language_scanner.c"
+ yy679:
+ 		YYDEBUG(679, *YYCURSOR);
+ 		yych = *++YYCURSOR;
+@@ -6256,11 +6266,11 @@ yy681:
+ 		}
+ 		YYDEBUG(682, *YYCURSOR);
+ 		yyleng = YYCURSOR - SCNG(yy_text);
+-#line 1141 "Zend/zend_language_scanner.l"
++#line 1151 "Zend/zend_language_scanner.l"
+ 		{
+ 	return T_FINAL;
+ }
+-#line 6264 "Zend/zend_language_scanner.c"
++#line 6274 "Zend/zend_language_scanner.c"
+ yy683:
+ 		YYDEBUG(683, *YYCURSOR);
+ 		yych = *++YYCURSOR;
+@@ -6291,11 +6301,11 @@ yy685:
+ 		}
+ 		YYDEBUG(686, *YYCURSOR);
+ 		yyleng = YYCURSOR - SCNG(yy_text);
+-#line 919 "Zend/zend_language_scanner.l"
++#line 929 "Zend/zend_language_scanner.l"
+ 		{
+ 	return T_DO;
+ }
+-#line 6299 "Zend/zend_language_scanner.c"
++#line 6309 "Zend/zend_language_scanner.c"
+ yy687:
+ 		YYDEBUG(687, *YYCURSOR);
+ 		++YYCURSOR;
+@@ -6304,11 +6314,11 @@ yy687:
+ 		}
+ 		YYDEBUG(688, *YYCURSOR);
+ 		yyleng = YYCURSOR - SCNG(yy_text);
+-#line 867 "Zend/zend_language_scanner.l"
++#line 877 "Zend/zend_language_scanner.l"
+ 		{
+ 	return T_EXIT;
+ }
+-#line 6312 "Zend/zend_language_scanner.c"
++#line 6322 "Zend/zend_language_scanner.c"
+ yy689:
+ 		YYDEBUG(689, *YYCURSOR);
+ 		yych = *++YYCURSOR;
+@@ -6343,11 +6353,11 @@ yy694:
+ 		}
+ 		YYDEBUG(695, *YYCURSOR);
+ 		yyleng = YYCURSOR - SCNG(yy_text);
+-#line 967 "Zend/zend_language_scanner.l"
++#line 977 "Zend/zend_language_scanner.l"
+ 		{
+ 	return T_DEFAULT;
+ }
+-#line 6351 "Zend/zend_language_scanner.c"
++#line 6361 "Zend/zend_language_scanner.c"
+ yy696:
+ 		YYDEBUG(696, *YYCURSOR);
+ 		yych = *++YYCURSOR;
+@@ -6371,11 +6381,11 @@ yy699:
+ 		}
+ 		YYDEBUG(700, *YYCURSOR);
+ 		yyleng = YYCURSOR - SCNG(yy_text);
+-#line 939 "Zend/zend_language_scanner.l"
++#line 949 "Zend/zend_language_scanner.l"
+ 		{
+ 	return T_DECLARE;
+ }
+-#line 6379 "Zend/zend_language_scanner.c"
++#line 6389 "Zend/zend_language_scanner.c"
+ yy701:
+ 		YYDEBUG(701, *YYCURSOR);
+ 		yych = *++YYCURSOR;
+@@ -6455,11 +6465,11 @@ yy712:
+ 		}
+ 		YYDEBUG(713, *YYCURSOR);
+ 		yyleng = YYCURSOR - SCNG(yy_text);
+-#line 999 "Zend/zend_language_scanner.l"
++#line 1009 "Zend/zend_language_scanner.l"
+ 		{
+ 	return T_EXTENDS;
+ }
+-#line 6463 "Zend/zend_language_scanner.c"
++#line 6473 "Zend/zend_language_scanner.c"
+ yy714:
+ 		YYDEBUG(714, *YYCURSOR);
+ 		++YYCURSOR;
+@@ -6468,11 +6478,11 @@ yy714:
+ 		}
+ 		YYDEBUG(715, *YYCURSOR);
+ 		yyleng = YYCURSOR - SCNG(yy_text);
+-#line 863 "Zend/zend_language_scanner.l"
++#line 873 "Zend/zend_language_scanner.l"
+ 		{
+ 	return T_EXIT;
+ }
+-#line 6476 "Zend/zend_language_scanner.c"
++#line 6486 "Zend/zend_language_scanner.c"
+ yy716:
+ 		YYDEBUG(716, *YYCURSOR);
+ 		yych = *++YYCURSOR;
+@@ -6486,11 +6496,11 @@ yy717:
+ 		}
+ 		YYDEBUG(718, *YYCURSOR);
+ 		yyleng = YYCURSOR - SCNG(yy_text);
+-#line 1089 "Zend/zend_language_scanner.l"
++#line 1099 "Zend/zend_language_scanner.l"
+ 		{
+ 	return T_EVAL;
+ }
+-#line 6494 "Zend/zend_language_scanner.c"
++#line 6504 "Zend/zend_language_scanner.c"
+ yy719:
+ 		YYDEBUG(719, *YYCURSOR);
+ 		yych = *++YYCURSOR;
+@@ -6560,11 +6570,11 @@ yy728:
+ 		}
+ 		YYDEBUG(729, *YYCURSOR);
+ 		yyleng = YYCURSOR - SCNG(yy_text);
+-#line 915 "Zend/zend_language_scanner.l"
++#line 925 "Zend/zend_language_scanner.l"
+ 		{
+ 	return T_ENDWHILE;
+ }
+-#line 6568 "Zend/zend_language_scanner.c"
++#line 6578 "Zend/zend_language_scanner.c"
+ yy730:
+ 		YYDEBUG(730, *YYCURSOR);
+ 		yych = *++YYCURSOR;
+@@ -6593,11 +6603,11 @@ yy734:
+ 		}
+ 		YYDEBUG(735, *YYCURSOR);
+ 		yyleng = YYCURSOR - SCNG(yy_text);
+-#line 959 "Zend/zend_language_scanner.l"
++#line 969 "Zend/zend_language_scanner.l"
+ 		{
+ 	return T_ENDSWITCH;
+ }
+-#line 6601 "Zend/zend_language_scanner.c"
++#line 6611 "Zend/zend_language_scanner.c"
+ yy736:
+ 		YYDEBUG(736, *YYCURSOR);
+ 		++YYCURSOR;
+@@ -6606,11 +6616,11 @@ yy736:
+ 		}
+ 		YYDEBUG(737, *YYCURSOR);
+ 		yyleng = YYCURSOR - SCNG(yy_text);
+-#line 903 "Zend/zend_language_scanner.l"
++#line 913 "Zend/zend_language_scanner.l"
+ 		{
+ 	return T_ENDIF;
+ }
+-#line 6614 "Zend/zend_language_scanner.c"
++#line 6624 "Zend/zend_language_scanner.c"
+ yy738:
+ 		YYDEBUG(738, *YYCURSOR);
+ 		yych = *++YYCURSOR;
+@@ -6639,11 +6649,11 @@ yy739:
+ yy740:
+ 		YYDEBUG(740, *YYCURSOR);
+ 		yyleng = YYCURSOR - SCNG(yy_text);
+-#line 927 "Zend/zend_language_scanner.l"
++#line 937 "Zend/zend_language_scanner.l"
+ 		{
+ 	return T_ENDFOR;
+ }
+-#line 6647 "Zend/zend_language_scanner.c"
++#line 6657 "Zend/zend_language_scanner.c"
+ yy741:
+ 		YYDEBUG(741, *YYCURSOR);
+ 		yych = *++YYCURSOR;
+@@ -6667,11 +6677,11 @@ yy744:
+ 		}
+ 		YYDEBUG(745, *YYCURSOR);
+ 		yyleng = YYCURSOR - SCNG(yy_text);
+-#line 935 "Zend/zend_language_scanner.l"
++#line 945 "Zend/zend_language_scanner.l"
+ 		{
+ 	return T_ENDFOREACH;
+ }
+-#line 6675 "Zend/zend_language_scanner.c"
++#line 6685 "Zend/zend_language_scanner.c"
+ yy746:
+ 		YYDEBUG(746, *YYCURSOR);
+ 		yych = *++YYCURSOR;
+@@ -6705,11 +6715,11 @@ yy751:
+ 		}
+ 		YYDEBUG(752, *YYCURSOR);
+ 		yyleng = YYCURSOR - SCNG(yy_text);
+-#line 943 "Zend/zend_language_scanner.l"
++#line 953 "Zend/zend_language_scanner.l"
+ 		{
+ 	return T_ENDDECLARE;
+ }
+-#line 6713 "Zend/zend_language_scanner.c"
++#line 6723 "Zend/zend_language_scanner.c"
+ yy753:
+ 		YYDEBUG(753, *YYCURSOR);
+ 		yych = *++YYCURSOR;
+@@ -6728,11 +6738,11 @@ yy755:
+ 		}
+ 		YYDEBUG(756, *YYCURSOR);
+ 		yyleng = YYCURSOR - SCNG(yy_text);
+-#line 1125 "Zend/zend_language_scanner.l"
++#line 1135 "Zend/zend_language_scanner.l"
+ 		{
+ 	return T_EMPTY;
+ }
+-#line 6736 "Zend/zend_language_scanner.c"
++#line 6746 "Zend/zend_language_scanner.c"
+ yy757:
+ 		YYDEBUG(757, *YYCURSOR);
+ 		yych = *++YYCURSOR;
+@@ -6761,11 +6771,11 @@ yy758:
+ yy759:
+ 		YYDEBUG(759, *YYCURSOR);
+ 		yyleng = YYCURSOR - SCNG(yy_text);
+-#line 907 "Zend/zend_language_scanner.l"
++#line 917 "Zend/zend_language_scanner.l"
+ 		{
+ 	return T_ELSE;
+ }
+-#line 6769 "Zend/zend_language_scanner.c"
++#line 6779 "Zend/zend_language_scanner.c"
+ yy760:
+ 		YYDEBUG(760, *YYCURSOR);
+ 		yych = *++YYCURSOR;
+@@ -6779,11 +6789,11 @@ yy761:
+ 		}
+ 		YYDEBUG(762, *YYCURSOR);
+ 		yyleng = YYCURSOR - SCNG(yy_text);
+-#line 899 "Zend/zend_language_scanner.l"
++#line 909 "Zend/zend_language_scanner.l"
+ 		{
+ 	return T_ELSEIF;
+ }
+-#line 6787 "Zend/zend_language_scanner.c"
++#line 6797 "Zend/zend_language_scanner.c"
+ yy763:
+ 		YYDEBUG(763, *YYCURSOR);
+ 		yych = *++YYCURSOR;
+@@ -6797,11 +6807,11 @@ yy764:
+ 		}
+ 		YYDEBUG(765, *YYCURSOR);
+ 		yyleng = YYCURSOR - SCNG(yy_text);
+-#line 983 "Zend/zend_language_scanner.l"
++#line 993 "Zend/zend_language_scanner.l"
+ 		{
+ 	return T_ECHO;
+ }
+-#line 6805 "Zend/zend_language_scanner.c"
++#line 6815 "Zend/zend_language_scanner.c"
+ 	}
+ /* *********************************** */
+ yyc_ST_LOOKING_FOR_PROPERTY:
+@@ -6874,7 +6884,7 @@ yy768:
+ yy769:
+ 		YYDEBUG(769, *YYCURSOR);
+ 		yyleng = YYCURSOR - SCNG(yy_text);
+-#line 1012 "Zend/zend_language_scanner.l"
++#line 1022 "Zend/zend_language_scanner.l"
+ 		{
+ 	zendlval->value.str.val = yytext; /* no copying - intentional */
+ 	zendlval->value.str.len = yyleng;
+@@ -6882,7 +6892,7 @@ yy769:
+ 	HANDLE_NEWLINES(yytext, yyleng);
+ 	return T_WHITESPACE;
+ }
+-#line 6886 "Zend/zend_language_scanner.c"
++#line 6896 "Zend/zend_language_scanner.c"
+ yy770:
+ 		YYDEBUG(770, *YYCURSOR);
+ 		++YYCURSOR;
+@@ -6890,13 +6900,13 @@ yy770:
+ yy771:
+ 		YYDEBUG(771, *YYCURSOR);
+ 		yyleng = YYCURSOR - SCNG(yy_text);
+-#line 1031 "Zend/zend_language_scanner.l"
++#line 1041 "Zend/zend_language_scanner.l"
+ 		{
+ 	yyless(0);
+ 	yy_pop_state(TSRMLS_C);
+ 	goto restart;
+ }
+-#line 6900 "Zend/zend_language_scanner.c"
++#line 6910 "Zend/zend_language_scanner.c"
+ yy772:
+ 		YYDEBUG(772, *YYCURSOR);
+ 		++YYCURSOR;
+@@ -6905,14 +6915,14 @@ yy772:
+ yy773:
+ 		YYDEBUG(773, *YYCURSOR);
+ 		yyleng = YYCURSOR - SCNG(yy_text);
+-#line 1024 "Zend/zend_language_scanner.l"
++#line 1034 "Zend/zend_language_scanner.l"
+ 		{
+ 	yy_pop_state(TSRMLS_C);
+ 	zend_copy_value(zendlval, yytext, yyleng);
+ 	zendlval->type = IS_STRING;
+ 	return T_STRING;
+ }
+-#line 6916 "Zend/zend_language_scanner.c"
++#line 6926 "Zend/zend_language_scanner.c"
+ yy774:
+ 		YYDEBUG(774, *YYCURSOR);
+ 		yych = *++YYCURSOR;
+@@ -6933,11 +6943,11 @@ yy777:
+ 		++YYCURSOR;
+ 		YYDEBUG(778, *YYCURSOR);
+ 		yyleng = YYCURSOR - SCNG(yy_text);
+-#line 1020 "Zend/zend_language_scanner.l"
++#line 1030 "Zend/zend_language_scanner.l"
+ 		{
+ 	return T_OBJECT_OPERATOR;
+ }
+-#line 6941 "Zend/zend_language_scanner.c"
++#line 6951 "Zend/zend_language_scanner.c"
+ yy779:
+ 		YYDEBUG(779, *YYCURSOR);
+ 		++YYCURSOR;
+@@ -7007,7 +7017,7 @@ yy783:
+ yy784:
+ 		YYDEBUG(784, *YYCURSOR);
+ 		yyleng = YYCURSOR - SCNG(yy_text);
+-#line 1303 "Zend/zend_language_scanner.l"
++#line 1313 "Zend/zend_language_scanner.l"
+ 		{
+ 	zend_copy_value(zendlval, yytext, yyleng);
+ 	zendlval->type = IS_STRING;
+@@ -7015,20 +7025,20 @@ yy784:
+ 	yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
+ 	return T_STRING_VARNAME;
+ }
+-#line 7019 "Zend/zend_language_scanner.c"
++#line 7029 "Zend/zend_language_scanner.c"
+ yy785:
+ 		YYDEBUG(785, *YYCURSOR);
+ 		++YYCURSOR;
+ 		YYDEBUG(786, *YYCURSOR);
+ 		yyleng = YYCURSOR - SCNG(yy_text);
+-#line 1312 "Zend/zend_language_scanner.l"
++#line 1322 "Zend/zend_language_scanner.l"
+ 		{
+ 	yyless(0);
+ 	yy_pop_state(TSRMLS_C);
+ 	yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
+ 	goto restart;
+ }
+-#line 7032 "Zend/zend_language_scanner.c"
++#line 7042 "Zend/zend_language_scanner.c"
+ yy787:
+ 		YYDEBUG(787, *YYCURSOR);
+ 		++YYCURSOR;
+@@ -7050,7 +7060,7 @@ yyc_ST_NOWDOC:
+ 	++YYCURSOR;
+ 	YYDEBUG(792, *YYCURSOR);
+ 	yyleng = YYCURSOR - SCNG(yy_text);
+-#line 2146 "Zend/zend_language_scanner.l"
++#line 2156 "Zend/zend_language_scanner.l"
+ 	{
+ 	int newline = 0;
+ 
+@@ -7105,7 +7115,7 @@ nowdoc_scan_done:
+ 	HANDLE_NEWLINES(yytext, yyleng - newline);
+ 	return T_ENCAPSED_AND_WHITESPACE;
+ }
+-#line 7109 "Zend/zend_language_scanner.c"
++#line 7119 "Zend/zend_language_scanner.c"
+ /* *********************************** */
+ yyc_ST_VAR_OFFSET:
+ 	{
+@@ -7205,7 +7215,7 @@ yy795:
+ yy796:
+ 		YYDEBUG(796, *YYCURSOR);
+ 		yyleng = YYCURSOR - SCNG(yy_text);
+-#line 1362 "Zend/zend_language_scanner.l"
++#line 1372 "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);
+@@ -7217,7 +7227,7 @@ yy796:
+ 	}
+ 	return T_NUM_STRING;
+ }
+-#line 7221 "Zend/zend_language_scanner.c"
++#line 7231 "Zend/zend_language_scanner.c"
+ yy797:
+ 		YYDEBUG(797, *YYCURSOR);
+ 		yych = *++YYCURSOR;
+@@ -7237,23 +7247,23 @@ yy798:
+ yy799:
+ 		YYDEBUG(799, *YYCURSOR);
+ 		yyleng = YYCURSOR - SCNG(yy_text);
+-#line 1672 "Zend/zend_language_scanner.l"
++#line 1682 "Zend/zend_language_scanner.l"
+ 		{
+ 	/* Only '[' can be valid, but returning other tokens will allow a more explicit parse error */
+ 	return yytext[0];
+ }
+-#line 7246 "Zend/zend_language_scanner.c"
++#line 7256 "Zend/zend_language_scanner.c"
+ yy800:
+ 		YYDEBUG(800, *YYCURSOR);
+ 		++YYCURSOR;
+ 		YYDEBUG(801, *YYCURSOR);
+ 		yyleng = YYCURSOR - SCNG(yy_text);
+-#line 1667 "Zend/zend_language_scanner.l"
++#line 1677 "Zend/zend_language_scanner.l"
+ 		{
+ 	yy_pop_state(TSRMLS_C);
+ 	return ']';
+ }
+-#line 7257 "Zend/zend_language_scanner.c"
++#line 7267 "Zend/zend_language_scanner.c"
+ yy802:
+ 		YYDEBUG(802, *YYCURSOR);
+ 		yych = *++YYCURSOR;
+@@ -7263,14 +7273,14 @@ yy803:
+ 		++YYCURSOR;
+ 		YYDEBUG(804, *YYCURSOR);
+ 		yyleng = YYCURSOR - SCNG(yy_text);
+-#line 1677 "Zend/zend_language_scanner.l"
++#line 1687 "Zend/zend_language_scanner.l"
+ 		{
+ 	/* Invalid rule to return a more explicit parse error with proper line number */
+ 	yyless(0);
+ 	yy_pop_state(TSRMLS_C);
+ 	return T_ENCAPSED_AND_WHITESPACE;
+ }
+-#line 7274 "Zend/zend_language_scanner.c"
++#line 7284 "Zend/zend_language_scanner.c"
+ yy805:
+ 		YYDEBUG(805, *YYCURSOR);
+ 		++YYCURSOR;
+@@ -7279,19 +7289,19 @@ yy805:
+ yy806:
+ 		YYDEBUG(806, *YYCURSOR);
+ 		yyleng = YYCURSOR - SCNG(yy_text);
+-#line 1684 "Zend/zend_language_scanner.l"
++#line 1694 "Zend/zend_language_scanner.l"
+ 		{
+ 	zend_copy_value(zendlval, yytext, yyleng);
+ 	zendlval->type = IS_STRING;
+ 	return T_STRING;
+ }
+-#line 7289 "Zend/zend_language_scanner.c"
++#line 7299 "Zend/zend_language_scanner.c"
+ yy807:
+ 		YYDEBUG(807, *YYCURSOR);
+ 		++YYCURSOR;
+ 		YYDEBUG(808, *YYCURSOR);
+ 		yyleng = YYCURSOR - SCNG(yy_text);
+-#line 2202 "Zend/zend_language_scanner.l"
++#line 2212 "Zend/zend_language_scanner.l"
+ 		{
+ 	if (YYCURSOR > YYLIMIT) {
+ 		return 0;
+@@ -7300,7 +7310,7 @@ yy807:
+ 	zend_error(E_COMPILE_WARNING,"Unexpected character in input:  '%c' (ASCII=%d) state=%d", yytext[0], yytext[0], YYSTATE);
+ 	goto restart;
+ }
+-#line 7304 "Zend/zend_language_scanner.c"
++#line 7314 "Zend/zend_language_scanner.c"
+ yy809:
+ 		YYDEBUG(809, *YYCURSOR);
+ 		++YYCURSOR;
+@@ -7336,13 +7346,13 @@ yy811:
+ yy813:
+ 		YYDEBUG(813, *YYCURSOR);
+ 		yyleng = YYCURSOR - SCNG(yy_text);
+-#line 1661 "Zend/zend_language_scanner.l"
++#line 1671 "Zend/zend_language_scanner.l"
+ 		{
+ 	zend_copy_value(zendlval, (yytext+1), (yyleng-1));
+ 	zendlval->type = IS_STRING;
+ 	return T_VARIABLE;
+ }
+-#line 7346 "Zend/zend_language_scanner.c"
++#line 7356 "Zend/zend_language_scanner.c"
+ yy814:
+ 		YYDEBUG(814, *YYCURSOR);
+ 		++YYCURSOR;
+@@ -7374,14 +7384,14 @@ yy818:
+ yy820:
+ 		YYDEBUG(820, *YYCURSOR);
+ 		yyleng = YYCURSOR - SCNG(yy_text);
+-#line 1374 "Zend/zend_language_scanner.l"
++#line 1384 "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 7385 "Zend/zend_language_scanner.c"
++#line 7395 "Zend/zend_language_scanner.c"
+ yy821:
+ 		YYDEBUG(821, *YYCURSOR);
+ 		++YYCURSOR;
+@@ -7394,6 +7404,6 @@ yy821:
+ 		goto yy820;
+ 	}
+ }
+-#line 2211 "Zend/zend_language_scanner.l"
++#line 2221 "Zend/zend_language_scanner.l"
+ 
+ }
+--- a/Zend/zend_language_scanner.l
++++ b/Zend/zend_language_scanner.l
+@@ -227,6 +227,12 @@ ZEND_API void zend_restore_lexical_state
+ 	SCNG(script_encoding) = lex_state->script_encoding;
+ 	SCNG(internal_encoding) = lex_state->internal_encoding;
+ #endif /* ZEND_MULTIBYTE */
++
++	if (CG(heredoc)) {
++		efree(CG(heredoc));
++		CG(heredoc) = NULL;
++		CG(heredoc_len) = 0;
++	}
+ }
+ 
+ ZEND_API void zend_destroy_file_handle(zend_file_handle *file_handle TSRMLS_DC)
+--- /dev/null
++++ b/Zend/tests/bug53629.phpt
+@@ -0,0 +1,31 @@
++--TEST--
++Bug #53629 (memory leak inside highlight_string())
++--FILE--
++<?php
++
++$str = '
++<?php
++class foo {
++    public $bar = <<<EOT
++bar
++    EOT;
++}
++?>
++';
++$str2 = '
++<?php
++var_dump(array(<<<EOD
++foobar!
++EOD
++));
++?>
++';
++
++highlight_string($str, true);
++highlight_string($str2, true);
++
++
++echo "Done\n";
++?>
++--EXPECT--
++Done
diff --git a/debian/patches/series b/debian/patches/series
index fb05d2f..cf47468 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -83,3 +83,4 @@ fix-for-NULL-deref-in-zend_language_scanner.patch
 fix-integer-overflow-in-SdnToJulian.patch
 fix-leak-and-possible-crash-introduced-by-the-null-poisoning-patch.patch
 fix-leaks-and-crash-bug-when-passing-the-callback-as-variable.patch
+fix-memory-leak-inside-highlight_string.patch
-- 
1.7.1





More information about the Pkg-php-commits mailing list