summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--NEWS3
-rw-r--r--Zend/tests/bug61225.phpt9
-rw-r--r--Zend/zend_language_scanner.c378
-rw-r--r--Zend/zend_language_scanner.l6
-rw-r--r--Zend/zend_language_scanner_defs.h2
5 files changed, 209 insertions, 189 deletions
diff --git a/NEWS b/NEWS
index bd00ffd372..6646891f39 100644
--- a/NEWS
+++ b/NEWS
@@ -2,6 +2,9 @@ PHP NEWS
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
?? ??? 2012, PHP 5.4.1 RC1
+- Core:
+ . Fixed bug #61225 (Incorect lexing of 0b00*+<NUM>). (Pierrick)
+
- Standard:
. Fixed memory leak in substr_replace. (Pierrick)
. make max_file_uploads ini directive settable outside of php.ini (Rasmus)
diff --git a/Zend/tests/bug61225.phpt b/Zend/tests/bug61225.phpt
new file mode 100644
index 0000000000..33d74bd561
--- /dev/null
+++ b/Zend/tests/bug61225.phpt
@@ -0,0 +1,9 @@
+--TEST--
+Bug #61225 (Lexing 0b0*+<NUM> incorectly)
+--FILE--
+<?php
+echo 0b00+1;
+echo "\n";
+?>
+--EXPECT--
+1
diff --git a/Zend/zend_language_scanner.c b/Zend/zend_language_scanner.c
index bfecfb169d..3f6189efee 100644
--- a/Zend/zend_language_scanner.c
+++ b/Zend/zend_language_scanner.c
@@ -1,4 +1,4 @@
-/* Generated by re2c 0.13.5 on Wed Feb 15 17:48:20 2012 */
+/* Generated by re2c 0.13.5 on Thu Mar 1 21:27:30 2012 */
#line 1 "Zend/zend_language_scanner.l"
/*
+----------------------------------------------------------------------+
@@ -1090,7 +1090,7 @@ yyc_INITIAL:
yy3:
YYDEBUG(3, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1779 "Zend/zend_language_scanner.l"
+#line 1783 "Zend/zend_language_scanner.l"
{
if (YYCURSOR > YYLIMIT) {
return 0;
@@ -1168,7 +1168,7 @@ yy5:
yy6:
YYDEBUG(6, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1767 "Zend/zend_language_scanner.l"
+#line 1771 "Zend/zend_language_scanner.l"
{
if (CG(short_tags)) {
zendlval->value.str.val = yytext; /* no copying - intentional */
@@ -1187,7 +1187,7 @@ yy7:
if ((yych = *YYCURSOR) == '=') goto yy43;
YYDEBUG(8, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1744 "Zend/zend_language_scanner.l"
+#line 1748 "Zend/zend_language_scanner.l"
{
if (CG(asp_tags)) {
zendlval->value.str.val = yytext; /* no copying - intentional */
@@ -1385,7 +1385,7 @@ yy35:
++YYCURSOR;
YYDEBUG(38, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1704 "Zend/zend_language_scanner.l"
+#line 1708 "Zend/zend_language_scanner.l"
{
YYCTYPE *bracket = (YYCTYPE*)zend_memrchr(yytext, '<', yyleng - (sizeof("script language=php>") - 1));
@@ -1429,7 +1429,7 @@ yy43:
++YYCURSOR;
YYDEBUG(44, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1722 "Zend/zend_language_scanner.l"
+#line 1726 "Zend/zend_language_scanner.l"
{
if (CG(asp_tags)) {
zendlval->value.str.val = yytext; /* no copying - intentional */
@@ -1447,7 +1447,7 @@ yy45:
++YYCURSOR;
YYDEBUG(46, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1735 "Zend/zend_language_scanner.l"
+#line 1739 "Zend/zend_language_scanner.l"
{
zendlval->value.str.val = yytext; /* no copying - intentional */
zendlval->value.str.len = yyleng;
@@ -1482,7 +1482,7 @@ yy50:
yy51:
YYDEBUG(51, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1757 "Zend/zend_language_scanner.l"
+#line 1761 "Zend/zend_language_scanner.l"
{
zendlval->value.str.val = yytext; /* no copying - intentional */
zendlval->value.str.len = yyleng;
@@ -1562,7 +1562,7 @@ yyc_ST_BACKQUOTE:
yy56:
YYDEBUG(56, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 2230 "Zend/zend_language_scanner.l"
+#line 2234 "Zend/zend_language_scanner.l"
{
if (YYCURSOR > YYLIMIT) {
return 0;
@@ -1614,7 +1614,7 @@ yy58:
++YYCURSOR;
YYDEBUG(59, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 2174 "Zend/zend_language_scanner.l"
+#line 2178 "Zend/zend_language_scanner.l"
{
BEGIN(ST_IN_SCRIPTING);
return '`';
@@ -1629,7 +1629,7 @@ yy61:
++YYCURSOR;
YYDEBUG(62, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 2161 "Zend/zend_language_scanner.l"
+#line 2165 "Zend/zend_language_scanner.l"
{
zendlval->value.lval = (long) '{';
yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
@@ -1652,7 +1652,7 @@ yy63:
yy65:
YYDEBUG(65, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1861 "Zend/zend_language_scanner.l"
+#line 1865 "Zend/zend_language_scanner.l"
{
zend_copy_value(zendlval, (yytext+1), (yyleng-1));
zendlval->type = IS_STRING;
@@ -1683,7 +1683,7 @@ yy70:
++YYCURSOR;
YYDEBUG(71, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1853 "Zend/zend_language_scanner.l"
+#line 1857 "Zend/zend_language_scanner.l"
{
yyless(yyleng - 1);
yy_push_state(ST_VAR_OFFSET TSRMLS_CC);
@@ -1709,7 +1709,7 @@ yy73:
++YYCURSOR;
YYDEBUG(74, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1843 "Zend/zend_language_scanner.l"
+#line 1847 "Zend/zend_language_scanner.l"
{
yyless(yyleng - 3);
yy_push_state(ST_LOOKING_FOR_PROPERTY TSRMLS_CC);
@@ -1785,7 +1785,7 @@ yy77:
yy78:
YYDEBUG(78, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 2180 "Zend/zend_language_scanner.l"
+#line 2184 "Zend/zend_language_scanner.l"
{
if (GET_DOUBLE_QUOTES_SCANNED_LENGTH()) {
YYCURSOR += GET_DOUBLE_QUOTES_SCANNED_LENGTH() - 1;
@@ -1845,7 +1845,7 @@ yy80:
++YYCURSOR;
YYDEBUG(81, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 2169 "Zend/zend_language_scanner.l"
+#line 2173 "Zend/zend_language_scanner.l"
{
BEGIN(ST_IN_SCRIPTING);
return '"';
@@ -1860,7 +1860,7 @@ yy83:
++YYCURSOR;
YYDEBUG(84, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 2161 "Zend/zend_language_scanner.l"
+#line 2165 "Zend/zend_language_scanner.l"
{
zendlval->value.lval = (long) '{';
yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
@@ -1883,7 +1883,7 @@ yy85:
yy87:
YYDEBUG(87, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1861 "Zend/zend_language_scanner.l"
+#line 1865 "Zend/zend_language_scanner.l"
{
zend_copy_value(zendlval, (yytext+1), (yyleng-1));
zendlval->type = IS_STRING;
@@ -1914,7 +1914,7 @@ yy92:
++YYCURSOR;
YYDEBUG(93, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1853 "Zend/zend_language_scanner.l"
+#line 1857 "Zend/zend_language_scanner.l"
{
yyless(yyleng - 1);
yy_push_state(ST_VAR_OFFSET TSRMLS_CC);
@@ -1940,7 +1940,7 @@ yy95:
++YYCURSOR;
YYDEBUG(96, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1843 "Zend/zend_language_scanner.l"
+#line 1847 "Zend/zend_language_scanner.l"
{
yyless(yyleng - 3);
yy_push_state(ST_LOOKING_FOR_PROPERTY TSRMLS_CC);
@@ -1959,7 +1959,7 @@ yyc_ST_END_HEREDOC:
++YYCURSOR;
YYDEBUG(100, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 2148 "Zend/zend_language_scanner.l"
+#line 2152 "Zend/zend_language_scanner.l"
{
YYCURSOR += CG(heredoc_len) - 1;
yyleng = CG(heredoc_len);
@@ -2033,7 +2033,7 @@ yy103:
yy104:
YYDEBUG(104, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 2272 "Zend/zend_language_scanner.l"
+#line 2276 "Zend/zend_language_scanner.l"
{
int newline = 0;
@@ -2119,7 +2119,7 @@ yy107:
++YYCURSOR;
YYDEBUG(108, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 2161 "Zend/zend_language_scanner.l"
+#line 2165 "Zend/zend_language_scanner.l"
{
zendlval->value.lval = (long) '{';
yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
@@ -2142,7 +2142,7 @@ yy109:
yy111:
YYDEBUG(111, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1861 "Zend/zend_language_scanner.l"
+#line 1865 "Zend/zend_language_scanner.l"
{
zend_copy_value(zendlval, (yytext+1), (yyleng-1));
zendlval->type = IS_STRING;
@@ -2173,7 +2173,7 @@ yy116:
++YYCURSOR;
YYDEBUG(117, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1853 "Zend/zend_language_scanner.l"
+#line 1857 "Zend/zend_language_scanner.l"
{
yyless(yyleng - 1);
yy_push_state(ST_VAR_OFFSET TSRMLS_CC);
@@ -2199,7 +2199,7 @@ yy119:
++YYCURSOR;
YYDEBUG(120, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1843 "Zend/zend_language_scanner.l"
+#line 1847 "Zend/zend_language_scanner.l"
{
yyless(yyleng - 3);
yy_push_state(ST_LOOKING_FOR_PROPERTY TSRMLS_CC);
@@ -2388,7 +2388,7 @@ yy123:
yy124:
YYDEBUG(124, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1884 "Zend/zend_language_scanner.l"
+#line 1888 "Zend/zend_language_scanner.l"
{
zend_copy_value(zendlval, yytext, yyleng);
zendlval->type = IS_STRING;
@@ -2931,7 +2931,7 @@ yy171:
yy172:
YYDEBUG(172, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1494 "Zend/zend_language_scanner.l"
+#line 1498 "Zend/zend_language_scanner.l"
{
if (yyleng < MAX_LENGTH_OF_LONG - 1) { /* Won't overflow */
zendlval->value.lval = strtol(yytext, NULL, 0);
@@ -2980,7 +2980,7 @@ yy175:
yy176:
YYDEBUG(176, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1891 "Zend/zend_language_scanner.l"
+#line 1895 "Zend/zend_language_scanner.l"
{
while (YYCURSOR < YYLIMIT) {
switch (*YYCURSOR++) {
@@ -3021,7 +3021,7 @@ yy177:
yy178:
YYDEBUG(178, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1982 "Zend/zend_language_scanner.l"
+#line 1986 "Zend/zend_language_scanner.l"
{
register char *s, *t;
char *end;
@@ -3096,7 +3096,7 @@ yy179:
yy180:
YYDEBUG(180, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 2051 "Zend/zend_language_scanner.l"
+#line 2055 "Zend/zend_language_scanner.l"
{
int bprefix = (yytext[0] != '"') ? 1 : 0;
@@ -3143,7 +3143,7 @@ yy181:
++YYCURSOR;
YYDEBUG(182, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 2142 "Zend/zend_language_scanner.l"
+#line 2146 "Zend/zend_language_scanner.l"
{
BEGIN(ST_BACKQUOTE);
return '`';
@@ -3154,7 +3154,7 @@ yy183:
++YYCURSOR;
YYDEBUG(184, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 2400 "Zend/zend_language_scanner.l"
+#line 2404 "Zend/zend_language_scanner.l"
{
if (YYCURSOR > YYLIMIT) {
return 0;
@@ -3190,7 +3190,7 @@ yy187:
yy189:
YYDEBUG(189, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1559 "Zend/zend_language_scanner.l"
+#line 1563 "Zend/zend_language_scanner.l"
{
zendlval->value.dval = zend_strtod(yytext, NULL);
zendlval->type = IS_DOUBLE;
@@ -3300,7 +3300,11 @@ yy199:
}
if (len < SIZEOF_LONG * 8) {
- zendlval->value.lval = strtol(bin, NULL, 2);
+ if (len == 0) {
+ zendlval->value.lval = 0;
+ } else {
+ zendlval->value.lval = strtol(bin, NULL, 2);
+ }
zendlval->type = IS_LONG;
return T_LNUMBER;
} else {
@@ -3309,7 +3313,7 @@ yy199:
return T_DNUMBER;
}
}
-#line 3313 "Zend/zend_language_scanner.c"
+#line 3317 "Zend/zend_language_scanner.c"
yy202:
YYDEBUG(202, *YYCURSOR);
++YYCURSOR;
@@ -3321,7 +3325,7 @@ yy202:
}
YYDEBUG(204, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1515 "Zend/zend_language_scanner.l"
+#line 1519 "Zend/zend_language_scanner.l"
{
char *hex = yytext + 2; /* Skip "0x" */
int len = yyleng - 2;
@@ -3346,7 +3350,7 @@ yy202:
return T_DNUMBER;
}
}
-#line 3350 "Zend/zend_language_scanner.c"
+#line 3354 "Zend/zend_language_scanner.c"
yy205:
YYDEBUG(205, *YYCURSOR);
++YYCURSOR;
@@ -3355,7 +3359,7 @@ yy205:
yy206:
YYDEBUG(206, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1959 "Zend/zend_language_scanner.l"
+#line 1963 "Zend/zend_language_scanner.l"
{
zendlval->value.str.val = yytext; /* no copying - intentional */
zendlval->value.str.len = yyleng;
@@ -3363,7 +3367,7 @@ yy206:
BEGIN(INITIAL);
return T_CLOSE_TAG; /* implicit ';' at php-end tag */
}
-#line 3367 "Zend/zend_language_scanner.c"
+#line 3371 "Zend/zend_language_scanner.c"
yy207:
YYDEBUG(207, *YYCURSOR);
yych = *++YYCURSOR;
@@ -3397,13 +3401,13 @@ yy209:
yy211:
YYDEBUG(211, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1861 "Zend/zend_language_scanner.l"
+#line 1865 "Zend/zend_language_scanner.l"
{
zend_copy_value(zendlval, (yytext+1), (yyleng-1));
zendlval->type = IS_STRING;
return T_VARIABLE;
}
-#line 3407 "Zend/zend_language_scanner.c"
+#line 3411 "Zend/zend_language_scanner.c"
yy212:
YYDEBUG(212, *YYCURSOR);
yych = *++YYCURSOR;
@@ -3421,7 +3425,7 @@ yy213:
{
return T_LOGICAL_XOR;
}
-#line 3425 "Zend/zend_language_scanner.c"
+#line 3429 "Zend/zend_language_scanner.c"
yy215:
YYDEBUG(215, *YYCURSOR);
++YYCURSOR;
@@ -3434,7 +3438,7 @@ yy215:
{
return T_LOGICAL_OR;
}
-#line 3438 "Zend/zend_language_scanner.c"
+#line 3442 "Zend/zend_language_scanner.c"
yy217:
YYDEBUG(217, *YYCURSOR);
++YYCURSOR;
@@ -3444,7 +3448,7 @@ yy217:
{
return T_XOR_EQUAL;
}
-#line 3448 "Zend/zend_language_scanner.c"
+#line 3452 "Zend/zend_language_scanner.c"
yy219:
YYDEBUG(219, *YYCURSOR);
++YYCURSOR;
@@ -3454,7 +3458,7 @@ yy219:
{
return T_BOOLEAN_OR;
}
-#line 3458 "Zend/zend_language_scanner.c"
+#line 3462 "Zend/zend_language_scanner.c"
yy221:
YYDEBUG(221, *YYCURSOR);
++YYCURSOR;
@@ -3464,7 +3468,7 @@ yy221:
{
return T_OR_EQUAL;
}
-#line 3468 "Zend/zend_language_scanner.c"
+#line 3472 "Zend/zend_language_scanner.c"
yy223:
YYDEBUG(223, *YYCURSOR);
++YYCURSOR;
@@ -3474,7 +3478,7 @@ yy223:
{
return T_BOOLEAN_AND;
}
-#line 3478 "Zend/zend_language_scanner.c"
+#line 3482 "Zend/zend_language_scanner.c"
yy225:
YYDEBUG(225, *YYCURSOR);
++YYCURSOR;
@@ -3484,7 +3488,7 @@ yy225:
{
return T_AND_EQUAL;
}
-#line 3488 "Zend/zend_language_scanner.c"
+#line 3492 "Zend/zend_language_scanner.c"
yy227:
YYDEBUG(227, *YYCURSOR);
++YYCURSOR;
@@ -3493,7 +3497,7 @@ yy227:
yy228:
YYDEBUG(228, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1968 "Zend/zend_language_scanner.l"
+#line 1972 "Zend/zend_language_scanner.l"
{
if (CG(asp_tags)) {
BEGIN(INITIAL);
@@ -3506,7 +3510,7 @@ yy228:
return yytext[0];
}
}
-#line 3510 "Zend/zend_language_scanner.c"
+#line 3514 "Zend/zend_language_scanner.c"
yy229:
YYDEBUG(229, *YYCURSOR);
++YYCURSOR;
@@ -3516,7 +3520,7 @@ yy229:
{
return T_MOD_EQUAL;
}
-#line 3520 "Zend/zend_language_scanner.c"
+#line 3524 "Zend/zend_language_scanner.c"
yy231:
YYDEBUG(231, *YYCURSOR);
yych = *++YYCURSOR;
@@ -3551,7 +3555,7 @@ yy235:
{
return T_CONCAT_EQUAL;
}
-#line 3555 "Zend/zend_language_scanner.c"
+#line 3559 "Zend/zend_language_scanner.c"
yy237:
YYDEBUG(237, *YYCURSOR);
yyaccept = 4;
@@ -3560,7 +3564,7 @@ yy237:
yy238:
YYDEBUG(238, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1925 "Zend/zend_language_scanner.l"
+#line 1929 "Zend/zend_language_scanner.l"
{
int doc_com;
@@ -3594,7 +3598,7 @@ yy238:
return T_COMMENT;
}
-#line 3598 "Zend/zend_language_scanner.c"
+#line 3602 "Zend/zend_language_scanner.c"
yy239:
YYDEBUG(239, *YYCURSOR);
yych = *++YYCURSOR;
@@ -3608,7 +3612,7 @@ yy240:
{
return T_DIV_EQUAL;
}
-#line 3612 "Zend/zend_language_scanner.c"
+#line 3616 "Zend/zend_language_scanner.c"
yy242:
YYDEBUG(242, *YYCURSOR);
yych = *++YYCURSOR;
@@ -3635,7 +3639,7 @@ yy245:
{
return T_MUL_EQUAL;
}
-#line 3639 "Zend/zend_language_scanner.c"
+#line 3643 "Zend/zend_language_scanner.c"
yy247:
YYDEBUG(247, *YYCURSOR);
++YYCURSOR;
@@ -3646,7 +3650,7 @@ yy247:
{
return T_SR;
}
-#line 3650 "Zend/zend_language_scanner.c"
+#line 3654 "Zend/zend_language_scanner.c"
yy249:
YYDEBUG(249, *YYCURSOR);
++YYCURSOR;
@@ -3656,7 +3660,7 @@ yy249:
{
return T_IS_GREATER_OR_EQUAL;
}
-#line 3660 "Zend/zend_language_scanner.c"
+#line 3664 "Zend/zend_language_scanner.c"
yy251:
YYDEBUG(251, *YYCURSOR);
++YYCURSOR;
@@ -3666,7 +3670,7 @@ yy251:
{
return T_SR_EQUAL;
}
-#line 3670 "Zend/zend_language_scanner.c"
+#line 3674 "Zend/zend_language_scanner.c"
yy253:
YYDEBUG(253, *YYCURSOR);
yyaccept = 5;
@@ -3681,7 +3685,7 @@ yy254:
{
return T_SL;
}
-#line 3685 "Zend/zend_language_scanner.c"
+#line 3689 "Zend/zend_language_scanner.c"
yy255:
YYDEBUG(255, *YYCURSOR);
yych = *++YYCURSOR;
@@ -3697,7 +3701,7 @@ yy256:
{
return T_IS_SMALLER_OR_EQUAL;
}
-#line 3701 "Zend/zend_language_scanner.c"
+#line 3705 "Zend/zend_language_scanner.c"
yy258:
YYDEBUG(258, *YYCURSOR);
++YYCURSOR;
@@ -3708,7 +3712,7 @@ yy259:
{
return T_IS_NOT_EQUAL;
}
-#line 3712 "Zend/zend_language_scanner.c"
+#line 3716 "Zend/zend_language_scanner.c"
yy260:
YYDEBUG(260, *YYCURSOR);
yych = *++YYCURSOR;
@@ -3763,7 +3767,7 @@ yy267:
{
return T_SL_EQUAL;
}
-#line 3767 "Zend/zend_language_scanner.c"
+#line 3771 "Zend/zend_language_scanner.c"
yy269:
YYDEBUG(269, *YYCURSOR);
++YYCURSOR;
@@ -3868,7 +3872,7 @@ yy278:
yy279:
YYDEBUG(279, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 2093 "Zend/zend_language_scanner.l"
+#line 2097 "Zend/zend_language_scanner.l"
{
char *s;
int bprefix = (yytext[0] != '<') ? 1 : 0;
@@ -3916,7 +3920,7 @@ yy279:
return T_START_HEREDOC;
}
-#line 3920 "Zend/zend_language_scanner.c"
+#line 3924 "Zend/zend_language_scanner.c"
yy280:
YYDEBUG(280, *YYCURSOR);
yych = *++YYCURSOR;
@@ -3960,7 +3964,7 @@ yy283:
{
return T_IS_NOT_IDENTICAL;
}
-#line 3964 "Zend/zend_language_scanner.c"
+#line 3968 "Zend/zend_language_scanner.c"
yy286:
YYDEBUG(286, *YYCURSOR);
++YYCURSOR;
@@ -3970,7 +3974,7 @@ yy286:
{
return T_PLUS_EQUAL;
}
-#line 3974 "Zend/zend_language_scanner.c"
+#line 3978 "Zend/zend_language_scanner.c"
yy288:
YYDEBUG(288, *YYCURSOR);
++YYCURSOR;
@@ -3980,7 +3984,7 @@ yy288:
{
return T_INC;
}
-#line 3984 "Zend/zend_language_scanner.c"
+#line 3988 "Zend/zend_language_scanner.c"
yy290:
YYDEBUG(290, *YYCURSOR);
yych = *++YYCURSOR;
@@ -4003,7 +4007,7 @@ yy292:
{
return T_LIST;
}
-#line 4007 "Zend/zend_language_scanner.c"
+#line 4011 "Zend/zend_language_scanner.c"
yy294:
YYDEBUG(294, *YYCURSOR);
++YYCURSOR;
@@ -4014,7 +4018,7 @@ yy294:
{
return T_IS_EQUAL;
}
-#line 4018 "Zend/zend_language_scanner.c"
+#line 4022 "Zend/zend_language_scanner.c"
yy296:
YYDEBUG(296, *YYCURSOR);
++YYCURSOR;
@@ -4024,7 +4028,7 @@ yy296:
{
return T_DOUBLE_ARROW;
}
-#line 4028 "Zend/zend_language_scanner.c"
+#line 4032 "Zend/zend_language_scanner.c"
yy298:
YYDEBUG(298, *YYCURSOR);
++YYCURSOR;
@@ -4034,7 +4038,7 @@ yy298:
{
return T_IS_IDENTICAL;
}
-#line 4038 "Zend/zend_language_scanner.c"
+#line 4042 "Zend/zend_language_scanner.c"
yy300:
YYDEBUG(300, *YYCURSOR);
yych = *++YYCURSOR;
@@ -4164,7 +4168,7 @@ yy316:
}
YYDEBUG(319, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1694 "Zend/zend_language_scanner.l"
+#line 1698 "Zend/zend_language_scanner.l"
{
if (CG(current_namespace)) {
*zendlval = *CG(current_namespace);
@@ -4174,7 +4178,7 @@ yy316:
}
return T_NS_C;
}
-#line 4178 "Zend/zend_language_scanner.c"
+#line 4182 "Zend/zend_language_scanner.c"
yy320:
YYDEBUG(320, *YYCURSOR);
yych = *++YYCURSOR;
@@ -4194,7 +4198,7 @@ yy321:
}
YYDEBUG(324, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1667 "Zend/zend_language_scanner.l"
+#line 1671 "Zend/zend_language_scanner.l"
{
char *filename = zend_get_compiled_filename(TSRMLS_C);
const size_t filename_len = strlen(filename);
@@ -4221,7 +4225,7 @@ yy321:
zendlval->type = IS_STRING;
return T_DIR;
}
-#line 4225 "Zend/zend_language_scanner.c"
+#line 4229 "Zend/zend_language_scanner.c"
yy325:
YYDEBUG(325, *YYCURSOR);
yych = *++YYCURSOR;
@@ -4246,13 +4250,13 @@ yy327:
}
YYDEBUG(330, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1649 "Zend/zend_language_scanner.l"
+#line 1653 "Zend/zend_language_scanner.l"
{
zendlval->value.lval = CG(zend_lineno);
zendlval->type = IS_LONG;
return T_LINE;
}
-#line 4256 "Zend/zend_language_scanner.c"
+#line 4260 "Zend/zend_language_scanner.c"
yy331:
YYDEBUG(331, *YYCURSOR);
yych = *++YYCURSOR;
@@ -4287,7 +4291,7 @@ yy335:
}
YYDEBUG(338, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1628 "Zend/zend_language_scanner.l"
+#line 1632 "Zend/zend_language_scanner.l"
{
const char *class_name = CG(active_class_entry) ? CG(active_class_entry)->name : NULL;
const char *func_name = CG(active_op_array)? CG(active_op_array)->function_name : NULL;
@@ -4308,7 +4312,7 @@ yy335:
zendlval->type = IS_STRING;
return T_METHOD_C;
}
-#line 4312 "Zend/zend_language_scanner.c"
+#line 4316 "Zend/zend_language_scanner.c"
yy339:
YYDEBUG(339, *YYCURSOR);
yych = *++YYCURSOR;
@@ -4359,7 +4363,7 @@ yy346:
}
YYDEBUG(349, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1612 "Zend/zend_language_scanner.l"
+#line 1616 "Zend/zend_language_scanner.l"
{
const char *func_name = NULL;
@@ -4375,7 +4379,7 @@ yy346:
zendlval->type = IS_STRING;
return T_FUNC_C;
}
-#line 4379 "Zend/zend_language_scanner.c"
+#line 4383 "Zend/zend_language_scanner.c"
yy350:
YYDEBUG(350, *YYCURSOR);
yych = *++YYCURSOR;
@@ -4395,7 +4399,7 @@ yy351:
}
YYDEBUG(354, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1655 "Zend/zend_language_scanner.l"
+#line 1659 "Zend/zend_language_scanner.l"
{
char *filename = zend_get_compiled_filename(TSRMLS_C);
@@ -4407,7 +4411,7 @@ yy351:
zendlval->type = IS_STRING;
return T_FILE;
}
-#line 4411 "Zend/zend_language_scanner.c"
+#line 4415 "Zend/zend_language_scanner.c"
yy355:
YYDEBUG(355, *YYCURSOR);
yych = *++YYCURSOR;
@@ -4437,7 +4441,7 @@ yy358:
}
YYDEBUG(361, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1592 "Zend/zend_language_scanner.l"
+#line 1596 "Zend/zend_language_scanner.l"
{
const char *trait_name = NULL;
@@ -4457,7 +4461,7 @@ yy358:
return T_TRAIT_C;
}
-#line 4461 "Zend/zend_language_scanner.c"
+#line 4465 "Zend/zend_language_scanner.c"
yy362:
YYDEBUG(362, *YYCURSOR);
yych = *++YYCURSOR;
@@ -4487,7 +4491,7 @@ yy365:
}
YYDEBUG(368, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1565 "Zend/zend_language_scanner.l"
+#line 1569 "Zend/zend_language_scanner.l"
{
const char *class_name = NULL;
@@ -4514,7 +4518,7 @@ yy365:
}
return T_CLASS_C;
}
-#line 4518 "Zend/zend_language_scanner.c"
+#line 4522 "Zend/zend_language_scanner.c"
yy369:
YYDEBUG(369, *YYCURSOR);
yych = *++YYCURSOR;
@@ -4580,7 +4584,7 @@ yy380:
{
return T_HALT_COMPILER;
}
-#line 4584 "Zend/zend_language_scanner.c"
+#line 4588 "Zend/zend_language_scanner.c"
yy382:
YYDEBUG(382, *YYCURSOR);
yych = *++YYCURSOR;
@@ -4604,7 +4608,7 @@ yy384:
{
return T_USE;
}
-#line 4608 "Zend/zend_language_scanner.c"
+#line 4612 "Zend/zend_language_scanner.c"
yy386:
YYDEBUG(386, *YYCURSOR);
yych = *++YYCURSOR;
@@ -4627,7 +4631,7 @@ yy388:
{
return T_UNSET;
}
-#line 4631 "Zend/zend_language_scanner.c"
+#line 4635 "Zend/zend_language_scanner.c"
yy390:
YYDEBUG(390, *YYCURSOR);
++YYCURSOR;
@@ -4803,7 +4807,7 @@ yy405:
{
return T_INT_CAST;
}
-#line 4807 "Zend/zend_language_scanner.c"
+#line 4811 "Zend/zend_language_scanner.c"
yy408:
YYDEBUG(408, *YYCURSOR);
yych = *++YYCURSOR;
@@ -4851,7 +4855,7 @@ yy413:
{
return T_DOUBLE_CAST;
}
-#line 4855 "Zend/zend_language_scanner.c"
+#line 4859 "Zend/zend_language_scanner.c"
yy417:
YYDEBUG(417, *YYCURSOR);
yych = *++YYCURSOR;
@@ -4925,7 +4929,7 @@ yy427:
{
return T_STRING_CAST;
}
-#line 4929 "Zend/zend_language_scanner.c"
+#line 4933 "Zend/zend_language_scanner.c"
yy431:
YYDEBUG(431, *YYCURSOR);
yych = *++YYCURSOR;
@@ -4962,7 +4966,7 @@ yy434:
{
return T_ARRAY_CAST;
}
-#line 4966 "Zend/zend_language_scanner.c"
+#line 4970 "Zend/zend_language_scanner.c"
yy438:
YYDEBUG(438, *YYCURSOR);
yych = *++YYCURSOR;
@@ -5004,7 +5008,7 @@ yy442:
{
return T_OBJECT_CAST;
}
-#line 5008 "Zend/zend_language_scanner.c"
+#line 5012 "Zend/zend_language_scanner.c"
yy446:
YYDEBUG(446, *YYCURSOR);
yych = *++YYCURSOR;
@@ -5049,7 +5053,7 @@ yy451:
{
return T_BOOL_CAST;
}
-#line 5053 "Zend/zend_language_scanner.c"
+#line 5057 "Zend/zend_language_scanner.c"
yy454:
YYDEBUG(454, *YYCURSOR);
yych = *++YYCURSOR;
@@ -5113,7 +5117,7 @@ yy462:
{
return T_UNSET_CAST;
}
-#line 5117 "Zend/zend_language_scanner.c"
+#line 5121 "Zend/zend_language_scanner.c"
yy466:
YYDEBUG(466, *YYCURSOR);
yych = *++YYCURSOR;
@@ -5131,7 +5135,7 @@ yy467:
{
return T_VAR;
}
-#line 5135 "Zend/zend_language_scanner.c"
+#line 5139 "Zend/zend_language_scanner.c"
yy469:
YYDEBUG(469, *YYCURSOR);
yych = *++YYCURSOR;
@@ -5155,7 +5159,7 @@ yy471:
{
return T_NEW;
}
-#line 5159 "Zend/zend_language_scanner.c"
+#line 5163 "Zend/zend_language_scanner.c"
yy473:
YYDEBUG(473, *YYCURSOR);
yych = *++YYCURSOR;
@@ -5198,7 +5202,7 @@ yy479:
{
return T_NAMESPACE;
}
-#line 5202 "Zend/zend_language_scanner.c"
+#line 5206 "Zend/zend_language_scanner.c"
yy481:
YYDEBUG(481, *YYCURSOR);
++YYCURSOR;
@@ -5208,7 +5212,7 @@ yy481:
{
return T_PAAMAYIM_NEKUDOTAYIM;
}
-#line 5212 "Zend/zend_language_scanner.c"
+#line 5216 "Zend/zend_language_scanner.c"
yy483:
YYDEBUG(483, *YYCURSOR);
++YYCURSOR;
@@ -5234,7 +5238,7 @@ yy485:
{
return T_MINUS_EQUAL;
}
-#line 5238 "Zend/zend_language_scanner.c"
+#line 5242 "Zend/zend_language_scanner.c"
yy487:
YYDEBUG(487, *YYCURSOR);
++YYCURSOR;
@@ -5244,7 +5248,7 @@ yy487:
{
return T_DEC;
}
-#line 5248 "Zend/zend_language_scanner.c"
+#line 5252 "Zend/zend_language_scanner.c"
yy489:
YYDEBUG(489, *YYCURSOR);
++YYCURSOR;
@@ -5255,7 +5259,7 @@ yy489:
yy_push_state(ST_LOOKING_FOR_PROPERTY TSRMLS_CC);
return T_OBJECT_OPERATOR;
}
-#line 5259 "Zend/zend_language_scanner.c"
+#line 5263 "Zend/zend_language_scanner.c"
yy491:
YYDEBUG(491, *YYCURSOR);
yych = *++YYCURSOR;
@@ -5304,7 +5308,7 @@ yy496:
{
return T_PUBLIC;
}
-#line 5308 "Zend/zend_language_scanner.c"
+#line 5312 "Zend/zend_language_scanner.c"
yy498:
YYDEBUG(498, *YYCURSOR);
yych = *++YYCURSOR;
@@ -5363,7 +5367,7 @@ yy505:
{
return T_PROTECTED;
}
-#line 5367 "Zend/zend_language_scanner.c"
+#line 5371 "Zend/zend_language_scanner.c"
yy507:
YYDEBUG(507, *YYCURSOR);
yych = *++YYCURSOR;
@@ -5397,7 +5401,7 @@ yy511:
{
return T_PRIVATE;
}
-#line 5401 "Zend/zend_language_scanner.c"
+#line 5405 "Zend/zend_language_scanner.c"
yy513:
YYDEBUG(513, *YYCURSOR);
++YYCURSOR;
@@ -5410,7 +5414,7 @@ yy513:
{
return T_PRINT;
}
-#line 5414 "Zend/zend_language_scanner.c"
+#line 5418 "Zend/zend_language_scanner.c"
yy515:
YYDEBUG(515, *YYCURSOR);
yych = *++YYCURSOR;
@@ -5439,7 +5443,7 @@ yy518:
{
return T_GOTO;
}
-#line 5443 "Zend/zend_language_scanner.c"
+#line 5447 "Zend/zend_language_scanner.c"
yy520:
YYDEBUG(520, *YYCURSOR);
yych = *++YYCURSOR;
@@ -5467,7 +5471,7 @@ yy523:
{
return T_GLOBAL;
}
-#line 5471 "Zend/zend_language_scanner.c"
+#line 5475 "Zend/zend_language_scanner.c"
yy525:
YYDEBUG(525, *YYCURSOR);
yych = *++YYCURSOR;
@@ -5508,7 +5512,7 @@ yy531:
{
return T_BREAK;
}
-#line 5512 "Zend/zend_language_scanner.c"
+#line 5516 "Zend/zend_language_scanner.c"
yy533:
YYDEBUG(533, *YYCURSOR);
yych = *++YYCURSOR;
@@ -5552,7 +5556,7 @@ yy539:
{
return T_SWITCH;
}
-#line 5556 "Zend/zend_language_scanner.c"
+#line 5560 "Zend/zend_language_scanner.c"
yy541:
YYDEBUG(541, *YYCURSOR);
yych = *++YYCURSOR;
@@ -5580,7 +5584,7 @@ yy544:
{
return T_STATIC;
}
-#line 5584 "Zend/zend_language_scanner.c"
+#line 5588 "Zend/zend_language_scanner.c"
yy546:
YYDEBUG(546, *YYCURSOR);
yych = *++YYCURSOR;
@@ -5611,7 +5615,7 @@ yy549:
{
return T_AS;
}
-#line 5615 "Zend/zend_language_scanner.c"
+#line 5619 "Zend/zend_language_scanner.c"
yy551:
YYDEBUG(551, *YYCURSOR);
yych = *++YYCURSOR;
@@ -5634,7 +5638,7 @@ yy553:
{
return T_ARRAY;
}
-#line 5638 "Zend/zend_language_scanner.c"
+#line 5642 "Zend/zend_language_scanner.c"
yy555:
YYDEBUG(555, *YYCURSOR);
++YYCURSOR;
@@ -5647,7 +5651,7 @@ yy555:
{
return T_LOGICAL_AND;
}
-#line 5651 "Zend/zend_language_scanner.c"
+#line 5655 "Zend/zend_language_scanner.c"
yy557:
YYDEBUG(557, *YYCURSOR);
yych = *++YYCURSOR;
@@ -5685,7 +5689,7 @@ yy562:
{
return T_ABSTRACT;
}
-#line 5689 "Zend/zend_language_scanner.c"
+#line 5693 "Zend/zend_language_scanner.c"
yy564:
YYDEBUG(564, *YYCURSOR);
yych = *++YYCURSOR;
@@ -5713,7 +5717,7 @@ yy567:
{
return T_WHILE;
}
-#line 5717 "Zend/zend_language_scanner.c"
+#line 5721 "Zend/zend_language_scanner.c"
yy569:
YYDEBUG(569, *YYCURSOR);
++YYCURSOR;
@@ -5726,7 +5730,7 @@ yy569:
{
return T_IF;
}
-#line 5730 "Zend/zend_language_scanner.c"
+#line 5734 "Zend/zend_language_scanner.c"
yy571:
YYDEBUG(571, *YYCURSOR);
yych = *++YYCURSOR;
@@ -5782,7 +5786,7 @@ yy576:
{
return T_ISSET;
}
-#line 5786 "Zend/zend_language_scanner.c"
+#line 5790 "Zend/zend_language_scanner.c"
yy578:
YYDEBUG(578, *YYCURSOR);
yych = *++YYCURSOR;
@@ -5840,7 +5844,7 @@ yy585:
{
return T_INCLUDE;
}
-#line 5844 "Zend/zend_language_scanner.c"
+#line 5848 "Zend/zend_language_scanner.c"
yy586:
YYDEBUG(586, *YYCURSOR);
yych = *++YYCURSOR;
@@ -5873,7 +5877,7 @@ yy590:
{
return T_INCLUDE_ONCE;
}
-#line 5877 "Zend/zend_language_scanner.c"
+#line 5881 "Zend/zend_language_scanner.c"
yy592:
YYDEBUG(592, *YYCURSOR);
yych = *++YYCURSOR;
@@ -5911,7 +5915,7 @@ yy597:
{
return T_INTERFACE;
}
-#line 5915 "Zend/zend_language_scanner.c"
+#line 5919 "Zend/zend_language_scanner.c"
yy599:
YYDEBUG(599, *YYCURSOR);
yych = *++YYCURSOR;
@@ -5965,7 +5969,7 @@ yy605:
{
return T_INSTEADOF;
}
-#line 5969 "Zend/zend_language_scanner.c"
+#line 5973 "Zend/zend_language_scanner.c"
yy607:
YYDEBUG(607, *YYCURSOR);
yych = *++YYCURSOR;
@@ -5998,7 +6002,7 @@ yy611:
{
return T_INSTANCEOF;
}
-#line 6002 "Zend/zend_language_scanner.c"
+#line 6006 "Zend/zend_language_scanner.c"
yy613:
YYDEBUG(613, *YYCURSOR);
yych = *++YYCURSOR;
@@ -6046,7 +6050,7 @@ yy620:
{
return T_IMPLEMENTS;
}
-#line 6050 "Zend/zend_language_scanner.c"
+#line 6054 "Zend/zend_language_scanner.c"
yy622:
YYDEBUG(622, *YYCURSOR);
yych = *++YYCURSOR;
@@ -6078,7 +6082,7 @@ yy623:
{
return T_TRY;
}
-#line 6082 "Zend/zend_language_scanner.c"
+#line 6086 "Zend/zend_language_scanner.c"
yy626:
YYDEBUG(626, *YYCURSOR);
yych = *++YYCURSOR;
@@ -6101,7 +6105,7 @@ yy628:
{
return T_TRAIT;
}
-#line 6105 "Zend/zend_language_scanner.c"
+#line 6109 "Zend/zend_language_scanner.c"
yy630:
YYDEBUG(630, *YYCURSOR);
yych = *++YYCURSOR;
@@ -6124,7 +6128,7 @@ yy632:
{
return T_THROW;
}
-#line 6128 "Zend/zend_language_scanner.c"
+#line 6132 "Zend/zend_language_scanner.c"
yy634:
YYDEBUG(634, *YYCURSOR);
yych = *++YYCURSOR;
@@ -6189,7 +6193,7 @@ yy641:
{
return T_REQUIRE;
}
-#line 6193 "Zend/zend_language_scanner.c"
+#line 6197 "Zend/zend_language_scanner.c"
yy642:
YYDEBUG(642, *YYCURSOR);
yych = *++YYCURSOR;
@@ -6222,7 +6226,7 @@ yy646:
{
return T_REQUIRE_ONCE;
}
-#line 6226 "Zend/zend_language_scanner.c"
+#line 6230 "Zend/zend_language_scanner.c"
yy648:
YYDEBUG(648, *YYCURSOR);
yych = *++YYCURSOR;
@@ -6245,7 +6249,7 @@ yy650:
{
return T_RETURN;
}
-#line 6249 "Zend/zend_language_scanner.c"
+#line 6253 "Zend/zend_language_scanner.c"
yy652:
YYDEBUG(652, *YYCURSOR);
yych = *++YYCURSOR;
@@ -6339,7 +6343,7 @@ yy661:
{
return T_CONTINUE;
}
-#line 6343 "Zend/zend_language_scanner.c"
+#line 6347 "Zend/zend_language_scanner.c"
yy663:
YYDEBUG(663, *YYCURSOR);
++YYCURSOR;
@@ -6352,7 +6356,7 @@ yy663:
{
return T_CONST;
}
-#line 6356 "Zend/zend_language_scanner.c"
+#line 6360 "Zend/zend_language_scanner.c"
yy665:
YYDEBUG(665, *YYCURSOR);
yych = *++YYCURSOR;
@@ -6381,7 +6385,7 @@ yy668:
{
return T_CLONE;
}
-#line 6385 "Zend/zend_language_scanner.c"
+#line 6389 "Zend/zend_language_scanner.c"
yy670:
YYDEBUG(670, *YYCURSOR);
yych = *++YYCURSOR;
@@ -6399,7 +6403,7 @@ yy671:
{
return T_CLASS;
}
-#line 6403 "Zend/zend_language_scanner.c"
+#line 6407 "Zend/zend_language_scanner.c"
yy673:
YYDEBUG(673, *YYCURSOR);
yych = *++YYCURSOR;
@@ -6449,7 +6453,7 @@ yy680:
{
return T_CALLABLE;
}
-#line 6453 "Zend/zend_language_scanner.c"
+#line 6457 "Zend/zend_language_scanner.c"
yy682:
YYDEBUG(682, *YYCURSOR);
++YYCURSOR;
@@ -6462,7 +6466,7 @@ yy682:
{
return T_CASE;
}
-#line 6466 "Zend/zend_language_scanner.c"
+#line 6470 "Zend/zend_language_scanner.c"
yy684:
YYDEBUG(684, *YYCURSOR);
yych = *++YYCURSOR;
@@ -6480,7 +6484,7 @@ yy685:
{
return T_CATCH;
}
-#line 6484 "Zend/zend_language_scanner.c"
+#line 6488 "Zend/zend_language_scanner.c"
yy687:
YYDEBUG(687, *YYCURSOR);
yych = *++YYCURSOR;
@@ -6535,7 +6539,7 @@ yy695:
{
return T_FUNCTION;
}
-#line 6539 "Zend/zend_language_scanner.c"
+#line 6543 "Zend/zend_language_scanner.c"
yy697:
YYDEBUG(697, *YYCURSOR);
++YYCURSOR;
@@ -6563,7 +6567,7 @@ yy698:
{
return T_FOR;
}
-#line 6567 "Zend/zend_language_scanner.c"
+#line 6571 "Zend/zend_language_scanner.c"
yy699:
YYDEBUG(699, *YYCURSOR);
yych = *++YYCURSOR;
@@ -6591,7 +6595,7 @@ yy702:
{
return T_FOREACH;
}
-#line 6595 "Zend/zend_language_scanner.c"
+#line 6599 "Zend/zend_language_scanner.c"
yy704:
YYDEBUG(704, *YYCURSOR);
yych = *++YYCURSOR;
@@ -6614,7 +6618,7 @@ yy706:
{
return T_FINAL;
}
-#line 6618 "Zend/zend_language_scanner.c"
+#line 6622 "Zend/zend_language_scanner.c"
yy708:
YYDEBUG(708, *YYCURSOR);
yych = *++YYCURSOR;
@@ -6649,7 +6653,7 @@ yy710:
{
return T_DO;
}
-#line 6653 "Zend/zend_language_scanner.c"
+#line 6657 "Zend/zend_language_scanner.c"
yy712:
YYDEBUG(712, *YYCURSOR);
++YYCURSOR;
@@ -6662,7 +6666,7 @@ yy712:
{
return T_EXIT;
}
-#line 6666 "Zend/zend_language_scanner.c"
+#line 6670 "Zend/zend_language_scanner.c"
yy714:
YYDEBUG(714, *YYCURSOR);
yych = *++YYCURSOR;
@@ -6701,7 +6705,7 @@ yy719:
{
return T_DEFAULT;
}
-#line 6705 "Zend/zend_language_scanner.c"
+#line 6709 "Zend/zend_language_scanner.c"
yy721:
YYDEBUG(721, *YYCURSOR);
yych = *++YYCURSOR;
@@ -6729,7 +6733,7 @@ yy724:
{
return T_DECLARE;
}
-#line 6733 "Zend/zend_language_scanner.c"
+#line 6737 "Zend/zend_language_scanner.c"
yy726:
YYDEBUG(726, *YYCURSOR);
yych = *++YYCURSOR;
@@ -6813,7 +6817,7 @@ yy737:
{
return T_EXTENDS;
}
-#line 6817 "Zend/zend_language_scanner.c"
+#line 6821 "Zend/zend_language_scanner.c"
yy739:
YYDEBUG(739, *YYCURSOR);
++YYCURSOR;
@@ -6826,7 +6830,7 @@ yy739:
{
return T_EXIT;
}
-#line 6830 "Zend/zend_language_scanner.c"
+#line 6834 "Zend/zend_language_scanner.c"
yy741:
YYDEBUG(741, *YYCURSOR);
yych = *++YYCURSOR;
@@ -6844,7 +6848,7 @@ yy742:
{
return T_EVAL;
}
-#line 6848 "Zend/zend_language_scanner.c"
+#line 6852 "Zend/zend_language_scanner.c"
yy744:
YYDEBUG(744, *YYCURSOR);
yych = *++YYCURSOR;
@@ -6918,7 +6922,7 @@ yy753:
{
return T_ENDWHILE;
}
-#line 6922 "Zend/zend_language_scanner.c"
+#line 6926 "Zend/zend_language_scanner.c"
yy755:
YYDEBUG(755, *YYCURSOR);
yych = *++YYCURSOR;
@@ -6951,7 +6955,7 @@ yy759:
{
return T_ENDSWITCH;
}
-#line 6955 "Zend/zend_language_scanner.c"
+#line 6959 "Zend/zend_language_scanner.c"
yy761:
YYDEBUG(761, *YYCURSOR);
++YYCURSOR;
@@ -6964,7 +6968,7 @@ yy761:
{
return T_ENDIF;
}
-#line 6968 "Zend/zend_language_scanner.c"
+#line 6972 "Zend/zend_language_scanner.c"
yy763:
YYDEBUG(763, *YYCURSOR);
yych = *++YYCURSOR;
@@ -6997,7 +7001,7 @@ yy765:
{
return T_ENDFOR;
}
-#line 7001 "Zend/zend_language_scanner.c"
+#line 7005 "Zend/zend_language_scanner.c"
yy766:
YYDEBUG(766, *YYCURSOR);
yych = *++YYCURSOR;
@@ -7025,7 +7029,7 @@ yy769:
{
return T_ENDFOREACH;
}
-#line 7029 "Zend/zend_language_scanner.c"
+#line 7033 "Zend/zend_language_scanner.c"
yy771:
YYDEBUG(771, *YYCURSOR);
yych = *++YYCURSOR;
@@ -7063,7 +7067,7 @@ yy776:
{
return T_ENDDECLARE;
}
-#line 7067 "Zend/zend_language_scanner.c"
+#line 7071 "Zend/zend_language_scanner.c"
yy778:
YYDEBUG(778, *YYCURSOR);
yych = *++YYCURSOR;
@@ -7086,7 +7090,7 @@ yy780:
{
return T_EMPTY;
}
-#line 7090 "Zend/zend_language_scanner.c"
+#line 7094 "Zend/zend_language_scanner.c"
yy782:
YYDEBUG(782, *YYCURSOR);
yych = *++YYCURSOR;
@@ -7119,7 +7123,7 @@ yy784:
{
return T_ELSE;
}
-#line 7123 "Zend/zend_language_scanner.c"
+#line 7127 "Zend/zend_language_scanner.c"
yy785:
YYDEBUG(785, *YYCURSOR);
yych = *++YYCURSOR;
@@ -7137,7 +7141,7 @@ yy786:
{
return T_ELSEIF;
}
-#line 7141 "Zend/zend_language_scanner.c"
+#line 7145 "Zend/zend_language_scanner.c"
yy788:
YYDEBUG(788, *YYCURSOR);
yych = *++YYCURSOR;
@@ -7155,7 +7159,7 @@ yy789:
{
return T_ECHO;
}
-#line 7159 "Zend/zend_language_scanner.c"
+#line 7163 "Zend/zend_language_scanner.c"
}
/* *********************************** */
yyc_ST_LOOKING_FOR_PROPERTY:
@@ -7236,7 +7240,7 @@ yy794:
HANDLE_NEWLINES(yytext, yyleng);
return T_WHITESPACE;
}
-#line 7240 "Zend/zend_language_scanner.c"
+#line 7244 "Zend/zend_language_scanner.c"
yy795:
YYDEBUG(795, *YYCURSOR);
++YYCURSOR;
@@ -7250,7 +7254,7 @@ yy796:
yy_pop_state(TSRMLS_C);
goto restart;
}
-#line 7254 "Zend/zend_language_scanner.c"
+#line 7258 "Zend/zend_language_scanner.c"
yy797:
YYDEBUG(797, *YYCURSOR);
++YYCURSOR;
@@ -7266,7 +7270,7 @@ yy798:
zendlval->type = IS_STRING;
return T_STRING;
}
-#line 7270 "Zend/zend_language_scanner.c"
+#line 7274 "Zend/zend_language_scanner.c"
yy799:
YYDEBUG(799, *YYCURSOR);
yych = *++YYCURSOR;
@@ -7291,7 +7295,7 @@ yy802:
{
return T_OBJECT_OPERATOR;
}
-#line 7295 "Zend/zend_language_scanner.c"
+#line 7299 "Zend/zend_language_scanner.c"
yy804:
YYDEBUG(804, *YYCURSOR);
++YYCURSOR;
@@ -7369,7 +7373,7 @@ yy809:
yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
return T_STRING_VARNAME;
}
-#line 7373 "Zend/zend_language_scanner.c"
+#line 7377 "Zend/zend_language_scanner.c"
yy810:
YYDEBUG(810, *YYCURSOR);
++YYCURSOR;
@@ -7382,7 +7386,7 @@ yy810:
yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
goto restart;
}
-#line 7386 "Zend/zend_language_scanner.c"
+#line 7390 "Zend/zend_language_scanner.c"
yy812:
YYDEBUG(812, *YYCURSOR);
++YYCURSOR;
@@ -7404,7 +7408,7 @@ yyc_ST_NOWDOC:
++YYCURSOR;
YYDEBUG(817, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 2344 "Zend/zend_language_scanner.l"
+#line 2348 "Zend/zend_language_scanner.l"
{
int newline = 0;
@@ -7459,7 +7463,7 @@ nowdoc_scan_done:
HANDLE_NEWLINES(yytext, yyleng - newline);
return T_ENCAPSED_AND_WHITESPACE;
}
-#line 7463 "Zend/zend_language_scanner.c"
+#line 7467 "Zend/zend_language_scanner.c"
/* *********************************** */
yyc_ST_VAR_OFFSET:
{
@@ -7566,7 +7570,7 @@ yy820:
yy821:
YYDEBUG(821, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1540 "Zend/zend_language_scanner.l"
+#line 1544 "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);
@@ -7578,7 +7582,7 @@ yy821:
}
return T_NUM_STRING;
}
-#line 7582 "Zend/zend_language_scanner.c"
+#line 7586 "Zend/zend_language_scanner.c"
yy822:
YYDEBUG(822, *YYCURSOR);
yych = *++YYCURSOR;
@@ -7598,23 +7602,23 @@ yy823:
yy824:
YYDEBUG(824, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1872 "Zend/zend_language_scanner.l"
+#line 1876 "Zend/zend_language_scanner.l"
{
/* Only '[' can be valid, but returning other tokens will allow a more explicit parse error */
return yytext[0];
}
-#line 7607 "Zend/zend_language_scanner.c"
+#line 7611 "Zend/zend_language_scanner.c"
yy825:
YYDEBUG(825, *YYCURSOR);
++YYCURSOR;
YYDEBUG(826, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1867 "Zend/zend_language_scanner.l"
+#line 1871 "Zend/zend_language_scanner.l"
{
yy_pop_state(TSRMLS_C);
return ']';
}
-#line 7618 "Zend/zend_language_scanner.c"
+#line 7622 "Zend/zend_language_scanner.c"
yy827:
YYDEBUG(827, *YYCURSOR);
yych = *++YYCURSOR;
@@ -7624,14 +7628,14 @@ yy828:
++YYCURSOR;
YYDEBUG(829, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1877 "Zend/zend_language_scanner.l"
+#line 1881 "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 7635 "Zend/zend_language_scanner.c"
+#line 7639 "Zend/zend_language_scanner.c"
yy830:
YYDEBUG(830, *YYCURSOR);
++YYCURSOR;
@@ -7640,19 +7644,19 @@ yy830:
yy831:
YYDEBUG(831, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1884 "Zend/zend_language_scanner.l"
+#line 1888 "Zend/zend_language_scanner.l"
{
zend_copy_value(zendlval, yytext, yyleng);
zendlval->type = IS_STRING;
return T_STRING;
}
-#line 7650 "Zend/zend_language_scanner.c"
+#line 7654 "Zend/zend_language_scanner.c"
yy832:
YYDEBUG(832, *YYCURSOR);
++YYCURSOR;
YYDEBUG(833, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 2400 "Zend/zend_language_scanner.l"
+#line 2404 "Zend/zend_language_scanner.l"
{
if (YYCURSOR > YYLIMIT) {
return 0;
@@ -7661,7 +7665,7 @@ yy832:
zend_error(E_COMPILE_WARNING,"Unexpected character in input: '%c' (ASCII=%d) state=%d", yytext[0], yytext[0], YYSTATE);
goto restart;
}
-#line 7665 "Zend/zend_language_scanner.c"
+#line 7669 "Zend/zend_language_scanner.c"
yy834:
YYDEBUG(834, *YYCURSOR);
++YYCURSOR;
@@ -7697,13 +7701,13 @@ yy836:
yy838:
YYDEBUG(838, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1861 "Zend/zend_language_scanner.l"
+#line 1865 "Zend/zend_language_scanner.l"
{
zend_copy_value(zendlval, (yytext+1), (yyleng-1));
zendlval->type = IS_STRING;
return T_VARIABLE;
}
-#line 7707 "Zend/zend_language_scanner.c"
+#line 7711 "Zend/zend_language_scanner.c"
yy839:
YYDEBUG(839, *YYCURSOR);
++YYCURSOR;
@@ -7743,14 +7747,14 @@ yy844:
yy846:
YYDEBUG(846, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1552 "Zend/zend_language_scanner.l"
+#line 1556 "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 7754 "Zend/zend_language_scanner.c"
+#line 7758 "Zend/zend_language_scanner.c"
yy847:
YYDEBUG(847, *YYCURSOR);
++YYCURSOR;
@@ -7773,6 +7777,6 @@ yy849:
goto yy846;
}
}
-#line 2409 "Zend/zend_language_scanner.l"
+#line 2413 "Zend/zend_language_scanner.l"
}
diff --git a/Zend/zend_language_scanner.l b/Zend/zend_language_scanner.l
index 96168d3516..d530b53430 100644
--- a/Zend/zend_language_scanner.l
+++ b/Zend/zend_language_scanner.l
@@ -1481,7 +1481,11 @@ NEWLINE ("\r"|"\n"|"\r\n")
}
if (len < SIZEOF_LONG * 8) {
- zendlval->value.lval = strtol(bin, NULL, 2);
+ if (len == 0) {
+ zendlval->value.lval = 0;
+ } else {
+ zendlval->value.lval = strtol(bin, NULL, 2);
+ }
zendlval->type = IS_LONG;
return T_LNUMBER;
} else {
diff --git a/Zend/zend_language_scanner_defs.h b/Zend/zend_language_scanner_defs.h
index d05939b9c9..015a903ded 100644
--- a/Zend/zend_language_scanner_defs.h
+++ b/Zend/zend_language_scanner_defs.h
@@ -1,4 +1,4 @@
-/* Generated by re2c 0.13.5 on Wed Feb 15 17:48:20 2012 */
+/* Generated by re2c 0.13.5 on Thu Mar 1 21:27:30 2012 */
#line 3 "Zend/zend_language_scanner_defs.h"
enum YYCONDTYPE {