cvs: ZendEngine2 / zend_language_scanner.c zend_language_scanner.l zend_language_scanner_defs.h

"Nuno Lopes" <[email protected]>
Newsgroups gmane.comp.php.cvs.zend
Message-ID <cvsnlopess1212773684@cvsserver>
nlopess		Fri Jun  6 17:34:44 2008 UTC

  Modified files:              
    /ZendEngine2	zend_language_scanner.c zend_language_scanner.l 
                	zend_language_scanner_defs.h 
  Log:
  backport the yyless patch from 5.3 branch. it seems I forgot to commit this..
  # you'll probably need re2c 0.13.5 or newer to regenerate this file
  # Matt: please advise if there's still somrthing pending (i.e. was the heredoc/nowdoc patch MFB already?

-- 
Zend Engine CVS Mailing List (http://cvs.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php
nlopess-20080606173444.txt (text/plain, 82.1 KB)
http://cvs.php.net/viewvc.cgi/ZendEngine2/zend_language_scanner.c?r1=1.7&r2=1.8&diff_format=u
Index: ZendEngine2/zend_language_scanner.c
diff -u ZendEngine2/zend_language_scanner.c:1.7 ZendEngine2/zend_language_scanner.c:1.8
--- ZendEngine2/zend_language_scanner.c:1.7	Sat May 10 09:15:17 2008
+++ ZendEngine2/zend_language_scanner.c	Fri Jun  6 17:34:43 2008
@@ -1,4 +1,4 @@
-/* Generated by re2c 0.13.4 on Sat May 10 04:04:00 2008 */
+/* Generated by re2c 0.13.6.dev on Fri Jun  6 18:30:48 2008 */
 #line 1 "Zend/zend_language_scanner.l"
 /*
    +----------------------------------------------------------------------+
@@ -23,7 +23,7 @@
    +----------------------------------------------------------------------+
 */
 
-/* $Id: zend_language_scanner.c,v 1.7 2008/05/10 09:15:17 mattwil Exp $ */
+/* $Id: zend_language_scanner.c,v 1.8 2008/06/06 17:34:43 nlopess Exp $ */
 
 #if 0
 # define YYDEBUG(s, c) printf("state: %d char: %c\n", s, c)
@@ -65,7 +65,8 @@
 #define YYSTATE      YYGETCONDITION()
 #define yytext       ((char*)SCNG(yy_text))
 #define yyleng       SCNG(yy_leng)
-#define yyless(x)    YYCURSOR = yytext + x
+#define yyless(x)    do { YYCURSOR = (unsigned char*)yytext + (x); \
+                          yyleng   = (unsigned int)(x); } while(0)
 #define yymore()     goto yymore_restart
 
 /* perform sanity check. If this message is triggered you should
@@ -1338,7 +1339,7 @@
 	}
 
 
-#line 1342 "Zend/zend_language_scanner.c"
+#line 1343 "Zend/zend_language_scanner.c"
 {
 	YYCTYPE yych;
 	unsigned int yyaccept = 0;
@@ -1462,7 +1463,7 @@
 yy3:
 		YYDEBUG(3, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 2165 "Zend/zend_language_scanner.l"
+#line 2166 "Zend/zend_language_scanner.l"
 		{
 
 	while (1) {
@@ -1493,7 +1494,7 @@
 	HANDLE_NEWLINES(yytext, yyleng);
 	return T_INLINE_HTML;
 }
-#line 1497 "Zend/zend_language_scanner.c"
+#line 1498 "Zend/zend_language_scanner.c"
 yy4:
 		YYDEBUG(4, *YYCURSOR);
 		yyaccept = 0;
@@ -1520,7 +1521,7 @@
 yy9:
 		YYDEBUG(9, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 2156 "Zend/zend_language_scanner.l"
+#line 2157 "Zend/zend_language_scanner.l"
 		{
 	if ((YYCTYPE*)yytext == SCNG(yy_start)) {
 		/* ignore first line when it's started with a # */
@@ -1529,7 +1530,7 @@
 		goto inline_char_handler;
 	}
 }
-#line 1533 "Zend/zend_language_scanner.c"
+#line 1534 "Zend/zend_language_scanner.c"
 yy10:
 		YYDEBUG(10, *YYCURSOR);
 		yyaccept = 1;
@@ -1555,7 +1556,7 @@
 yy13:
 		YYDEBUG(13, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 2140 "Zend/zend_language_scanner.l"
+#line 2141 "Zend/zend_language_scanner.l"
 		{
 	HANDLE_NEWLINES(yytext, yyleng);
 	if (CG(short_tags)) {
@@ -1571,14 +1572,14 @@
 		return T_INLINE_HTML;
 	}
 }
-#line 1575 "Zend/zend_language_scanner.c"
+#line 1576 "Zend/zend_language_scanner.c"
 yy14:
 		YYDEBUG(14, *YYCURSOR);
 		++YYCURSOR;
 		if ((yych = *YYCURSOR) == '=') goto yy50;
 		YYDEBUG(15, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 2114 "Zend/zend_language_scanner.l"
+#line 2115 "Zend/zend_language_scanner.l"
 		{
 	if (CG(asp_tags)) {
 		Z_STRVAL_P(zendlval) = yytext; /* no copying - intentional */
@@ -1593,7 +1594,7 @@
 		return T_INLINE_HTML;
 	}
 }
-#line 1597 "Zend/zend_language_scanner.c"
+#line 1598 "Zend/zend_language_scanner.c"
 yy16:
 		YYDEBUG(16, *YYCURSOR);
 		yych = *++YYCURSOR;
@@ -1783,7 +1784,7 @@
 		++YYCURSOR;
 		YYDEBUG(45, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 2073 "Zend/zend_language_scanner.l"
+#line 2074 "Zend/zend_language_scanner.l"
 		{
 	HANDLE_NEWLINES(yytext, yyleng);
 	Z_STRVAL_P(zendlval) = yytext; /* no copying - intentional */
@@ -1792,7 +1793,7 @@
 	BEGIN(ST_IN_SCRIPTING);
 	return T_OPEN_TAG;
 }
-#line 1796 "Zend/zend_language_scanner.c"
+#line 1797 "Zend/zend_language_scanner.c"
 yy46:
 		YYDEBUG(46, *YYCURSOR);
 		yych = *++YYCURSOR;
@@ -1819,7 +1820,7 @@
 		++YYCURSOR;
 		YYDEBUG(51, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 2082 "Zend/zend_language_scanner.l"
+#line 2083 "Zend/zend_language_scanner.l"
 		{
 	if (CG(asp_tags)) {
 		Z_STRVAL_P(zendlval) = yytext; /* no copying - intentional */
@@ -1834,13 +1835,13 @@
 		return T_INLINE_HTML;
 	}
 }
-#line 1838 "Zend/zend_language_scanner.c"
+#line 1839 "Zend/zend_language_scanner.c"
 yy52:
 		YYDEBUG(52, *YYCURSOR);
 		++YYCURSOR;
 		YYDEBUG(53, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 2098 "Zend/zend_language_scanner.l"
+#line 2099 "Zend/zend_language_scanner.l"
 		{
 	if (CG(short_tags)) {
 		Z_STRVAL_P(zendlval) = yytext; /* no copying - intentional */
@@ -1855,7 +1856,7 @@
 		return T_INLINE_HTML;
 	}
 }
-#line 1859 "Zend/zend_language_scanner.c"
+#line 1860 "Zend/zend_language_scanner.c"
 yy54:
 		YYDEBUG(54, *YYCURSOR);
 		yych = *++YYCURSOR;
@@ -1882,7 +1883,7 @@
 yy58:
 		YYDEBUG(58, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 2130 "Zend/zend_language_scanner.l"
+#line 2131 "Zend/zend_language_scanner.l"
 		{
 	Z_STRVAL_P(zendlval) = yytext; /* no copying - intentional */
 	Z_STRLEN_P(zendlval) = yyleng;
@@ -1891,7 +1892,7 @@
 	BEGIN(ST_IN_SCRIPTING);
 	return T_OPEN_TAG;
 }
-#line 1895 "Zend/zend_language_scanner.c"
+#line 1896 "Zend/zend_language_scanner.c"
 yy59:
 		YYDEBUG(59, *YYCURSOR);
 		++YYCURSOR;
@@ -1982,13 +1983,13 @@
 yy64:
 		YYDEBUG(64, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 2572 "Zend/zend_language_scanner.l"
+#line 2567 "Zend/zend_language_scanner.l"
 		{
 	Z_LVAL_P(zendlval) = (long) '{';
 	yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
 	return T_CURLY_OPEN;
 }
-#line 1992 "Zend/zend_language_scanner.c"
+#line 1993 "Zend/zend_language_scanner.c"
 yy65:
 		YYDEBUG(65, *YYCURSOR);
 		yyaccept = 1;
@@ -2006,7 +2007,7 @@
 yy67:
 		YYDEBUG(67, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 2607 "Zend/zend_language_scanner.l"
+#line 2601 "Zend/zend_language_scanner.l"
 		{
 	if (CG(literal_type) == IS_UNICODE) {
 		return zend_scan_unicode_escape_string(zendlval, yytext, yyleng, 0x60 /*'`'*/, T_ENCAPSED_AND_WHITESPACE TSRMLS_CC);
@@ -2015,7 +2016,7 @@
 		return T_ENCAPSED_AND_WHITESPACE;
 	}
 }
-#line 2019 "Zend/zend_language_scanner.c"
+#line 2020 "Zend/zend_language_scanner.c"
 yy68:
 		YYDEBUG(68, *YYCURSOR);
 		++YYCURSOR;
@@ -2027,12 +2028,12 @@
 		++YYCURSOR;
 		YYDEBUG(70, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 2770 "Zend/zend_language_scanner.l"
+#line 2762 "Zend/zend_language_scanner.l"
 		{
 	BEGIN(ST_IN_SCRIPTING);
 	return '`';
 }
-#line 2036 "Zend/zend_language_scanner.c"
+#line 2037 "Zend/zend_language_scanner.c"
 yy71:
 		YYDEBUG(71, *YYCURSOR);
 		++YYCURSOR;
@@ -2120,10 +2121,9 @@
 yy77:
 		YYDEBUG(77, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 2616 "Zend/zend_language_scanner.l"
+#line 2610 "Zend/zend_language_scanner.l"
 		{
-	yyleng--;
-	yyless(yyleng);
+	yyless(yyleng - 1);
 
 	if (CG(literal_type) == IS_UNICODE) {
 		return zend_scan_unicode_escape_string(zendlval, yytext, yyleng, 0x60 /*'`'*/, T_ENCAPSED_AND_WHITESPACE TSRMLS_CC);
@@ -2166,7 +2166,7 @@
 yy83:
 		YYDEBUG(83, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 2229 "Zend/zend_language_scanner.l"
+#line 2228 "Zend/zend_language_scanner.l"
 		{
 	if (!zend_copy_scanner_string(zendlval, (yytext+1), (yyleng-1), UG(unicode)?IS_UNICODE:IS_STRING, SCNG(output_conv) TSRMLS_CC)) {
 		return 0;
@@ -2182,7 +2182,7 @@
 		++YYCURSOR;
 		YYDEBUG(85, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 1838 "Zend/zend_language_scanner.l"
+#line 1839 "Zend/zend_language_scanner.l"
 		{
 	yy_push_state(ST_LOOKING_FOR_VARNAME TSRMLS_CC);
 	return T_DOLLAR_OPEN_CURLY_BRACES;
@@ -2200,8 +2200,7 @@
 		yyleng = YYCURSOR - SCNG(yy_text);
 #line 2215 "Zend/zend_language_scanner.l"
 		{
-	yyleng--;
-	yyless(yyleng);
+	yyless(yyleng - 1);
 	yy_push_state(ST_VAR_OFFSET TSRMLS_CC);
 
 	if (!zend_copy_scanner_string(zendlval, (yytext+1), (yyleng-1), UG(unicode)?IS_UNICODE:IS_STRING, SCNG(output_conv) TSRMLS_CC)) {
@@ -2212,7 +2211,7 @@
 	}
 	return T_VARIABLE;
 }
-#line 2216 "Zend/zend_language_scanner.c"
+#line 2215 "Zend/zend_language_scanner.c"
 yy89:
 		YYDEBUG(89, *YYCURSOR);
 		yych = *++YYCURSOR;
@@ -2230,10 +2229,9 @@
 		++YYCURSOR;
 		YYDEBUG(91, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 2199 "Zend/zend_language_scanner.l"
+#line 2200 "Zend/zend_language_scanner.l"
 		{
-	yyleng -= 3;
-	yyless(yyleng);
+	yyless(yyleng - 3);
 	yy_push_state(ST_LOOKING_FOR_PROPERTY TSRMLS_CC);
 
 	if (!zend_copy_scanner_string(zendlval, (yytext+1), (yyleng-1), UG(unicode)?IS_UNICODE:IS_STRING, SCNG(output_conv) TSRMLS_CC)) {
@@ -2244,7 +2242,7 @@
 	}
 	return T_VARIABLE;
 }
-#line 2248 "Zend/zend_language_scanner.c"
+#line 2246 "Zend/zend_language_scanner.c"
 	}
 /* *********************************** */
 yyc_ST_COMMENT:
@@ -2301,34 +2299,34 @@
 		}
 		YYDEBUG(96, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 2338 "Zend/zend_language_scanner.l"
+#line 2335 "Zend/zend_language_scanner.l"
 		{
 	yymore();
 }
-#line 2309 "Zend/zend_language_scanner.c"
+#line 2307 "Zend/zend_language_scanner.c"
 yy97:
 		YYDEBUG(97, *YYCURSOR);
 		++YYCURSOR;
 		if ((yych = *YYCURSOR) == '/') goto yy99;
 		YYDEBUG(98, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 2361 "Zend/zend_language_scanner.l"
+#line 2358 "Zend/zend_language_scanner.l"
 		{
 	yymore();
 }
-#line 2320 "Zend/zend_language_scanner.c"
+#line 2318 "Zend/zend_language_scanner.c"
 yy99:
 		YYDEBUG(99, *YYCURSOR);
 		++YYCURSOR;
 		YYDEBUG(100, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 2355 "Zend/zend_language_scanner.l"
+#line 2352 "Zend/zend_language_scanner.l"
 		{
 	HANDLE_NEWLINES(yytext, yyleng);
 	BEGIN(ST_IN_SCRIPTING);
 	return T_COMMENT;
 }
-#line 2332 "Zend/zend_language_scanner.c"
+#line 2330 "Zend/zend_language_scanner.c"
 	}
 /* *********************************** */
 yyc_ST_DOC_COMMENT:
@@ -2385,28 +2383,28 @@
 		}
 		YYDEBUG(105, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 2338 "Zend/zend_language_scanner.l"
+#line 2335 "Zend/zend_language_scanner.l"
 		{
 	yymore();
 }
-#line 2393 "Zend/zend_language_scanner.c"
+#line 2391 "Zend/zend_language_scanner.c"
 yy106:
 		YYDEBUG(106, *YYCURSOR);
 		++YYCURSOR;
 		if ((yych = *YYCURSOR) == '/') goto yy108;
 		YYDEBUG(107, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 2361 "Zend/zend_language_scanner.l"
+#line 2358 "Zend/zend_language_scanner.l"
 		{
 	yymore();
 }
-#line 2404 "Zend/zend_language_scanner.c"
+#line 2402 "Zend/zend_language_scanner.c"
 yy108:
 		YYDEBUG(108, *YYCURSOR);
 		++YYCURSOR;
 		YYDEBUG(109, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 2342 "Zend/zend_language_scanner.l"
+#line 2339 "Zend/zend_language_scanner.l"
 		{
 	zval temp;
 
@@ -2419,7 +2417,7 @@
 	BEGIN(ST_IN_SCRIPTING);
 	return T_DOC_COMMENT;
 }
-#line 2423 "Zend/zend_language_scanner.c"
+#line 2421 "Zend/zend_language_scanner.c"
 	}
 /* *********************************** */
 yyc_ST_DOUBLE_QUOTES:
@@ -2506,13 +2504,13 @@
 yy114:
 		YYDEBUG(114, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 2572 "Zend/zend_language_scanner.l"
+#line 2567 "Zend/zend_language_scanner.l"
 		{
 	Z_LVAL_P(zendlval) = (long) '{';
 	yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
 	return T_CURLY_OPEN;
 }
-#line 2516 "Zend/zend_language_scanner.c"
+#line 2514 "Zend/zend_language_scanner.c"
 yy115:
 		YYDEBUG(115, *YYCURSOR);
 		yyaccept = 1;
@@ -2531,7 +2529,7 @@
 yy117:
 		YYDEBUG(117, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 2579 "Zend/zend_language_scanner.l"
+#line 2574 "Zend/zend_language_scanner.l"
 		{
 	if (CG(literal_type) == IS_UNICODE) {
 		return zend_scan_unicode_escape_string(zendlval, yytext, yyleng, 0x22 /*'"'*/, T_ENCAPSED_AND_WHITESPACE TSRMLS_CC);
@@ -2540,7 +2538,7 @@
 		return T_ENCAPSED_AND_WHITESPACE;
 	}
 }
-#line 2544 "Zend/zend_language_scanner.c"
+#line 2542 "Zend/zend_language_scanner.c"
 yy118:
 		YYDEBUG(118, *YYCURSOR);
 		++YYCURSOR;
@@ -2552,12 +2550,12 @@
 		++YYCURSOR;
 		YYDEBUG(120, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 2764 "Zend/zend_language_scanner.l"
+#line 2756 "Zend/zend_language_scanner.l"
 		{
 	BEGIN(ST_IN_SCRIPTING);
 	return '"';
 }
-#line 2561 "Zend/zend_language_scanner.c"
+#line 2559 "Zend/zend_language_scanner.c"
 yy121:
 		YYDEBUG(121, *YYCURSOR);
 		++YYCURSOR;
@@ -2648,10 +2646,9 @@
 yy127:
 		YYDEBUG(127, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 2594 "Zend/zend_language_scanner.l"
+#line 2589 "Zend/zend_language_scanner.l"
 		{
-	yyleng--;
-	yyless(yyleng);
+	yyless(yyleng - 1);
 
 	if (CG(literal_type) == IS_UNICODE) {
 		return zend_scan_unicode_escape_string(zendlval, yytext, yyleng, 0x22 /*'"'*/, T_ENCAPSED_AND_WHITESPACE TSRMLS_CC);
@@ -2660,7 +2657,7 @@
 		return T_ENCAPSED_AND_WHITESPACE;
 	}
 }
-#line 2664 "Zend/zend_language_scanner.c"
+#line 2661 "Zend/zend_language_scanner.c"
 yy128:
 		YYDEBUG(128, *YYCURSOR);
 		yych = *++YYCURSOR;
@@ -2694,7 +2691,7 @@
 yy133:
 		YYDEBUG(133, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 2229 "Zend/zend_language_scanner.l"
+#line 2228 "Zend/zend_language_scanner.l"
 		{
 	if (!zend_copy_scanner_string(zendlval, (yytext+1), (yyleng-1), UG(unicode)?IS_UNICODE:IS_STRING, SCNG(output_conv) TSRMLS_CC)) {
 		return 0;
@@ -2704,18 +2701,18 @@
 	}
 	return T_VARIABLE;
 }
-#line 2708 "Zend/zend_language_scanner.c"
+#line 2705 "Zend/zend_language_scanner.c"
 yy134:
 		YYDEBUG(134, *YYCURSOR);
 		++YYCURSOR;
 		YYDEBUG(135, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 1838 "Zend/zend_language_scanner.l"
+#line 1839 "Zend/zend_language_scanner.l"
 		{
 	yy_push_state(ST_LOOKING_FOR_VARNAME TSRMLS_CC);
 	return T_DOLLAR_OPEN_CURLY_BRACES;
 }
-#line 2719 "Zend/zend_language_scanner.c"
+#line 2716 "Zend/zend_language_scanner.c"
 yy136:
 		YYDEBUG(136, *YYCURSOR);
 		yych = *++YYCURSOR;
@@ -2728,8 +2725,7 @@
 		yyleng = YYCURSOR - SCNG(yy_text);
 #line 2215 "Zend/zend_language_scanner.l"
 		{
-	yyleng--;
-	yyless(yyleng);
+	yyless(yyleng - 1);
 	yy_push_state(ST_VAR_OFFSET TSRMLS_CC);
 
 	if (!zend_copy_scanner_string(zendlval, (yytext+1), (yyleng-1), UG(unicode)?IS_UNICODE:IS_STRING, SCNG(output_conv) TSRMLS_CC)) {
@@ -2740,7 +2736,7 @@
 	}
 	return T_VARIABLE;
 }
-#line 2744 "Zend/zend_language_scanner.c"
+#line 2740 "Zend/zend_language_scanner.c"
 yy139:
 		YYDEBUG(139, *YYCURSOR);
 		yych = *++YYCURSOR;
@@ -2758,10 +2754,9 @@
 		++YYCURSOR;
 		YYDEBUG(141, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 2199 "Zend/zend_language_scanner.l"
+#line 2200 "Zend/zend_language_scanner.l"
 		{
-	yyleng -= 3;
-	yyless(yyleng);
+	yyless(yyleng - 3);
 	yy_push_state(ST_LOOKING_FOR_PROPERTY TSRMLS_CC);
 
 	if (!zend_copy_scanner_string(zendlval, (yytext+1), (yyleng-1), UG(unicode)?IS_UNICODE:IS_STRING, SCNG(output_conv) TSRMLS_CC)) {
@@ -2772,7 +2767,7 @@
 	}
 	return T_VARIABLE;
 }
-#line 2776 "Zend/zend_language_scanner.c"
+#line 2771 "Zend/zend_language_scanner.c"
 	}
 /* *********************************** */
 yyc_ST_END_HEREDOC:
@@ -2783,7 +2778,7 @@
 	++YYCURSOR;
 	YYDEBUG(145, *YYCURSOR);
 	yyleng = YYCURSOR - SCNG(yy_text);
-#line 2561 "Zend/zend_language_scanner.l"
+#line 2556 "Zend/zend_language_scanner.l"
 	{
 	SCNG(yy_text) = Z_STRVAL_P(zendlval) = CG(heredoc);
 	SCNG(yy_leng) = Z_STRLEN_P(zendlval) = CG(heredoc_len);
@@ -2792,7 +2787,7 @@
 	BEGIN(ST_IN_SCRIPTING);
 	return T_END_HEREDOC;
 }
-#line 2796 "Zend/zend_language_scanner.c"
+#line 2791 "Zend/zend_language_scanner.c"
 /* *********************************** */
 yyc_ST_END_NOWDOC:
 	YYDEBUG(146, *YYCURSOR);
@@ -2802,7 +2797,7 @@
 	++YYCURSOR;
 	YYDEBUG(149, *YYCURSOR);
 	yyleng = YYCURSOR - SCNG(yy_text);
-#line 2753 "Zend/zend_language_scanner.l"
+#line 2745 "Zend/zend_language_scanner.l"
 	{
 	SCNG(yy_text) = Z_STRVAL_P(zendlval) = CG(heredoc);
 	SCNG(yy_leng) = Z_STRLEN_P(zendlval) = CG(heredoc_len);
@@ -2811,7 +2806,7 @@
 	BEGIN(ST_IN_SCRIPTING);
 	return T_END_NOWDOC;
 }
-#line 2815 "Zend/zend_language_scanner.c"
+#line 2810 "Zend/zend_language_scanner.c"
 /* *********************************** */
 yyc_ST_HEREDOC:
 	{
@@ -2868,7 +2863,7 @@
 yy152:
 		YYDEBUG(152, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 2636 "Zend/zend_language_scanner.l"
+#line 2629 "Zend/zend_language_scanner.l"
 		{
 	if (CG(literal_type) == IS_UNICODE) {
 		return zend_scan_unicode_escape_string(zendlval, yytext, yyleng, 0, T_ENCAPSED_AND_WHITESPACE TSRMLS_CC);
@@ -2877,7 +2872,7 @@
 		return T_ENCAPSED_AND_WHITESPACE;
 	}
 }
-#line 2881 "Zend/zend_language_scanner.c"
+#line 2876 "Zend/zend_language_scanner.c"
 yy153:
 		YYDEBUG(153, *YYCURSOR);
 		yych = *++YYCURSOR;
@@ -2923,13 +2918,13 @@
 yy155:
 		YYDEBUG(155, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 2572 "Zend/zend_language_scanner.l"
+#line 2567 "Zend/zend_language_scanner.l"
 		{
 	Z_LVAL_P(zendlval) = (long) '{';
 	yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
 	return T_CURLY_OPEN;
 }
-#line 2933 "Zend/zend_language_scanner.c"
+#line 2928 "Zend/zend_language_scanner.c"
 yy156:
 		YYDEBUG(156, *YYCURSOR);
 		yyaccept = 0;
@@ -3180,10 +3175,9 @@
 yy174:
 		YYDEBUG(174, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 2645 "Zend/zend_language_scanner.l"
+#line 2638 "Zend/zend_language_scanner.l"
 		{
-	yyleng--;
-	yyless(yyleng);
+	yyless(yyleng - 1);
 
 	if (CG(literal_type) == IS_UNICODE) {
 		return zend_scan_unicode_escape_string(zendlval, yytext, yyleng, 0, T_ENCAPSED_AND_WHITESPACE TSRMLS_CC);
@@ -3192,7 +3186,7 @@
 		return T_ENCAPSED_AND_WHITESPACE;
 	}
 }
-#line 3196 "Zend/zend_language_scanner.c"
+#line 3190 "Zend/zend_language_scanner.c"
 yy175:
 		YYDEBUG(175, *YYCURSOR);
 		yyaccept = 2;
@@ -3291,7 +3285,7 @@
 		++YYCURSOR;
 		YYDEBUG(182, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 2516 "Zend/zend_language_scanner.l"
+#line 2511 "Zend/zend_language_scanner.l"
 		{
 	char *end = yytext + yyleng - 1;
 
@@ -3336,7 +3330,7 @@
 		yymore();
 	}
 }
-#line 3340 "Zend/zend_language_scanner.c"
+#line 3334 "Zend/zend_language_scanner.c"
 yy183:
 		YYDEBUG(183, *YYCURSOR);
 		yyaccept = 2;
@@ -3596,7 +3590,7 @@
 yy204:
 		YYDEBUG(204, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 2229 "Zend/zend_language_scanner.l"
+#line 2228 "Zend/zend_language_scanner.l"
 		{
 	if (!zend_copy_scanner_string(zendlval, (yytext+1), (yyleng-1), UG(unicode)?IS_UNICODE:IS_STRING, SCNG(output_conv) TSRMLS_CC)) {
 		return 0;
@@ -3606,18 +3600,18 @@
 	}
 	return T_VARIABLE;
 }
-#line 3610 "Zend/zend_language_scanner.c"
+#line 3604 "Zend/zend_language_scanner.c"
 yy205:
 		YYDEBUG(205, *YYCURSOR);
 		++YYCURSOR;
 		YYDEBUG(206, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 1838 "Zend/zend_language_scanner.l"
+#line 1839 "Zend/zend_language_scanner.l"
 		{
 	yy_push_state(ST_LOOKING_FOR_VARNAME TSRMLS_CC);
 	return T_DOLLAR_OPEN_CURLY_BRACES;
 }
-#line 3621 "Zend/zend_language_scanner.c"
+#line 3615 "Zend/zend_language_scanner.c"
 yy207:
 		YYDEBUG(207, *YYCURSOR);
 		yych = *++YYCURSOR;
@@ -3630,8 +3624,7 @@
 		yyleng = YYCURSOR - SCNG(yy_text);
 #line 2215 "Zend/zend_language_scanner.l"
 		{
-	yyleng--;
-	yyless(yyleng);
+	yyless(yyleng - 1);
 	yy_push_state(ST_VAR_OFFSET TSRMLS_CC);
 
 	if (!zend_copy_scanner_string(zendlval, (yytext+1), (yyleng-1), UG(unicode)?IS_UNICODE:IS_STRING, SCNG(output_conv) TSRMLS_CC)) {
@@ -3642,7 +3635,7 @@
 	}
 	return T_VARIABLE;
 }
-#line 3646 "Zend/zend_language_scanner.c"
+#line 3639 "Zend/zend_language_scanner.c"
 yy210:
 		YYDEBUG(210, *YYCURSOR);
 		yych = *++YYCURSOR;
@@ -3660,10 +3653,9 @@
 		++YYCURSOR;
 		YYDEBUG(212, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 2199 "Zend/zend_language_scanner.l"
+#line 2200 "Zend/zend_language_scanner.l"
 		{
-	yyleng -= 3;
-	yyless(yyleng);
+	yyless(yyleng - 3);
 	yy_push_state(ST_LOOKING_FOR_PROPERTY TSRMLS_CC);
 
 	if (!zend_copy_scanner_string(zendlval, (yytext+1), (yyleng-1), UG(unicode)?IS_UNICODE:IS_STRING, SCNG(output_conv) TSRMLS_CC)) {
@@ -3674,7 +3666,7 @@
 	}
 	return T_VARIABLE;
 }
-#line 3678 "Zend/zend_language_scanner.c"
+#line 3670 "Zend/zend_language_scanner.c"
 	}
 /* *********************************** */
 yyc_ST_IN_SCRIPTING:
@@ -3889,7 +3881,7 @@
 yy216:
 		YYDEBUG(216, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 2258 "Zend/zend_language_scanner.l"
+#line 2256 "Zend/zend_language_scanner.l"
 		{
 	if (!zend_copy_scanner_string(zendlval, yytext, yyleng, UG(unicode)?IS_UNICODE:IS_STRING, SCNG(output_conv) TSRMLS_CC)) {
 		return 0;
@@ -3899,7 +3891,7 @@
 	}
 	return T_STRING;
 }
-#line 3903 "Zend/zend_language_scanner.c"
+#line 3895 "Zend/zend_language_scanner.c"
 yy217:
 		YYDEBUG(217, *YYCURSOR);
 		yych = *++YYCURSOR;
@@ -4146,11 +4138,11 @@
 yy230:
 		YYDEBUG(230, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 1827 "Zend/zend_language_scanner.l"
+#line 1828 "Zend/zend_language_scanner.l"
 		{
 	return yytext[0];
 }
-#line 4154 "Zend/zend_language_scanner.c"
+#line 4146 "Zend/zend_language_scanner.c"
 yy231:
 		YYDEBUG(231, *YYCURSOR);
 		++YYCURSOR;
@@ -4159,7 +4151,7 @@
 yy232:
 		YYDEBUG(232, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 1558 "Zend/zend_language_scanner.l"
+#line 1559 "Zend/zend_language_scanner.l"
 		{
 	Z_STRVAL_P(zendlval) = yytext; /* no copying - intentional */
 	Z_STRLEN_P(zendlval) = yyleng;
@@ -4167,7 +4159,7 @@
 	HANDLE_NEWLINES(yytext, yyleng);
 	return T_WHITESPACE;
 }
-#line 4171 "Zend/zend_language_scanner.c"
+#line 4163 "Zend/zend_language_scanner.c"
 yy233:
 		YYDEBUG(233, *YYCURSOR);
 		yych = *++YYCURSOR;
@@ -4400,18 +4392,18 @@
 		++YYCURSOR;
 		YYDEBUG(258, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 1832 "Zend/zend_language_scanner.l"
+#line 1833 "Zend/zend_language_scanner.l"
 		{
 	yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
 	return '{';
 }
-#line 4409 "Zend/zend_language_scanner.c"
+#line 4401 "Zend/zend_language_scanner.c"
 yy259:
 		YYDEBUG(259, *YYCURSOR);
 		++YYCURSOR;
 		YYDEBUG(260, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 1844 "Zend/zend_language_scanner.l"
+#line 1845 "Zend/zend_language_scanner.l"
 		{
 	RESET_DOC_COMMENT();
 	if (!zend_stack_is_empty(&SCNG(state_stack))) {
@@ -4419,7 +4411,7 @@
 	}
 	return '}';
 }
-#line 4423 "Zend/zend_language_scanner.c"
+#line 4415 "Zend/zend_language_scanner.c"
 yy261:
 		YYDEBUG(261, *YYCURSOR);
 		yyaccept = 2;
@@ -4442,7 +4434,7 @@
 yy262:
 		YYDEBUG(262, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 1874 "Zend/zend_language_scanner.l"
+#line 1875 "Zend/zend_language_scanner.l"
 		{
 	if (yyleng < MAX_LENGTH_OF_LONG - 1) { /* Won't overflow */
 		Z_LVAL_P(zendlval) = strtol(yytext, NULL, 0);
@@ -4463,7 +4455,7 @@
 	Z_TYPE_P(zendlval) = IS_LONG;
 	return T_LNUMBER;
 }
-#line 4467 "Zend/zend_language_scanner.c"
+#line 4459 "Zend/zend_language_scanner.c"
 yy263:
 		YYDEBUG(263, *YYCURSOR);
 		yyaccept = 2;
@@ -4491,12 +4483,12 @@
 yy266:
 		YYDEBUG(266, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 2276 "Zend/zend_language_scanner.l"
+#line 2274 "Zend/zend_language_scanner.l"
 		{
 	BEGIN(ST_ONE_LINE_COMMENT);
 	yymore();
 }
-#line 4500 "Zend/zend_language_scanner.c"
+#line 4492 "Zend/zend_language_scanner.c"
 yy267:
 		YYDEBUG(267, *YYCURSOR);
 		yyaccept = 3;
@@ -4505,12 +4497,12 @@
 yy268:
 		YYDEBUG(268, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 2423 "Zend/zend_language_scanner.l"
+#line 2419 "Zend/zend_language_scanner.l"
 		{
 	BEGIN(ST_DOUBLE_QUOTES);
 	return '"';
 }
-#line 4514 "Zend/zend_language_scanner.c"
+#line 4506 "Zend/zend_language_scanner.c"
 yy269:
 		YYDEBUG(269, *YYCURSOR);
 		yyaccept = 4;
@@ -4519,23 +4511,23 @@
 yy270:
 		YYDEBUG(270, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 2776 "Zend/zend_language_scanner.l"
+#line 2768 "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 4528 "Zend/zend_language_scanner.c"
+#line 4520 "Zend/zend_language_scanner.c"
 yy271:
 		YYDEBUG(271, *YYCURSOR);
 		++YYCURSOR;
 		YYDEBUG(272, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 2475 "Zend/zend_language_scanner.l"
+#line 2471 "Zend/zend_language_scanner.l"
 		{
 	BEGIN(ST_BACKQUOTE);
 	return '`';
 }
-#line 4539 "Zend/zend_language_scanner.c"
+#line 4531 "Zend/zend_language_scanner.c"
 yy273:
 		YYDEBUG(273, *YYCURSOR);
 		yych = *++YYCURSOR;
@@ -4561,7 +4553,7 @@
 		++YYCURSOR;
 		YYDEBUG(278, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 2407 "Zend/zend_language_scanner.l"
+#line 2403 "Zend/zend_language_scanner.l"
 		{
 	if (UG(unicode)) {
 		return zend_scan_unicode_single_string(zendlval TSRMLS_CC);
@@ -4570,7 +4562,7 @@
 		return T_CONSTANT_ENCAPSED_STRING;
 	}
 }
-#line 4574 "Zend/zend_language_scanner.c"
+#line 4566 "Zend/zend_language_scanner.c"
 yy279:
 		YYDEBUG(279, *YYCURSOR);
 		++YYCURSOR;
@@ -4671,7 +4663,7 @@
 		++YYCURSOR;
 		YYDEBUG(288, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 2391 "Zend/zend_language_scanner.l"
+#line 2387 "Zend/zend_language_scanner.l"
 		{
 	if (UG(unicode)) {
 		return zend_scan_unicode_escape_string(zendlval, yytext+1, yyleng-2, 0x22 /*'"'*/, T_CONSTANT_ENCAPSED_STRING TSRMLS_CC);
@@ -4680,7 +4672,7 @@
 		return T_CONSTANT_ENCAPSED_STRING;
 	}
 }
-#line 4684 "Zend/zend_language_scanner.c"
+#line 4676 "Zend/zend_language_scanner.c"
 yy289:
 		YYDEBUG(289, *YYCURSOR);
 		++YYCURSOR;
@@ -4713,13 +4705,13 @@
 yy294:
 		YYDEBUG(294, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 1935 "Zend/zend_language_scanner.l"
+#line 1936 "Zend/zend_language_scanner.l"
 		{
 	Z_DVAL_P(zendlval) = zend_strtod(yytext, NULL);
 	Z_TYPE_P(zendlval) = IS_DOUBLE;
 	return T_DNUMBER;
 }
-#line 4723 "Zend/zend_language_scanner.c"
+#line 4715 "Zend/zend_language_scanner.c"
 yy295:
 		YYDEBUG(295, *YYCURSOR);
 		yyaccept = 2;
@@ -4781,7 +4773,7 @@
 		}
 		YYDEBUG(304, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 1895 "Zend/zend_language_scanner.l"
+#line 1896 "Zend/zend_language_scanner.l"
 		{
 	char *hex = yytext + 2; /* Skip "0x" */
 	int len = yyleng - 2;
@@ -4802,7 +4794,7 @@
 		return T_DNUMBER;
 	}
 }
-#line 4806 "Zend/zend_language_scanner.c"
+#line 4798 "Zend/zend_language_scanner.c"
 yy305:
 		YYDEBUG(305, *YYCURSOR);
 		++YYCURSOR;
@@ -4811,7 +4803,7 @@
 yy306:
 		YYDEBUG(306, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 2365 "Zend/zend_language_scanner.l"
+#line 2362 "Zend/zend_language_scanner.l"
 		{
 	Z_STRVAL_P(zendlval) = yytext; /* no copying - intentional */
 	Z_STRLEN_P(zendlval) = yyleng;
@@ -4819,7 +4811,7 @@
 	BEGIN(INITIAL);
 	return T_CLOSE_TAG;  /* implicit ';' at php-end tag */
 }
-#line 4823 "Zend/zend_language_scanner.c"
+#line 4815 "Zend/zend_language_scanner.c"
 yy307:
 		YYDEBUG(307, *YYCURSOR);
 		yych = *++YYCURSOR;
@@ -4853,7 +4845,7 @@
 yy311:
 		YYDEBUG(311, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 2229 "Zend/zend_language_scanner.l"
+#line 2228 "Zend/zend_language_scanner.l"
 		{
 	if (!zend_copy_scanner_string(zendlval, (yytext+1), (yyleng-1), UG(unicode)?IS_UNICODE:IS_STRING, SCNG(output_conv) TSRMLS_CC)) {
 		return 0;
@@ -4863,7 +4855,7 @@
 	}
 	return T_VARIABLE;
 }
-#line 4867 "Zend/zend_language_scanner.c"
+#line 4859 "Zend/zend_language_scanner.c"
 yy312:
 		YYDEBUG(312, *YYCURSOR);
 		yych = *++YYCURSOR;
@@ -4877,11 +4869,11 @@
 		}
 		YYDEBUG(314, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 1815 "Zend/zend_language_scanner.l"
+#line 1816 "Zend/zend_language_scanner.l"
 		{
 	return T_LOGICAL_XOR;
 }
-#line 4885 "Zend/zend_language_scanner.c"
+#line 4877 "Zend/zend_language_scanner.c"
 yy315:
 		YYDEBUG(315, *YYCURSOR);
 		++YYCURSOR;
@@ -4890,61 +4882,61 @@
 		}
 		YYDEBUG(316, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 1807 "Zend/zend_language_scanner.l"
+#line 1808 "Zend/zend_language_scanner.l"
 		{
 	return T_LOGICAL_OR;
 }
-#line 4898 "Zend/zend_language_scanner.c"
+#line 4890 "Zend/zend_language_scanner.c"
 yy317:
 		YYDEBUG(317, *YYCURSOR);
 		++YYCURSOR;
 		YYDEBUG(318, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 1795 "Zend/zend_language_scanner.l"
+#line 1796 "Zend/zend_language_scanner.l"
 		{
 	return T_XOR_EQUAL;
 }
-#line 4908 "Zend/zend_language_scanner.c"
+#line 4900 "Zend/zend_language_scanner.c"
 yy319:
 		YYDEBUG(319, *YYCURSOR);
 		++YYCURSOR;
 		YYDEBUG(320, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 1799 "Zend/zend_language_scanner.l"
+#line 1800 "Zend/zend_language_scanner.l"
 		{
 	return T_BOOLEAN_OR;
 }
-#line 4918 "Zend/zend_language_scanner.c"
+#line 4910 "Zend/zend_language_scanner.c"
 yy321:
 		YYDEBUG(321, *YYCURSOR);
 		++YYCURSOR;
 		YYDEBUG(322, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 1791 "Zend/zend_language_scanner.l"
+#line 1792 "Zend/zend_language_scanner.l"
 		{
 	return T_OR_EQUAL;
 }
-#line 4928 "Zend/zend_language_scanner.c"
+#line 4920 "Zend/zend_language_scanner.c"
 yy323:
 		YYDEBUG(323, *YYCURSOR);
 		++YYCURSOR;
 		YYDEBUG(324, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 1803 "Zend/zend_language_scanner.l"
+#line 1804 "Zend/zend_language_scanner.l"
 		{
 	return T_BOOLEAN_AND;
 }
-#line 4938 "Zend/zend_language_scanner.c"
+#line 4930 "Zend/zend_language_scanner.c"
 yy325:
 		YYDEBUG(325, *YYCURSOR);
 		++YYCURSOR;
 		YYDEBUG(326, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 1787 "Zend/zend_language_scanner.l"
+#line 1788 "Zend/zend_language_scanner.l"
 		{
 	return T_AND_EQUAL;
 }
-#line 4948 "Zend/zend_language_scanner.c"
+#line 4940 "Zend/zend_language_scanner.c"
 yy327:
 		YYDEBUG(327, *YYCURSOR);
 		++YYCURSOR;
@@ -4953,7 +4945,7 @@
 yy328:
 		YYDEBUG(328, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 2374 "Zend/zend_language_scanner.l"
+#line 2371 "Zend/zend_language_scanner.l"
 		{
 	if (CG(asp_tags)) {
 		BEGIN(INITIAL);
@@ -4963,21 +4955,20 @@
 		return T_CLOSE_TAG;  /* implicit ';' at php-end tag */
 	} else {
 		yyless(1);
-		yyleng = 1;
 		return yytext[0];
 	}
 }
-#line 4971 "Zend/zend_language_scanner.c"
+#line 4962 "Zend/zend_language_scanner.c"
 yy329:
 		YYDEBUG(329, *YYCURSOR);
 		++YYCURSOR;
 		YYDEBUG(330, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 1775 "Zend/zend_language_scanner.l"
+#line 1776 "Zend/zend_language_scanner.l"
 		{
 	return T_MOD_EQUAL;
 }
-#line 4981 "Zend/zend_language_scanner.c"
+#line 4972 "Zend/zend_language_scanner.c"
 yy331:
 		YYDEBUG(331, *YYCURSOR);
 		yych = *++YYCURSOR;
@@ -5008,11 +4999,11 @@
 		++YYCURSOR;
 		YYDEBUG(336, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 1771 "Zend/zend_language_scanner.l"
+#line 1772 "Zend/zend_language_scanner.l"
 		{
 	return T_CONCAT_EQUAL;
 }
-#line 5016 "Zend/zend_language_scanner.c"
+#line 5007 "Zend/zend_language_scanner.c"
 yy337:
 		YYDEBUG(337, *YYCURSOR);
 		yyaccept = 6;
@@ -5021,12 +5012,12 @@
 yy338:
 		YYDEBUG(338, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 2332 "Zend/zend_language_scanner.l"
+#line 2329 "Zend/zend_language_scanner.l"
 		{
 	BEGIN(ST_COMMENT);
 	yymore();
 }
-#line 5030 "Zend/zend_language_scanner.c"
+#line 5021 "Zend/zend_language_scanner.c"
 yy339:
 		YYDEBUG(339, *YYCURSOR);
 		yych = *++YYCURSOR;
@@ -5036,11 +5027,11 @@
 		++YYCURSOR;
 		YYDEBUG(341, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 1767 "Zend/zend_language_scanner.l"
+#line 1768 "Zend/zend_language_scanner.l"
 		{
 	return T_DIV_EQUAL;
 }
-#line 5044 "Zend/zend_language_scanner.c"
+#line 5035 "Zend/zend_language_scanner.c"
 yy342:
 		YYDEBUG(342, *YYCURSOR);
 		yych = *++YYCURSOR;
@@ -5059,54 +5050,54 @@
 		}
 		YYDEBUG(345, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 2326 "Zend/zend_language_scanner.l"
+#line 2323 "Zend/zend_language_scanner.l"
 		{
 	RESET_DOC_COMMENT();
 	BEGIN(ST_DOC_COMMENT);
 	yymore();
 }
-#line 5069 "Zend/zend_language_scanner.c"
+#line 5060 "Zend/zend_language_scanner.c"
 yy346:
 		YYDEBUG(346, *YYCURSOR);
 		++YYCURSOR;
 		YYDEBUG(347, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 1763 "Zend/zend_language_scanner.l"
+#line 1764 "Zend/zend_language_scanner.l"
 		{
 	return T_MUL_EQUAL;
 }
-#line 5079 "Zend/zend_language_scanner.c"
+#line 5070 "Zend/zend_language_scanner.c"
 yy348:
 		YYDEBUG(348, *YYCURSOR);
 		++YYCURSOR;
 		if ((yych = *YYCURSOR) == '=') goto yy352;
 		YYDEBUG(349, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 1823 "Zend/zend_language_scanner.l"
+#line 1824 "Zend/zend_language_scanner.l"
 		{
 	return T_SR;
 }
-#line 5090 "Zend/zend_language_scanner.c"
+#line 5081 "Zend/zend_language_scanner.c"
 yy350:
 		YYDEBUG(350, *YYCURSOR);
 		++YYCURSOR;
 		YYDEBUG(351, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 1751 "Zend/zend_language_scanner.l"
+#line 1752 "Zend/zend_language_scanner.l"
 		{
 	return T_IS_GREATER_OR_EQUAL;
 }
-#line 5100 "Zend/zend_language_scanner.c"
+#line 5091 "Zend/zend_language_scanner.c"
 yy352:
 		YYDEBUG(352, *YYCURSOR);
 		++YYCURSOR;
 		YYDEBUG(353, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 1783 "Zend/zend_language_scanner.l"
+#line 1784 "Zend/zend_language_scanner.l"
 		{
 	return T_SR_EQUAL;
 }
-#line 5110 "Zend/zend_language_scanner.c"
+#line 5101 "Zend/zend_language_scanner.c"
 yy354:
 		YYDEBUG(354, *YYCURSOR);
 		yyaccept = 7;
@@ -5117,11 +5108,11 @@
 yy355:
 		YYDEBUG(355, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 1819 "Zend/zend_language_scanner.l"
+#line 1820 "Zend/zend_language_scanner.l"
 		{
 	return T_SL;
 }
-#line 5125 "Zend/zend_language_scanner.c"
+#line 5116 "Zend/zend_language_scanner.c"
 yy356:
 		YYDEBUG(356, *YYCURSOR);
 		yych = *++YYCURSOR;
@@ -5133,22 +5124,22 @@
 		++YYCURSOR;
 		YYDEBUG(358, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 1747 "Zend/zend_language_scanner.l"
+#line 1748 "Zend/zend_language_scanner.l"
 		{
 	return T_IS_SMALLER_OR_EQUAL;
 }
-#line 5141 "Zend/zend_language_scanner.c"
+#line 5132 "Zend/zend_language_scanner.c"
 yy359:
 		YYDEBUG(359, *YYCURSOR);
 		++YYCURSOR;
 yy360:
 		YYDEBUG(360, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 1743 "Zend/zend_language_scanner.l"
+#line 1744 "Zend/zend_language_scanner.l"
 		{
 	return T_IS_NOT_EQUAL;
 }
-#line 5152 "Zend/zend_language_scanner.c"
+#line 5143 "Zend/zend_language_scanner.c"
 yy361:
 		YYDEBUG(361, *YYCURSOR);
 		yych = *++YYCURSOR;
@@ -5199,11 +5190,11 @@
 		++YYCURSOR;
 		YYDEBUG(369, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 1779 "Zend/zend_language_scanner.l"
+#line 1780 "Zend/zend_language_scanner.l"
 		{
 	return T_SL_EQUAL;
 }
-#line 5207 "Zend/zend_language_scanner.c"
+#line 5198 "Zend/zend_language_scanner.c"
 yy370:
 		YYDEBUG(370, *YYCURSOR);
 		++YYCURSOR;
@@ -5310,7 +5301,7 @@
 yy380:
 		YYDEBUG(380, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 2454 "Zend/zend_language_scanner.l"
+#line 2450 "Zend/zend_language_scanner.l"
 		{
 	char *s;
 
@@ -5330,7 +5321,7 @@
 	BEGIN(ST_START_HEREDOC);
 	return T_START_HEREDOC;
 }
-#line 5334 "Zend/zend_language_scanner.c"
+#line 5325 "Zend/zend_language_scanner.c"
 yy381:
 		YYDEBUG(381, *YYCURSOR);
 		yych = *++YYCURSOR;
@@ -5372,7 +5363,7 @@
 yy386:
 		YYDEBUG(386, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 2660 "Zend/zend_language_scanner.l"
+#line 2652 "Zend/zend_language_scanner.l"
 		{
 	int bprefix = (yytext[0] != '<') ? 1 : 0;
 	char *s;
@@ -5391,7 +5382,7 @@
 	BEGIN(ST_START_NOWDOC);
 	return T_START_NOWDOC;
 }
-#line 5395 "Zend/zend_language_scanner.c"
+#line 5386 "Zend/zend_language_scanner.c"
 yy387:
 		YYDEBUG(387, *YYCURSOR);
 		yych = *++YYCURSOR;
@@ -5405,31 +5396,31 @@
 		++YYCURSOR;
 		YYDEBUG(390, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 1735 "Zend/zend_language_scanner.l"
+#line 1736 "Zend/zend_language_scanner.l"
 		{
 	return T_IS_NOT_IDENTICAL;
 }
-#line 5413 "Zend/zend_language_scanner.c"
+#line 5404 "Zend/zend_language_scanner.c"
 yy391:
 		YYDEBUG(391, *YYCURSOR);
 		++YYCURSOR;
 		YYDEBUG(392, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 1755 "Zend/zend_language_scanner.l"
+#line 1756 "Zend/zend_language_scanner.l"
 		{
 	return T_PLUS_EQUAL;
 }
-#line 5423 "Zend/zend_language_scanner.c"
+#line 5414 "Zend/zend_language_scanner.c"
 yy393:
 		YYDEBUG(393, *YYCURSOR);
 		++YYCURSOR;
 		YYDEBUG(394, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 1723 "Zend/zend_language_scanner.l"
+#line 1724 "Zend/zend_language_scanner.l"
 		{
 	return T_INC;
 }
-#line 5433 "Zend/zend_language_scanner.c"
+#line 5424 "Zend/zend_language_scanner.c"
 yy395:
 		YYDEBUG(395, *YYCURSOR);
 		yych = *++YYCURSOR;
@@ -5448,42 +5439,42 @@
 		}
 		YYDEBUG(398, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 1715 "Zend/zend_language_scanner.l"
+#line 1716 "Zend/zend_language_scanner.l"
 		{
 	return T_LIST;
 }
-#line 5456 "Zend/zend_language_scanner.c"
+#line 5447 "Zend/zend_language_scanner.c"
 yy399:
 		YYDEBUG(399, *YYCURSOR);
 		++YYCURSOR;
 		if ((yych = *YYCURSOR) == '=') goto yy403;
 		YYDEBUG(400, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 1739 "Zend/zend_language_scanner.l"
+#line 1740 "Zend/zend_language_scanner.l"
 		{
 	return T_IS_EQUAL;
 }
-#line 5467 "Zend/zend_language_scanner.c"
+#line 5458 "Zend/zend_language_scanner.c"
 yy401:
 		YYDEBUG(401, *YYCURSOR);
 		++YYCURSOR;
 		YYDEBUG(402, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 1711 "Zend/zend_language_scanner.l"
+#line 1712 "Zend/zend_language_scanner.l"
 		{
 	return T_DOUBLE_ARROW;
 }
-#line 5477 "Zend/zend_language_scanner.c"
+#line 5468 "Zend/zend_language_scanner.c"
 yy403:
 		YYDEBUG(403, *YYCURSOR);
 		++YYCURSOR;
 		YYDEBUG(404, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 1731 "Zend/zend_language_scanner.l"
+#line 1732 "Zend/zend_language_scanner.l"
 		{
 	return T_IS_IDENTICAL;
 }
-#line 5487 "Zend/zend_language_scanner.c"
+#line 5478 "Zend/zend_language_scanner.c"
 yy405:
 		YYDEBUG(405, *YYCURSOR);
 		yych = *++YYCURSOR;
@@ -5575,7 +5566,7 @@
 		}
 		YYDEBUG(423, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 2063 "Zend/zend_language_scanner.l"
+#line 2064 "Zend/zend_language_scanner.l"
 		{
 	if (CG(current_namespace)) {
 		*zendlval = *CG(current_namespace);
@@ -5585,7 +5576,7 @@
 	}
 	return T_NS_C;
 }
-#line 5589 "Zend/zend_language_scanner.c"
+#line 5580 "Zend/zend_language_scanner.c"
 yy424:
 		YYDEBUG(424, *YYCURSOR);
 		yych = *++YYCURSOR;
@@ -5603,7 +5594,7 @@
 		}
 		YYDEBUG(428, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 2036 "Zend/zend_language_scanner.l"
+#line 2037 "Zend/zend_language_scanner.l"
 		{
 	char *filename = zend_get_compiled_filename(TSRMLS_C);
 	const size_t filename_len = strlen(filename);
@@ -5630,7 +5621,7 @@
 	zendlval->type = IS_STRING;
 	return T_DIR;
 }
-#line 5634 "Zend/zend_language_scanner.c"
+#line 5625 "Zend/zend_language_scanner.c"
 yy429:
 		YYDEBUG(429, *YYCURSOR);
 		yych = *++YYCURSOR;
@@ -5651,13 +5642,13 @@
 		}
 		YYDEBUG(434, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 2020 "Zend/zend_language_scanner.l"
+#line 2021 "Zend/zend_language_scanner.l"
 		{
 	Z_LVAL_P(zendlval) = CG(zend_lineno);
 	Z_TYPE_P(zendlval) = IS_LONG;
 	return T_LINE;
 }
-#line 5661 "Zend/zend_language_scanner.c"
+#line 5652 "Zend/zend_language_scanner.c"
 yy435:
 		YYDEBUG(435, *YYCURSOR);
 		yych = *++YYCURSOR;
@@ -5684,7 +5675,7 @@
 		}
 		YYDEBUG(442, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 1971 "Zend/zend_language_scanner.l"
+#line 1972 "Zend/zend_language_scanner.l"
 		{
 	zstr class_name = CG(active_class_entry) ? CG(active_class_entry)->name : NULL_ZSTR;
 	zstr func_name = CG(active_op_array)? CG(active_op_array)->function_name : NULL_ZSTR;
@@ -5733,7 +5724,7 @@
 	}
 	return T_METHOD_C;
 }
-#line 5737 "Zend/zend_language_scanner.c"
+#line 5728 "Zend/zend_language_scanner.c"
 yy443:
 		YYDEBUG(443, *YYCURSOR);
 		yych = *++YYCURSOR;
@@ -5771,7 +5762,7 @@
 		}
 		YYDEBUG(453, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 1956 "Zend/zend_language_scanner.l"
+#line 1957 "Zend/zend_language_scanner.l"
 		{
 	zstr func_name = NULL_ZSTR;
 
@@ -5786,7 +5777,7 @@
 	}
 	return T_FUNC_C;
 }
-#line 5790 "Zend/zend_language_scanner.c"
+#line 5781 "Zend/zend_language_scanner.c"
 yy454:
 		YYDEBUG(454, *YYCURSOR);
 		yych = *++YYCURSOR;
@@ -5804,7 +5795,7 @@
 		}
 		YYDEBUG(458, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 2026 "Zend/zend_language_scanner.l"
+#line 2027 "Zend/zend_language_scanner.l"
 		{
 	char *filename = zend_get_compiled_filename(TSRMLS_C);
 
@@ -5814,7 +5805,7 @@
 	ZVAL_RT_STRING(zendlval, filename, 1);
 	return T_FILE;
 }
-#line 5818 "Zend/zend_language_scanner.c"
+#line 5809 "Zend/zend_language_scanner.c"
 yy459:
 		YYDEBUG(459, *YYCURSOR);
 		yych = *++YYCURSOR;
@@ -5838,7 +5829,7 @@
 		}
 		YYDEBUG(465, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 1941 "Zend/zend_language_scanner.l"
+#line 1942 "Zend/zend_language_scanner.l"
 		{
 	zstr class_name = NULL_ZSTR;
 
@@ -5853,7 +5844,7 @@
 	}
 	return T_CLASS_C;
 }
-#line 5857 "Zend/zend_language_scanner.c"
+#line 5848 "Zend/zend_language_scanner.c"
 yy466:
 		YYDEBUG(466, *YYCURSOR);
 		yych = *++YYCURSOR;
@@ -5915,11 +5906,11 @@
 		}
 		YYDEBUG(478, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 1679 "Zend/zend_language_scanner.l"
+#line 1680 "Zend/zend_language_scanner.l"
 		{
 	return T_HALT_COMPILER;
 }
-#line 5923 "Zend/zend_language_scanner.c"
+#line 5914 "Zend/zend_language_scanner.c"
 yy479:
 		YYDEBUG(479, *YYCURSOR);
 		yych = *++YYCURSOR;
@@ -5939,11 +5930,11 @@
 		}
 		YYDEBUG(482, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 1663 "Zend/zend_language_scanner.l"
+#line 1664 "Zend/zend_language_scanner.l"
 		{
 	return T_USE;
 }
-#line 5947 "Zend/zend_language_scanner.c"
+#line 5938 "Zend/zend_language_scanner.c"
 yy483:
 		YYDEBUG(483, *YYCURSOR);
 		yych = *++YYCURSOR;
@@ -5962,11 +5953,11 @@
 		}
 		YYDEBUG(486, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 1707 "Zend/zend_language_scanner.l"
+#line 1708 "Zend/zend_language_scanner.l"
 		{
 	return T_UNSET;
 }
-#line 5970 "Zend/zend_language_scanner.c"
+#line 5961 "Zend/zend_language_scanner.c"
 yy487:
 		YYDEBUG(487, *YYCURSOR);
 		++YYCURSOR;
@@ -6138,11 +6129,11 @@
 		++YYCURSOR;
 		YYDEBUG(504, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 1603 "Zend/zend_language_scanner.l"
+#line 1604 "Zend/zend_language_scanner.l"
 		{
 	return T_INT_CAST;
 }
-#line 6146 "Zend/zend_language_scanner.c"
+#line 6137 "Zend/zend_language_scanner.c"
 yy505:
 		YYDEBUG(505, *YYCURSOR);
 		yych = *++YYCURSOR;
@@ -6186,11 +6177,11 @@
 		++YYCURSOR;
 		YYDEBUG(513, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 1607 "Zend/zend_language_scanner.l"
+#line 1608 "Zend/zend_language_scanner.l"
 		{
 	return T_DOUBLE_CAST;
 }
-#line 6194 "Zend/zend_language_scanner.c"
+#line 6185 "Zend/zend_language_scanner.c"
 yy514:
 		YYDEBUG(514, *YYCURSOR);
 		yych = *++YYCURSOR;
@@ -6260,11 +6251,11 @@
 		++YYCURSOR;
 		YYDEBUG(527, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 1611 "Zend/zend_language_scanner.l"
+#line 1612 "Zend/zend_language_scanner.l"
 		{
 	return T_STRING_CAST;
 }
-#line 6268 "Zend/zend_language_scanner.c"
+#line 6259 "Zend/zend_language_scanner.c"
 yy528:
 		YYDEBUG(528, *YYCURSOR);
 		yych = *++YYCURSOR;
@@ -6297,11 +6288,11 @@
 		++YYCURSOR;
 		YYDEBUG(534, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 1623 "Zend/zend_language_scanner.l"
+#line 1624 "Zend/zend_language_scanner.l"
 		{
 	return T_ARRAY_CAST;
 }
-#line 6305 "Zend/zend_language_scanner.c"
+#line 6296 "Zend/zend_language_scanner.c"
 yy535:
 		YYDEBUG(535, *YYCURSOR);
 		yych = *++YYCURSOR;
@@ -6339,11 +6330,11 @@
 		++YYCURSOR;
 		YYDEBUG(542, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 1627 "Zend/zend_language_scanner.l"
+#line 1628 "Zend/zend_language_scanner.l"
 		{
 	return T_OBJECT_CAST;
 }
-#line 6347 "Zend/zend_language_scanner.c"
+#line 6338 "Zend/zend_language_scanner.c"
 yy543:
 		YYDEBUG(543, *YYCURSOR);
 		yych = *++YYCURSOR;
@@ -6384,11 +6375,11 @@
 		++YYCURSOR;
 		YYDEBUG(550, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 1631 "Zend/zend_language_scanner.l"
+#line 1632 "Zend/zend_language_scanner.l"
 		{
 	return T_BOOL_CAST;
 }
-#line 6392 "Zend/zend_language_scanner.c"
+#line 6383 "Zend/zend_language_scanner.c"
 yy551:
 		YYDEBUG(551, *YYCURSOR);
 		yych = *++YYCURSOR;
@@ -6432,11 +6423,11 @@
 		++YYCURSOR;
 		YYDEBUG(559, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 1619 "Zend/zend_language_scanner.l"
+#line 1620 "Zend/zend_language_scanner.l"
 		{
 	return T_BINARY_CAST;
 }
-#line 6440 "Zend/zend_language_scanner.c"
+#line 6431 "Zend/zend_language_scanner.c"
 yy560:
 		YYDEBUG(560, *YYCURSOR);
 		yych = *++YYCURSOR;
@@ -6493,11 +6484,11 @@
 		++YYCURSOR;
 		YYDEBUG(569, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 1615 "Zend/zend_language_scanner.l"
+#line 1616 "Zend/zend_language_scanner.l"
 		{
 	return T_UNICODE_CAST;
 }
-#line 6501 "Zend/zend_language_scanner.c"
+#line 6492 "Zend/zend_language_scanner.c"
 yy570:
 		YYDEBUG(570, *YYCURSOR);
 		yych = *++YYCURSOR;
@@ -6520,11 +6511,11 @@
 		++YYCURSOR;
 		YYDEBUG(574, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 1635 "Zend/zend_language_scanner.l"
+#line 1636 "Zend/zend_language_scanner.l"
 		{
 	return T_UNSET_CAST;
 }
-#line 6528 "Zend/zend_language_scanner.c"
+#line 6519 "Zend/zend_language_scanner.c"
 yy575:
 		YYDEBUG(575, *YYCURSOR);
 		yych = *++YYCURSOR;
@@ -6538,11 +6529,11 @@
 		}
 		YYDEBUG(577, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 1599 "Zend/zend_language_scanner.l"
+#line 1600 "Zend/zend_language_scanner.l"
 		{
 	return T_VAR;
 }
-#line 6546 "Zend/zend_language_scanner.c"
+#line 6537 "Zend/zend_language_scanner.c"
 yy578:
 		YYDEBUG(578, *YYCURSOR);
 		yych = *++YYCURSOR;
@@ -6562,11 +6553,11 @@
 		}
 		YYDEBUG(581, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 1591 "Zend/zend_language_scanner.l"
+#line 1592 "Zend/zend_language_scanner.l"
 		{
 	return T_NEW;
 }
-#line 6570 "Zend/zend_language_scanner.c"
+#line 6561 "Zend/zend_language_scanner.c"
 yy582:
 		YYDEBUG(582, *YYCURSOR);
 		yych = *++YYCURSOR;
@@ -6605,21 +6596,21 @@
 		}
 		YYDEBUG(589, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 1659 "Zend/zend_language_scanner.l"
+#line 1660 "Zend/zend_language_scanner.l"
 		{
 	return T_NAMESPACE;
 }
-#line 6613 "Zend/zend_language_scanner.c"
+#line 6604 "Zend/zend_language_scanner.c"
 yy590:
 		YYDEBUG(590, *YYCURSOR);
 		++YYCURSOR;
 		YYDEBUG(591, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 1587 "Zend/zend_language_scanner.l"
+#line 1588 "Zend/zend_language_scanner.l"
 		{
 	return T_PAAMAYIM_NEKUDOTAYIM;
 }
-#line 6623 "Zend/zend_language_scanner.c"
+#line 6614 "Zend/zend_language_scanner.c"
 yy592:
 		YYDEBUG(592, *YYCURSOR);
 		++YYCURSOR;
@@ -6641,32 +6632,32 @@
 		++YYCURSOR;
 		YYDEBUG(595, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 1759 "Zend/zend_language_scanner.l"
+#line 1760 "Zend/zend_language_scanner.l"
 		{
 	return T_MINUS_EQUAL;
 }
-#line 6649 "Zend/zend_language_scanner.c"
+#line 6640 "Zend/zend_language_scanner.c"
 yy596:
 		YYDEBUG(596, *YYCURSOR);
 		++YYCURSOR;
 		YYDEBUG(597, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 1727 "Zend/zend_language_scanner.l"
+#line 1728 "Zend/zend_language_scanner.l"
 		{
 	return T_DEC;
 }
-#line 6659 "Zend/zend_language_scanner.c"
+#line 6650 "Zend/zend_language_scanner.c"
 yy598:
 		YYDEBUG(598, *YYCURSOR);
 		++YYCURSOR;
 		YYDEBUG(599, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 1553 "Zend/zend_language_scanner.l"
+#line 1554 "Zend/zend_language_scanner.l"
 		{
 	yy_push_state(ST_LOOKING_FOR_PROPERTY TSRMLS_CC);
 	return T_OBJECT_OPERATOR;
 }
-#line 6670 "Zend/zend_language_scanner.c"
+#line 6661 "Zend/zend_language_scanner.c"
 yy600:
 		YYDEBUG(600, *YYCURSOR);
 		yych = *++YYCURSOR;
@@ -6711,11 +6702,11 @@
 		}
 		YYDEBUG(606, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 1703 "Zend/zend_language_scanner.l"
+#line 1704 "Zend/zend_language_scanner.l"
 		{
 	return T_PUBLIC;
 }
-#line 6719 "Zend/zend_language_scanner.c"
+#line 6710 "Zend/zend_language_scanner.c"
 yy607:
 		YYDEBUG(607, *YYCURSOR);
 		yych = *++YYCURSOR;
@@ -6770,11 +6761,11 @@
 		}
 		YYDEBUG(615, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 1699 "Zend/zend_language_scanner.l"
+#line 1700 "Zend/zend_language_scanner.l"
 		{
 	return T_PROTECTED;
 }
-#line 6778 "Zend/zend_language_scanner.c"
+#line 6769 "Zend/zend_language_scanner.c"
 yy616:
 		YYDEBUG(616, *YYCURSOR);
 		yych = *++YYCURSOR;
@@ -6804,11 +6795,11 @@
 		}
 		YYDEBUG(621, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 1695 "Zend/zend_language_scanner.l"
+#line 1696 "Zend/zend_language_scanner.l"
 		{
 	return T_PRIVATE;
 }
-#line 6812 "Zend/zend_language_scanner.c"
+#line 6803 "Zend/zend_language_scanner.c"
 yy622:
 		YYDEBUG(622, *YYCURSOR);
 		++YYCURSOR;
@@ -6817,11 +6808,11 @@
 		}
 		YYDEBUG(623, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 1533 "Zend/zend_language_scanner.l"
+#line 1534 "Zend/zend_language_scanner.l"
 		{
 	return T_PRINT;
 }
-#line 6825 "Zend/zend_language_scanner.c"
+#line 6816 "Zend/zend_language_scanner.c"
 yy624:
 		YYDEBUG(624, *YYCURSOR);
 		yych = *++YYCURSOR;
@@ -6846,11 +6837,11 @@
 		}
 		YYDEBUG(628, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 1525 "Zend/zend_language_scanner.l"
+#line 1526 "Zend/zend_language_scanner.l"
 		{
 	return T_GOTO;
 }
-#line 6854 "Zend/zend_language_scanner.c"
+#line 6845 "Zend/zend_language_scanner.c"
 yy629:
 		YYDEBUG(629, *YYCURSOR);
 		yych = *++YYCURSOR;
@@ -6874,11 +6865,11 @@
 		}
 		YYDEBUG(633, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 1667 "Zend/zend_language_scanner.l"
+#line 1668 "Zend/zend_language_scanner.l"
 		{
 	return T_GLOBAL;
 }
-#line 6882 "Zend/zend_language_scanner.c"
+#line 6873 "Zend/zend_language_scanner.c"
 yy634:
 		YYDEBUG(634, *YYCURSOR);
 		yych = *++YYCURSOR;
@@ -6892,12 +6883,12 @@
 yy636:
 		YYDEBUG(636, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 2428 "Zend/zend_language_scanner.l"
+#line 2424 "Zend/zend_language_scanner.l"
 		{
 	BEGIN(ST_DOUBLE_QUOTES);
 	return T_BINARY_DOUBLE;
 }
-#line 6901 "Zend/zend_language_scanner.c"
+#line 6892 "Zend/zend_language_scanner.c"
 yy637:
 		YYDEBUG(637, *YYCURSOR);
 		++YYCURSOR;
@@ -6930,11 +6921,11 @@
 		}
 		YYDEBUG(643, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 1517 "Zend/zend_language_scanner.l"
+#line 1518 "Zend/zend_language_scanner.l"
 		{
 	return T_BREAK;
 }
-#line 6938 "Zend/zend_language_scanner.c"
+#line 6929 "Zend/zend_language_scanner.c"
 yy644:
 		YYDEBUG(644, *YYCURSOR);
 		++YYCURSOR;
@@ -6946,12 +6937,12 @@
 		++YYCURSOR;
 		YYDEBUG(646, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 2417 "Zend/zend_language_scanner.l"
+#line 2413 "Zend/zend_language_scanner.l"
 		{
 	zend_scan_binary_single_string(zendlval, yytext+2, yyleng-3 TSRMLS_CC);
 	return T_CONSTANT_ENCAPSED_STRING;
 }
-#line 6955 "Zend/zend_language_scanner.c"
+#line 6946 "Zend/zend_language_scanner.c"
 yy647:
 		YYDEBUG(647, *YYCURSOR);
 		++YYCURSOR;
@@ -7025,12 +7016,12 @@
 		++YYCURSOR;
 		YYDEBUG(655, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 2401 "Zend/zend_language_scanner.l"
+#line 2397 "Zend/zend_language_scanner.l"
 		{
 	zend_scan_binary_escape_string(zendlval, yytext+2, yyleng-3, '"' TSRMLS_CC);
 	return T_CONSTANT_ENCAPSED_STRING;
 }
-#line 7034 "Zend/zend_language_scanner.c"
+#line 7025 "Zend/zend_language_scanner.c"
 yy656:
 		YYDEBUG(656, *YYCURSOR);
 		++YYCURSOR;
@@ -7139,7 +7130,7 @@
 yy667:
 		YYDEBUG(667, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 2433 "Zend/zend_language_scanner.l"
+#line 2429 "Zend/zend_language_scanner.l"
 		{
 	char *s;
 
@@ -7159,7 +7150,7 @@
 	BEGIN(ST_START_HEREDOC);
 	return T_BINARY_HEREDOC;
 }
-#line 7163 "Zend/zend_language_scanner.c"
+#line 7154 "Zend/zend_language_scanner.c"
 yy668:
 		YYDEBUG(668, *YYCURSOR);
 		yych = *++YYCURSOR;
@@ -7199,11 +7190,11 @@
 		}
 		YYDEBUG(675, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 1501 "Zend/zend_language_scanner.l"
+#line 1502 "Zend/zend_language_scanner.l"
 		{
 	return T_SWITCH;
 }
-#line 7207 "Zend/zend_language_scanner.c"
+#line 7198 "Zend/zend_language_scanner.c"
 yy676:
 		YYDEBUG(676, *YYCURSOR);
 		yych = *++YYCURSOR;
@@ -7227,11 +7218,11 @@
 		}
 		YYDEBUG(680, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 1683 "Zend/zend_language_scanner.l"
+#line 1684 "Zend/zend_language_scanner.l"
 		{
 	return T_STATIC;
 }
-#line 7235 "Zend/zend_language_scanner.c"
+#line 7226 "Zend/zend_language_scanner.c"
 yy681:
 		YYDEBUG(681, *YYCURSOR);
 		yych = *++YYCURSOR;
@@ -7258,11 +7249,11 @@
 		}
 		YYDEBUG(685, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 1497 "Zend/zend_language_scanner.l"
+#line 1498 "Zend/zend_language_scanner.l"
 		{
 	return T_AS;
 }
-#line 7266 "Zend/zend_language_scanner.c"
+#line 7257 "Zend/zend_language_scanner.c"
 yy686:
 		YYDEBUG(686, *YYCURSOR);
 		yych = *++YYCURSOR;
@@ -7281,11 +7272,11 @@
 		}
 		YYDEBUG(689, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 1719 "Zend/zend_language_scanner.l"
+#line 1720 "Zend/zend_language_scanner.l"
 		{
 	return T_ARRAY;
 }
-#line 7289 "Zend/zend_language_scanner.c"
+#line 7280 "Zend/zend_language_scanner.c"
 yy690:
 		YYDEBUG(690, *YYCURSOR);
 		++YYCURSOR;
@@ -7294,11 +7285,11 @@
 		}
 		YYDEBUG(691, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 1811 "Zend/zend_language_scanner.l"
+#line 1812 "Zend/zend_language_scanner.l"
 		{
 	return T_LOGICAL_AND;
 }
-#line 7302 "Zend/zend_language_scanner.c"
+#line 7293 "Zend/zend_language_scanner.c"
 yy692:
 		YYDEBUG(692, *YYCURSOR);
 		yych = *++YYCURSOR;
@@ -7332,11 +7323,11 @@
 		}
 		YYDEBUG(698, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 1687 "Zend/zend_language_scanner.l"
+#line 1688 "Zend/zend_language_scanner.l"
 		{
 	return T_ABSTRACT;
 }
-#line 7340 "Zend/zend_language_scanner.c"
+#line 7331 "Zend/zend_language_scanner.c"
 yy699:
 		YYDEBUG(699, *YYCURSOR);
 		yych = *++YYCURSOR;
@@ -7360,11 +7351,11 @@
 		}
 		YYDEBUG(703, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 1457 "Zend/zend_language_scanner.l"
+#line 1458 "Zend/zend_language_scanner.l"
 		{
 	return T_WHILE;
 }
-#line 7368 "Zend/zend_language_scanner.c"
+#line 7359 "Zend/zend_language_scanner.c"
 yy704:
 		YYDEBUG(704, *YYCURSOR);
 		++YYCURSOR;
@@ -7373,11 +7364,11 @@
 		}
 		YYDEBUG(705, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 1441 "Zend/zend_language_scanner.l"
+#line 1442 "Zend/zend_language_scanner.l"
 		{
 	return T_IF;
 }
-#line 7381 "Zend/zend_language_scanner.c"
+#line 7372 "Zend/zend_language_scanner.c"
 yy706:
 		YYDEBUG(706, *YYCURSOR);
 		yych = *++YYCURSOR;
@@ -7429,11 +7420,11 @@
 		}
 		YYDEBUG(712, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 1671 "Zend/zend_language_scanner.l"
+#line 1672 "Zend/zend_language_scanner.l"
 		{
 	return T_ISSET;
 }
-#line 7437 "Zend/zend_language_scanner.c"
+#line 7428 "Zend/zend_language_scanner.c"
 yy713:
 		YYDEBUG(713, *YYCURSOR);
 		yych = *++YYCURSOR;
@@ -7487,11 +7478,11 @@
 yy720:
 		YYDEBUG(720, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 1643 "Zend/zend_language_scanner.l"
+#line 1644 "Zend/zend_language_scanner.l"
 		{
 	return T_INCLUDE;
 }
-#line 7495 "Zend/zend_language_scanner.c"
+#line 7486 "Zend/zend_language_scanner.c"
 yy721:
 		YYDEBUG(721, *YYCURSOR);
 		yych = *++YYCURSOR;
@@ -7520,11 +7511,11 @@
 		}
 		YYDEBUG(726, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 1647 "Zend/zend_language_scanner.l"
+#line 1648 "Zend/zend_language_scanner.l"
 		{
 	return T_INCLUDE_ONCE;
 }
-#line 7528 "Zend/zend_language_scanner.c"
+#line 7519 "Zend/zend_language_scanner.c"
 yy727:
 		YYDEBUG(727, *YYCURSOR);
 		yych = *++YYCURSOR;
@@ -7558,11 +7549,11 @@
 		}
 		YYDEBUG(733, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 1541 "Zend/zend_language_scanner.l"
+#line 1542 "Zend/zend_language_scanner.l"
 		{
 	return T_INTERFACE;
 }
-#line 7566 "Zend/zend_language_scanner.c"
+#line 7557 "Zend/zend_language_scanner.c"
 yy734:
 		YYDEBUG(734, *YYCURSOR);
 		yych = *++YYCURSOR;
@@ -7601,11 +7592,11 @@
 		}
 		YYDEBUG(741, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 1493 "Zend/zend_language_scanner.l"
+#line 1494 "Zend/zend_language_scanner.l"
 		{
 	return T_INSTANCEOF;
 }
-#line 7609 "Zend/zend_language_scanner.c"
+#line 7600 "Zend/zend_language_scanner.c"
 yy742:
 		YYDEBUG(742, *YYCURSOR);
 		yych = *++YYCURSOR;
@@ -7649,11 +7640,11 @@
 		}
 		YYDEBUG(750, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 1549 "Zend/zend_language_scanner.l"
+#line 1550 "Zend/zend_language_scanner.l"
 		{
 	return T_IMPLEMENTS;
 }
-#line 7657 "Zend/zend_language_scanner.c"
+#line 7648 "Zend/zend_language_scanner.c"
 yy751:
 		YYDEBUG(751, *YYCURSOR);
 		yych = *++YYCURSOR;
@@ -7673,11 +7664,11 @@
 		}
 		YYDEBUG(754, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 1429 "Zend/zend_language_scanner.l"
+#line 1430 "Zend/zend_language_scanner.l"
 		{
 	return T_TRY;
 }
-#line 7681 "Zend/zend_language_scanner.c"
+#line 7672 "Zend/zend_language_scanner.c"
 yy755:
 		YYDEBUG(755, *YYCURSOR);
 		yych = *++YYCURSOR;
@@ -7696,11 +7687,11 @@
 		}
 		YYDEBUG(758, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 1437 "Zend/zend_language_scanner.l"
+#line 1438 "Zend/zend_language_scanner.l"
 		{
 	return T_THROW;
 }
-#line 7704 "Zend/zend_language_scanner.c"
+#line 7695 "Zend/zend_language_scanner.c"
 yy759:
 		YYDEBUG(759, *YYCURSOR);
 		yych = *++YYCURSOR;
@@ -7761,11 +7752,11 @@
 yy766:
 		YYDEBUG(766, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 1651 "Zend/zend_language_scanner.l"
+#line 1652 "Zend/zend_language_scanner.l"
 		{
 	return T_REQUIRE;
 }
-#line 7769 "Zend/zend_language_scanner.c"
+#line 7760 "Zend/zend_language_scanner.c"
 yy767:
 		YYDEBUG(767, *YYCURSOR);
 		yych = *++YYCURSOR;
@@ -7794,11 +7785,11 @@
 		}
 		YYDEBUG(772, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 1655 "Zend/zend_language_scanner.l"
+#line 1656 "Zend/zend_language_scanner.l"
 		{
 	return T_REQUIRE_ONCE;
 }
-#line 7802 "Zend/zend_language_scanner.c"
+#line 7793 "Zend/zend_language_scanner.c"
 yy773:
 		YYDEBUG(773, *YYCURSOR);
 		yych = *++YYCURSOR;
@@ -7817,11 +7808,11 @@
 		}
 		YYDEBUG(776, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 1425 "Zend/zend_language_scanner.l"
+#line 1426 "Zend/zend_language_scanner.l"
 		{
 	return T_RETURN;
 }
-#line 7825 "Zend/zend_language_scanner.c"
+#line 7816 "Zend/zend_language_scanner.c"
 yy777:
 		YYDEBUG(777, *YYCURSOR);
 		yych = *++YYCURSOR;
@@ -7902,11 +7893,11 @@
 		}
 		YYDEBUG(787, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 1521 "Zend/zend_language_scanner.l"
+#line 1522 "Zend/zend_language_scanner.l"
 		{
 	return T_CONTINUE;
 }
-#line 7910 "Zend/zend_language_scanner.c"
+#line 7901 "Zend/zend_language_scanner.c"
 yy788:
 		YYDEBUG(788, *YYCURSOR);
 		++YYCURSOR;
@@ -7915,11 +7906,11 @@
 		}
 		YYDEBUG(789, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 1421 "Zend/zend_language_scanner.l"
+#line 1422 "Zend/zend_language_scanner.l"
 		{
 	return T_CONST;
 }
-#line 7923 "Zend/zend_language_scanner.c"
+#line 7914 "Zend/zend_language_scanner.c"
 yy790:
 		YYDEBUG(790, *YYCURSOR);
 		yych = *++YYCURSOR;
@@ -7944,11 +7935,11 @@
 		}
 		YYDEBUG(794, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 1595 "Zend/zend_language_scanner.l"
+#line 1596 "Zend/zend_language_scanner.l"
 		{
 	return T_CLONE;
 }
-#line 7952 "Zend/zend_language_scanner.c"
+#line 7943 "Zend/zend_language_scanner.c"
 yy795:
 		YYDEBUG(795, *YYCURSOR);
 		yych = *++YYCURSOR;
@@ -7962,11 +7953,11 @@
 		}
 		YYDEBUG(797, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 1537 "Zend/zend_language_scanner.l"
+#line 1538 "Zend/zend_language_scanner.l"
 		{
 	return T_CLASS;
 }
-#line 7970 "Zend/zend_language_scanner.c"
+#line 7961 "Zend/zend_language_scanner.c"
 yy798:
 		YYDEBUG(798, *YYCURSOR);
 		yych = *++YYCURSOR;
@@ -7986,11 +7977,11 @@
 		}
 		YYDEBUG(801, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 1509 "Zend/zend_language_scanner.l"
+#line 1510 "Zend/zend_language_scanner.l"
 		{
 	return T_CASE;
 }
-#line 7994 "Zend/zend_language_scanner.c"
+#line 7985 "Zend/zend_language_scanner.c"
 yy802:
 		YYDEBUG(802, *YYCURSOR);
 		yych = *++YYCURSOR;
@@ -8004,11 +7995,11 @@
 		}
 		YYDEBUG(804, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 1433 "Zend/zend_language_scanner.l"
+#line 1434 "Zend/zend_language_scanner.l"
 		{
 	return T_CATCH;
 }
-#line 8012 "Zend/zend_language_scanner.c"
+#line 8003 "Zend/zend_language_scanner.c"
 yy805:
 		YYDEBUG(805, *YYCURSOR);
 		yych = *++YYCURSOR;
@@ -8059,11 +8050,11 @@
 		}
 		YYDEBUG(814, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 1417 "Zend/zend_language_scanner.l"
+#line 1418 "Zend/zend_language_scanner.l"
 		{
 	return T_FUNCTION;
 }
-#line 8067 "Zend/zend_language_scanner.c"
+#line 8058 "Zend/zend_language_scanner.c"
 yy815:
 		YYDEBUG(815, *YYCURSOR);
 		++YYCURSOR;
@@ -8087,11 +8078,11 @@
 yy816:
 		YYDEBUG(816, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 1469 "Zend/zend_language_scanner.l"
+#line 1470 "Zend/zend_language_scanner.l"
 		{
 	return T_FOR;
 }
-#line 8095 "Zend/zend_language_scanner.c"
+#line 8086 "Zend/zend_language_scanner.c"
 yy817:
 		YYDEBUG(817, *YYCURSOR);
 		yych = *++YYCURSOR;
@@ -8115,11 +8106,11 @@
 		}
 		YYDEBUG(821, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 1477 "Zend/zend_language_scanner.l"
+#line 1478 "Zend/zend_language_scanner.l"
 		{
 	return T_FOREACH;
 }
-#line 8123 "Zend/zend_language_scanner.c"
+#line 8114 "Zend/zend_language_scanner.c"
 yy822:
 		YYDEBUG(822, *YYCURSOR);
 		yych = *++YYCURSOR;
@@ -8138,11 +8129,11 @@
 		}
 		YYDEBUG(825, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 1691 "Zend/zend_language_scanner.l"
+#line 1692 "Zend/zend_language_scanner.l"
 		{
 	return T_FINAL;
 }
-#line 8146 "Zend/zend_language_scanner.c"
+#line 8137 "Zend/zend_language_scanner.c"
 yy826:
 		YYDEBUG(826, *YYCURSOR);
 		yych = *++YYCURSOR;
@@ -8173,11 +8164,11 @@
 		}
 		YYDEBUG(829, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 1465 "Zend/zend_language_scanner.l"
+#line 1466 "Zend/zend_language_scanner.l"
 		{
 	return T_DO;
 }
-#line 8181 "Zend/zend_language_scanner.c"
+#line 8172 "Zend/zend_language_scanner.c"
 yy830:
 		YYDEBUG(830, *YYCURSOR);
 		++YYCURSOR;
@@ -8186,11 +8177,11 @@
 		}
 		YYDEBUG(831, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 1413 "Zend/zend_language_scanner.l"
+#line 1414 "Zend/zend_language_scanner.l"
 		{
 	return T_EXIT;
 }
-#line 8194 "Zend/zend_language_scanner.c"
+#line 8185 "Zend/zend_language_scanner.c"
 yy832:
 		YYDEBUG(832, *YYCURSOR);
 		yych = *++YYCURSOR;
@@ -8225,11 +8216,11 @@
 		}
 		YYDEBUG(838, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 1513 "Zend/zend_language_scanner.l"
+#line 1514 "Zend/zend_language_scanner.l"
 		{
 	return T_DEFAULT;
 }
-#line 8233 "Zend/zend_language_scanner.c"
+#line 8224 "Zend/zend_language_scanner.c"
 yy839:
 		YYDEBUG(839, *YYCURSOR);
 		yych = *++YYCURSOR;
@@ -8253,11 +8244,11 @@
 		}
 		YYDEBUG(843, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 1485 "Zend/zend_language_scanner.l"
+#line 1486 "Zend/zend_language_scanner.l"
 		{
 	return T_DECLARE;
 }
-#line 8261 "Zend/zend_language_scanner.c"
+#line 8252 "Zend/zend_language_scanner.c"
 yy844:
 		YYDEBUG(844, *YYCURSOR);
 		yych = *++YYCURSOR;
@@ -8337,11 +8328,11 @@
 		}
 		YYDEBUG(856, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 1545 "Zend/zend_language_scanner.l"
+#line 1546 "Zend/zend_language_scanner.l"
 		{
 	return T_EXTENDS;
 }
-#line 8345 "Zend/zend_language_scanner.c"
+#line 8336 "Zend/zend_language_scanner.c"
 yy857:
 		YYDEBUG(857, *YYCURSOR);
 		++YYCURSOR;
@@ -8350,11 +8341,11 @@
 		}
 		YYDEBUG(858, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 1409 "Zend/zend_language_scanner.l"
+#line 1410 "Zend/zend_language_scanner.l"
 		{
 	return T_EXIT;
 }
-#line 8358 "Zend/zend_language_scanner.c"
+#line 8349 "Zend/zend_language_scanner.c"
 yy859:
 		YYDEBUG(859, *YYCURSOR);
 		yych = *++YYCURSOR;
@@ -8368,11 +8359,11 @@
 		}
 		YYDEBUG(861, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 1639 "Zend/zend_language_scanner.l"
+#line 1640 "Zend/zend_language_scanner.l"
 		{
 	return T_EVAL;
 }
-#line 8376 "Zend/zend_language_scanner.c"
+#line 8367 "Zend/zend_language_scanner.c"
 yy862:
 		YYDEBUG(862, *YYCURSOR);
 		yych = *++YYCURSOR;
@@ -8442,11 +8433,11 @@
 		}
 		YYDEBUG(872, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 1461 "Zend/zend_language_scanner.l"
+#line 1462 "Zend/zend_language_scanner.l"
 		{
 	return T_ENDWHILE;
 }
-#line 8450 "Zend/zend_language_scanner.c"
+#line 8441 "Zend/zend_language_scanner.c"
 yy873:
 		YYDEBUG(873, *YYCURSOR);
 		yych = *++YYCURSOR;
@@ -8475,11 +8466,11 @@
 		}
 		YYDEBUG(878, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 1505 "Zend/zend_language_scanner.l"
+#line 1506 "Zend/zend_language_scanner.l"
 		{
 	return T_ENDSWITCH;
 }
-#line 8483 "Zend/zend_language_scanner.c"
+#line 8474 "Zend/zend_language_scanner.c"
 yy879:
 		YYDEBUG(879, *YYCURSOR);
 		++YYCURSOR;
@@ -8488,11 +8479,11 @@
 		}
 		YYDEBUG(880, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 1449 "Zend/zend_language_scanner.l"
+#line 1450 "Zend/zend_language_scanner.l"
 		{
 	return T_ENDIF;
 }
-#line 8496 "Zend/zend_language_scanner.c"
+#line 8487 "Zend/zend_language_scanner.c"
 yy881:
 		YYDEBUG(881, *YYCURSOR);
 		yych = *++YYCURSOR;
@@ -8521,11 +8512,11 @@
 yy883:
 		YYDEBUG(883, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 1473 "Zend/zend_language_scanner.l"
+#line 1474 "Zend/zend_language_scanner.l"
 		{
 	return T_ENDFOR;
 }
-#line 8529 "Zend/zend_language_scanner.c"
+#line 8520 "Zend/zend_language_scanner.c"
 yy884:
 		YYDEBUG(884, *YYCURSOR);
 		yych = *++YYCURSOR;
@@ -8549,11 +8540,11 @@
 		}
 		YYDEBUG(888, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 1481 "Zend/zend_language_scanner.l"
+#line 1482 "Zend/zend_language_scanner.l"
 		{
 	return T_ENDFOREACH;
 }
-#line 8557 "Zend/zend_language_scanner.c"
+#line 8548 "Zend/zend_language_scanner.c"
 yy889:
 		YYDEBUG(889, *YYCURSOR);
 		yych = *++YYCURSOR;
@@ -8587,11 +8578,11 @@
 		}
 		YYDEBUG(895, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 1489 "Zend/zend_language_scanner.l"
+#line 1490 "Zend/zend_language_scanner.l"
 		{
 	return T_ENDDECLARE;
 }
-#line 8595 "Zend/zend_language_scanner.c"
+#line 8586 "Zend/zend_language_scanner.c"
 yy896:
 		YYDEBUG(896, *YYCURSOR);
 		yych = *++YYCURSOR;
@@ -8610,11 +8601,11 @@
 		}
 		YYDEBUG(899, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 1675 "Zend/zend_language_scanner.l"
+#line 1676 "Zend/zend_language_scanner.l"
 		{
 	return T_EMPTY;
 }
-#line 8618 "Zend/zend_language_scanner.c"
+#line 8609 "Zend/zend_language_scanner.c"
 yy900:
 		YYDEBUG(900, *YYCURSOR);
 		yych = *++YYCURSOR;
@@ -8643,11 +8634,11 @@
 yy902:
 		YYDEBUG(902, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 1453 "Zend/zend_language_scanner.l"
+#line 1454 "Zend/zend_language_scanner.l"
 		{
 	return T_ELSE;
 }
-#line 8651 "Zend/zend_language_scanner.c"
+#line 8642 "Zend/zend_language_scanner.c"
 yy903:
 		YYDEBUG(903, *YYCURSOR);
 		yych = *++YYCURSOR;
@@ -8661,11 +8652,11 @@
 		}
 		YYDEBUG(905, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 1445 "Zend/zend_language_scanner.l"
+#line 1446 "Zend/zend_language_scanner.l"
 		{
 	return T_ELSEIF;
 }
-#line 8669 "Zend/zend_language_scanner.c"
+#line 8660 "Zend/zend_language_scanner.c"
 yy906:
 		YYDEBUG(906, *YYCURSOR);
 		yych = *++YYCURSOR;
@@ -8679,11 +8670,11 @@
 		}
 		YYDEBUG(908, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 1529 "Zend/zend_language_scanner.l"
+#line 1530 "Zend/zend_language_scanner.l"
 		{
 	return T_ECHO;
 }
-#line 8687 "Zend/zend_language_scanner.c"
+#line 8678 "Zend/zend_language_scanner.c"
 	}
 /* *********************************** */
 yyc_ST_LOOKING_FOR_PROPERTY:
@@ -8756,7 +8747,7 @@
 yy912:
 		YYDEBUG(912, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 1558 "Zend/zend_language_scanner.l"
+#line 1559 "Zend/zend_language_scanner.l"
 		{
 	Z_STRVAL_P(zendlval) = yytext; /* no copying - intentional */
 	Z_STRLEN_P(zendlval) = yyleng;
@@ -8764,7 +8755,7 @@
 	HANDLE_NEWLINES(yytext, yyleng);
 	return T_WHITESPACE;
 }
-#line 8768 "Zend/zend_language_scanner.c"
+#line 8759 "Zend/zend_language_scanner.c"
 yy913:
 		YYDEBUG(913, *YYCURSOR);
 		++YYCURSOR;
@@ -8772,13 +8763,13 @@
 yy914:
 		YYDEBUG(914, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 1581 "Zend/zend_language_scanner.l"
+#line 1582 "Zend/zend_language_scanner.l"
 		{
 	yyless(0);
 	yy_pop_state(TSRMLS_C);
 	goto restart;
 }
-#line 8782 "Zend/zend_language_scanner.c"
+#line 8773 "Zend/zend_language_scanner.c"
 yy915:
 		YYDEBUG(915, *YYCURSOR);
 		++YYCURSOR;
@@ -8787,7 +8778,7 @@
 yy916:
 		YYDEBUG(916, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 1570 "Zend/zend_language_scanner.l"
+#line 1571 "Zend/zend_language_scanner.l"
 		{
 	yy_pop_state(TSRMLS_C);
 	if (!zend_copy_scanner_string(zendlval, yytext, yyleng, UG(unicode)?IS_UNICODE:IS_STRING, SCNG(output_conv) TSRMLS_CC)) {
@@ -8798,7 +8789,7 @@
 	}
 	return T_STRING;
 }
-#line 8802 "Zend/zend_language_scanner.c"
+#line 8793 "Zend/zend_language_scanner.c"
 yy917:
 		YYDEBUG(917, *YYCURSOR);
 		yych = *++YYCURSOR;
@@ -8819,11 +8810,11 @@
 		++YYCURSOR;
 		YYDEBUG(921, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 1566 "Zend/zend_language_scanner.l"
+#line 1567 "Zend/zend_language_scanner.l"
 		{
 	return T_OBJECT_OPERATOR;
 }
-#line 8827 "Zend/zend_language_scanner.c"
+#line 8818 "Zend/zend_language_scanner.c"
 yy922:
 		YYDEBUG(922, *YYCURSOR);
 		++YYCURSOR;
@@ -8893,7 +8884,7 @@
 yy927:
 		YYDEBUG(927, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 1853 "Zend/zend_language_scanner.l"
+#line 1854 "Zend/zend_language_scanner.l"
 		{
 	if (!zend_copy_scanner_string(zendlval, yytext, yyleng, UG(unicode)?IS_UNICODE:IS_STRING, SCNG(output_conv) TSRMLS_CC)) {
 		return 0;
@@ -8905,20 +8896,20 @@
 	yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
 	return T_STRING_VARNAME;
 }
-#line 8909 "Zend/zend_language_scanner.c"
+#line 8900 "Zend/zend_language_scanner.c"
 yy928:
 		YYDEBUG(928, *YYCURSOR);
 		++YYCURSOR;
 		YYDEBUG(929, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 1866 "Zend/zend_language_scanner.l"
+#line 1867 "Zend/zend_language_scanner.l"
 		{
 	yyless(0);
 	yy_pop_state(TSRMLS_C);
 	yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
 	goto restart;
 }
-#line 8922 "Zend/zend_language_scanner.c"
+#line 8913 "Zend/zend_language_scanner.c"
 yy930:
 		YYDEBUG(930, *YYCURSOR);
 		++YYCURSOR;
@@ -9380,7 +9371,7 @@
 		++YYCURSOR;
 		YYDEBUG(968, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 2709 "Zend/zend_language_scanner.l"
+#line 2701 "Zend/zend_language_scanner.l"
 		{
 	char *end = yytext + yyleng - 1;
 
@@ -9424,7 +9415,7 @@
 		yymore();
 	}
 }
-#line 9428 "Zend/zend_language_scanner.c"
+#line 9419 "Zend/zend_language_scanner.c"
 	}
 /* *********************************** */
 yyc_ST_ONE_LINE_COMMENT:
@@ -9481,11 +9472,11 @@
 yy972:
 		YYDEBUG(972, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 2281 "Zend/zend_language_scanner.l"
+#line 2279 "Zend/zend_language_scanner.l"
 		{
 	yymore();
 }
-#line 9489 "Zend/zend_language_scanner.c"
+#line 9480 "Zend/zend_language_scanner.c"
 yy973:
 		YYDEBUG(973, *YYCURSOR);
 		yych = *++YYCURSOR;
@@ -9508,7 +9499,7 @@
 yy977:
 		YYDEBUG(977, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 2285 "Zend/zend_language_scanner.l"
+#line 2283 "Zend/zend_language_scanner.l"
 		{
 	switch (yytext[yyleng-1]) {
 		case '?': case '%': case '>':
@@ -9526,7 +9517,7 @@
 			return T_COMMENT;
 	}
 }
-#line 9530 "Zend/zend_language_scanner.c"
+#line 9521 "Zend/zend_language_scanner.c"
 yy978:
 		YYDEBUG(978, *YYCURSOR);
 		yych = *++YYCURSOR;
@@ -9539,7 +9530,7 @@
 		++YYCURSOR;
 		YYDEBUG(981, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 2303 "Zend/zend_language_scanner.l"
+#line 2301 "Zend/zend_language_scanner.l"
 		{
 	Z_STRVAL_P(zendlval) = yytext; /* no copying - intentional */
 	Z_STRLEN_P(zendlval) = yyleng;
@@ -9548,7 +9539,7 @@
 	CG(zend_lineno)++;
 	return T_COMMENT;
 }
-#line 9552 "Zend/zend_language_scanner.c"
+#line 9543 "Zend/zend_language_scanner.c"
 yy982:
 		YYDEBUG(982, *YYCURSOR);
 		yych = *++YYCURSOR;
@@ -9558,21 +9549,20 @@
 		++YYCURSOR;
 		YYDEBUG(984, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 2312 "Zend/zend_language_scanner.l"
+#line 2310 "Zend/zend_language_scanner.l"
 		{
     if (CG(asp_tags) || yytext[yyleng-2] != '%') { /* asp comment? */
 		Z_STRVAL_P(zendlval) = yytext; /* no copying - intentional */
 		Z_STRLEN_P(zendlval) = yyleng-2;
 		Z_TYPE_P(zendlval) = IS_STRING;
-		yyleng -= 2;
-		yyless(yyleng);
+		yyless(yyleng - 2);
 		BEGIN(ST_IN_SCRIPTING);
 		return T_COMMENT;
 	} else {
 		yymore();
 	}
 }
-#line 9576 "Zend/zend_language_scanner.c"
+#line 9566 "Zend/zend_language_scanner.c"
 	}
 /* *********************************** */
 yyc_ST_START_HEREDOC:
@@ -9629,13 +9619,13 @@
 yy988:
 		YYDEBUG(988, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 2481 "Zend/zend_language_scanner.l"
+#line 2477 "Zend/zend_language_scanner.l"
 		{
 	yyless(0);
 	BEGIN(ST_HEREDOC);
 	goto restart;
 }
-#line 9639 "Zend/zend_language_scanner.c"
+#line 9629 "Zend/zend_language_scanner.c"
 yy989:
 		YYDEBUG(989, *YYCURSOR);
 		yyaccept = 0;
@@ -9680,7 +9670,7 @@
 		++YYCURSOR;
 		YYDEBUG(995, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 2487 "Zend/zend_language_scanner.l"
+#line 2483 "Zend/zend_language_scanner.l"
 		{
 	int label_len = yyleng - 1;
 
@@ -9689,7 +9679,6 @@
 	}
 
 	yyless(label_len);
-	yyleng = label_len;
 
 	if (label_len==CG(heredoc_len) && !memcmp(yytext, CG(heredoc), label_len)) {
 		Z_STRVAL_P(zendlval) = CG(heredoc);
@@ -9703,7 +9692,7 @@
 		yymore();
 	}
 }
-#line 9707 "Zend/zend_language_scanner.c"
+#line 9696 "Zend/zend_language_scanner.c"
 	}
 /* *********************************** */
 yyc_ST_START_NOWDOC:
@@ -9760,13 +9749,13 @@
 yy999:
 		YYDEBUG(999, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 2679 "Zend/zend_language_scanner.l"
+#line 2671 "Zend/zend_language_scanner.l"
 		{
 	yyless(0);
 	BEGIN(ST_NOWDOC);
 	goto restart;
 }
-#line 9770 "Zend/zend_language_scanner.c"
+#line 9759 "Zend/zend_language_scanner.c"
 yy1000:
 		YYDEBUG(1000, *YYCURSOR);
 		yyaccept = 0;
@@ -9811,7 +9800,7 @@
 		++YYCURSOR;
 		YYDEBUG(1006, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 2685 "Zend/zend_language_scanner.l"
+#line 2677 "Zend/zend_language_scanner.l"
 		{
 	int label_len = yyleng - 1;
 
@@ -9835,7 +9824,7 @@
 		yymore();
 	}
 }
-#line 9839 "Zend/zend_language_scanner.c"
+#line 9828 "Zend/zend_language_scanner.c"
 	}
 /* *********************************** */
 yyc_ST_VAR_OFFSET:
@@ -9936,7 +9925,7 @@
 yy1010:
 		YYDEBUG(1010, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 1916 "Zend/zend_language_scanner.l"
+#line 1917 "Zend/zend_language_scanner.l"
 		{ /* Offset could be treated as a long */
 	if (yyleng < MAX_LENGTH_OF_LONG - 1 || (yyleng == MAX_LENGTH_OF_LONG - 1 && strcmp(yytext, long_min_digits) < 0)) {
 		Z_LVAL_P(zendlval) = strtol(yytext, NULL, 10);
@@ -9948,7 +9937,7 @@
 	}
 	return T_NUM_STRING;
 }
-#line 9952 "Zend/zend_language_scanner.c"
+#line 9941 "Zend/zend_language_scanner.c"
 yy1011:
 		YYDEBUG(1011, *YYCURSOR);
 		yych = *++YYCURSOR;
@@ -9968,23 +9957,23 @@
 yy1013:
 		YYDEBUG(1013, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 2244 "Zend/zend_language_scanner.l"
+#line 2243 "Zend/zend_language_scanner.l"
 		{
 	/* Only '[' can be valid, but returning other tokens will allow a more explicit parse error */
 	return yytext[0];
 }
-#line 9977 "Zend/zend_language_scanner.c"
+#line 9966 "Zend/zend_language_scanner.c"
 yy1014:
 		YYDEBUG(1014, *YYCURSOR);
 		++YYCURSOR;
 		YYDEBUG(1015, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 2239 "Zend/zend_language_scanner.l"
+#line 2238 "Zend/zend_language_scanner.l"
 		{
 	yy_pop_state(TSRMLS_C);
 	return ']';
 }
-#line 9988 "Zend/zend_language_scanner.c"
+#line 9977 "Zend/zend_language_scanner.c"
 yy1016:
 		YYDEBUG(1016, *YYCURSOR);
 		yych = *++YYCURSOR;
@@ -9994,16 +9983,15 @@
 		++YYCURSOR;
 		YYDEBUG(1018, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 2249 "Zend/zend_language_scanner.l"
+#line 2248 "Zend/zend_language_scanner.l"
 		{
 	/* Invalid rule to return a more explicit parse error with proper line number */
 	yyless(0);
-	yyleng = 0;
 	yy_pop_state(TSRMLS_C);
 	ZVAL_EMPTY_TEXT(zendlval); /* Empty since it won't be used */
 	return T_ENCAPSED_AND_WHITESPACE;
 }
-#line 10007 "Zend/zend_language_scanner.c"
+#line 9995 "Zend/zend_language_scanner.c"
 yy1019:
 		YYDEBUG(1019, *YYCURSOR);
 		++YYCURSOR;
@@ -10012,25 +10000,25 @@
 yy1020:
 		YYDEBUG(1020, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 2268 "Zend/zend_language_scanner.l"
+#line 2266 "Zend/zend_language_scanner.l"
 		{
 	if (!zend_copy_scanner_string(zendlval, yytext, yyleng, CG(literal_type), SCNG(output_conv) TSRMLS_CC)) {
 		return 0;
 	}
 	return T_STRING;
 }
-#line 10023 "Zend/zend_language_scanner.c"
+#line 10011 "Zend/zend_language_scanner.c"
 yy1021:
 		YYDEBUG(1021, *YYCURSOR);
 		++YYCURSOR;
 		YYDEBUG(1022, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 2776 "Zend/zend_language_scanner.l"
+#line 2768 "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 10034 "Zend/zend_language_scanner.c"
+#line 10022 "Zend/zend_language_scanner.c"
 yy1023:
 		YYDEBUG(1023, *YYCURSOR);
 		++YYCURSOR;
@@ -10066,7 +10054,7 @@
 yy1027:
 		YYDEBUG(1027, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 2229 "Zend/zend_language_scanner.l"
+#line 2228 "Zend/zend_language_scanner.l"
 		{
 	if (!zend_copy_scanner_string(zendlval, (yytext+1), (yyleng-1), UG(unicode)?IS_UNICODE:IS_STRING, SCNG(output_conv) TSRMLS_CC)) {
 		return 0;
@@ -10076,7 +10064,7 @@
 	}
 	return T_VARIABLE;
 }
-#line 10080 "Zend/zend_language_scanner.c"
+#line 10068 "Zend/zend_language_scanner.c"
 yy1028:
 		YYDEBUG(1028, *YYCURSOR);
 		++YYCURSOR;
@@ -10108,14 +10096,14 @@
 yy1034:
 		YYDEBUG(1034, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 1928 "Zend/zend_language_scanner.l"
+#line 1929 "Zend/zend_language_scanner.l"
 		{ /* Offset must be treated as a string */
 	if (!zend_copy_scanner_string(zendlval, yytext, yyleng, CG(literal_type), SCNG(output_conv) TSRMLS_CC)) {
 		return 0;
 	}
 	return T_NUM_STRING;
 }
-#line 10119 "Zend/zend_language_scanner.c"
+#line 10107 "Zend/zend_language_scanner.c"
 yy1035:
 		YYDEBUG(1035, *YYCURSOR);
 		++YYCURSOR;
@@ -10128,6 +10116,6 @@
 		goto yy1034;
 	}
 }
-#line 2781 "Zend/zend_language_scanner.l"
+#line 2773 "Zend/zend_language_scanner.l"
 
 }
http://cvs.php.net/viewvc.cgi/ZendEngine2/zend_language_scanner.l?r1=1.184&r2=1.185&diff_format=u
Index: ZendEngine2/zend_language_scanner.l
diff -u ZendEngine2/zend_language_scanner.l:1.184 ZendEngine2/zend_language_scanner.l:1.185
--- ZendEngine2/zend_language_scanner.l:1.184	Sat May 10 09:15:17 2008
+++ ZendEngine2/zend_language_scanner.l	Fri Jun  6 17:34:43 2008
@@ -21,7 +21,7 @@
    +----------------------------------------------------------------------+
 */
 
-/* $Id: zend_language_scanner.l,v 1.184 2008/05/10 09:15:17 mattwil Exp $ */
+/* $Id: zend_language_scanner.l,v 1.185 2008/06/06 17:34:43 nlopess Exp $ */
 
 #if 0
 # define YYDEBUG(s, c) printf("state: %d char: %c\n", s, c)
@@ -63,7 +63,8 @@
 #define YYSTATE      YYGETCONDITION()
 #define yytext       ((char*)SCNG(yy_text))
 #define yyleng       SCNG(yy_leng)
-#define yyless(x)    YYCURSOR = yytext + x
+#define yyless(x)    do { YYCURSOR = (unsigned char*)yytext + (x); \
+                          yyleng   = (unsigned int)(x); } while(0)
 #define yymore()     goto yymore_restart
 
 /* perform sanity check. If this message is triggered you should
@@ -2197,8 +2198,7 @@
  * and "->" will be taken literally
  */
 <ST_DOUBLE_QUOTES,ST_HEREDOC,ST_BACKQUOTE>"$"{LABEL}"->"[a-zA-Z_\x7f-\xff] {
-	yyleng -= 3;
-	yyless(yyleng);
+	yyless(yyleng - 3);
 	yy_push_state(ST_LOOKING_FOR_PROPERTY TSRMLS_CC);
 
 	if (!zend_copy_scanner_string(zendlval, (yytext+1), (yyleng-1), UG(unicode)?IS_UNICODE:IS_STRING, SCNG(output_conv) TSRMLS_CC)) {
@@ -2213,8 +2213,7 @@
 /* A [ always designates a variable offset, regardless of what follows
  */
 <ST_DOUBLE_QUOTES,ST_HEREDOC,ST_BACKQUOTE>"$"{LABEL}"[" {
-	yyleng--;
-	yyless(yyleng);
+	yyless(yyleng - 1);
 	yy_push_state(ST_VAR_OFFSET TSRMLS_CC);
 
 	if (!zend_copy_scanner_string(zendlval, (yytext+1), (yyleng-1), UG(unicode)?IS_UNICODE:IS_STRING, SCNG(output_conv) TSRMLS_CC)) {
@@ -2249,7 +2248,6 @@
 <ST_VAR_OFFSET>[ \n\r\t\\'#] {
 	/* Invalid rule to return a more explicit parse error with proper line number */
 	yyless(0);
-	yyleng = 0;
 	yy_pop_state(TSRMLS_C);
 	ZVAL_EMPTY_TEXT(zendlval); /* Empty since it won't be used */
 	return T_ENCAPSED_AND_WHITESPACE;
@@ -2314,8 +2312,7 @@
 		Z_STRVAL_P(zendlval) = yytext; /* no copying - intentional */
 		Z_STRLEN_P(zendlval) = yyleng-2;
 		Z_TYPE_P(zendlval) = IS_STRING;
-		yyleng -= 2;
-		yyless(yyleng);
+		yyless(yyleng - 2);
 		BEGIN(ST_IN_SCRIPTING);
 		return T_COMMENT;
 	} else {
@@ -2380,7 +2377,6 @@
 		return T_CLOSE_TAG;  /* implicit ';' at php-end tag */
 	} else {
 		yyless(1);
-		yyleng = 1;
 		return yytext[0];
 	}
 }
@@ -2492,7 +2488,6 @@
 	}
 
 	yyless(label_len);
-	yyleng = label_len;
 
 	if (label_len==CG(heredoc_len) && !memcmp(yytext, CG(heredoc), label_len)) {
 		Z_STRVAL_P(zendlval) = CG(heredoc);
@@ -2589,11 +2584,10 @@
  * (("{"+|"$"+)["]) handles { or $ at the end of a string
  *
  * Same for backquotes and heredocs, except the second case doesn't apply to
- * heredocs. yyleng--/yyless() is used to correct taking one character too many
+ * heredocs. yyless(yyleng - 1) is used to correct taking one character too many
  */
 <ST_DOUBLE_QUOTES>{DOUBLE_QUOTES_CHARS}*("{"{2,}|"$"{2,}|(("{"+|"$"+)["])) {
-	yyleng--;
-	yyless(yyleng);
+	yyless(yyleng - 1);
 
 	if (CG(literal_type) == IS_UNICODE) {
 		return zend_scan_unicode_escape_string(zendlval, yytext, yyleng, 0x22 /*'"'*/, T_ENCAPSED_AND_WHITESPACE TSRMLS_CC);
@@ -2614,8 +2608,7 @@
 }
 
 <ST_BACKQUOTE>{BACKQUOTE_CHARS}*("{"{2,}|"$"{2,}|(("{"+|"$"+)[`])) {
-	yyleng--;
-	yyless(yyleng);
+	yyless(yyleng - 1);
 
 	if (CG(literal_type) == IS_UNICODE) {
 		return zend_scan_unicode_escape_string(zendlval, yytext, yyleng, 0x60 /*'`'*/, T_ENCAPSED_AND_WHITESPACE TSRMLS_CC);
@@ -2643,8 +2636,7 @@
 }
 
 <ST_HEREDOC>{HEREDOC_CHARS}*({HEREDOC_NEWLINE}+({LABEL}";"?)?)?("{"{2,}|"$"{2,}) {
-	yyleng--;
-	yyless(yyleng);
+	yyless(yyleng - 1);
 
 	if (CG(literal_type) == IS_UNICODE) {
 		return zend_scan_unicode_escape_string(zendlval, yytext, yyleng, 0, T_ENCAPSED_AND_WHITESPACE TSRMLS_CC);
http://cvs.php.net/viewvc.cgi/ZendEngine2/zend_language_scanner_defs.h?r1=1.4&r2=1.5&diff_format=u
Index: ZendEngine2/zend_language_scanner_defs.h
diff -u ZendEngine2/zend_language_scanner_defs.h:1.4 ZendEngine2/zend_language_scanner_defs.h:1.5
--- ZendEngine2/zend_language_scanner_defs.h:1.4	Sat Apr  5 23:13:21 2008
+++ ZendEngine2/zend_language_scanner_defs.h	Fri Jun  6 17:34:43 2008
@@ -1,4 +1,4 @@
-/* Generated by re2c 0.13.4 on Sat Apr  5 19:52:57 2008 */
+/* Generated by re2c 0.13.6.dev on Fri Jun  6 18:30:48 2008 */
 #line 3 "Zend/zend_language_scanner_defs.h"
 
 enum YYCONDTYPE {
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.