summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Zend/zend_ini_scanner.c237
-rw-r--r--Zend/zend_ini_scanner.l7
-rw-r--r--Zend/zend_ini_scanner_defs.h2
3 files changed, 130 insertions, 116 deletions
diff --git a/Zend/zend_ini_scanner.c b/Zend/zend_ini_scanner.c
index cdfb643632..f6ac761f0f 100644
--- a/Zend/zend_ini_scanner.c
+++ b/Zend/zend_ini_scanner.c
@@ -1,4 +1,4 @@
-/* Generated by re2c 0.13.5 on Wed Nov 5 22:35:51 2008 */
+/* Generated by re2c 0.13.5 on Wed Dec 24 13:47:34 2008 */
#line 1 "Zend/zend_ini_scanner.l"
/*
+----------------------------------------------------------------------+
@@ -293,8 +293,15 @@ restart:
return 0;
}
+ /* Eat any UTF-8 BOM we find in the first 3 bytes */
+ if (YYCURSOR == SCNG(yy_start) && YYCURSOR + 3 < YYLIMIT) {
+ if (memcmp(YYCURSOR, "\xef\xbb\xbf", 3) == 0) {
+ YYCURSOR += 3;
+ goto restart;
+ }
+ }
-#line 298 "Zend/zend_ini_scanner.c"
+#line 305 "Zend/zend_ini_scanner.c"
{
YYCTYPE yych;
unsigned int yyaccept = 0;
@@ -473,11 +480,11 @@ yy2:
++YYCURSOR;
YYDEBUG(3, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 495 "Zend/zend_ini_scanner.l"
+#line 502 "Zend/zend_ini_scanner.l"
{
return 0;
}
-#line 481 "Zend/zend_ini_scanner.c"
+#line 488 "Zend/zend_ini_scanner.c"
yy4:
YYDEBUG(4, *YYCURSOR);
yyaccept = 0;
@@ -486,24 +493,24 @@ yy4:
yy5:
YYDEBUG(5, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 467 "Zend/zend_ini_scanner.l"
+#line 474 "Zend/zend_ini_scanner.l"
{
/* eat whitespace */
goto restart;
}
-#line 495 "Zend/zend_ini_scanner.c"
+#line 502 "Zend/zend_ini_scanner.c"
yy6:
YYDEBUG(6, *YYCURSOR);
++YYCURSOR;
yy7:
YYDEBUG(7, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 472 "Zend/zend_ini_scanner.l"
+#line 479 "Zend/zend_ini_scanner.l"
{
SCNG(lineno)++;
return END_OF_LINE;
}
-#line 507 "Zend/zend_ini_scanner.c"
+#line 514 "Zend/zend_ini_scanner.c"
yy8:
YYDEBUG(8, *YYCURSOR);
yych = *++YYCURSOR;
@@ -514,11 +521,11 @@ yy9:
++YYCURSOR;
YYDEBUG(10, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 422 "Zend/zend_ini_scanner.l"
+#line 429 "Zend/zend_ini_scanner.l"
{ /* Disallow these chars outside option values */
return yytext[0];
}
-#line 522 "Zend/zend_ini_scanner.c"
+#line 529 "Zend/zend_ini_scanner.c"
yy11:
YYDEBUG(11, *YYCURSOR);
yyaccept = 1;
@@ -532,11 +539,11 @@ yy12:
yy13:
YYDEBUG(13, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 382 "Zend/zend_ini_scanner.l"
+#line 389 "Zend/zend_ini_scanner.l"
{ /* Get option name */
RETURN_TOKEN(TC_LABEL, yytext, yyleng);
}
-#line 540 "Zend/zend_ini_scanner.c"
+#line 547 "Zend/zend_ini_scanner.c"
yy14:
YYDEBUG(14, *YYCURSOR);
yyaccept = 1;
@@ -550,7 +557,7 @@ yy15:
yy16:
YYDEBUG(16, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 386 "Zend/zend_ini_scanner.l"
+#line 393 "Zend/zend_ini_scanner.l"
{ /* Start option value */
if (SCNG(scanner_mode) == ZEND_INI_SCANNER_RAW) {
yy_push_state(ST_RAW TSRMLS_CC);
@@ -559,7 +566,7 @@ yy16:
}
return '=';
}
-#line 563 "Zend/zend_ini_scanner.c"
+#line 570 "Zend/zend_ini_scanner.c"
yy17:
YYDEBUG(17, *YYCURSOR);
yych = *++YYCURSOR;
@@ -615,7 +622,7 @@ yy22:
++YYCURSOR;
YYDEBUG(23, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 320 "Zend/zend_ini_scanner.l"
+#line 327 "Zend/zend_ini_scanner.l"
{ /* Section start */
/* Enter section data lookup state */
if (SCNG(scanner_mode) == ZEND_INI_SCANNER_RAW) {
@@ -625,7 +632,7 @@ yy22:
}
return TC_SECTION;
}
-#line 629 "Zend/zend_ini_scanner.c"
+#line 636 "Zend/zend_ini_scanner.c"
yy24:
YYDEBUG(24, *YYCURSOR);
++YYCURSOR;
@@ -655,7 +662,7 @@ yy27:
}
YYDEBUG(29, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 345 "Zend/zend_ini_scanner.l"
+#line 352 "Zend/zend_ini_scanner.l"
{ /* Start of option with offset */
/* Eat trailing whitespace and [ */
EAT_TRAILING_WHITESPACE_EX('[');
@@ -665,7 +672,7 @@ yy27:
RETURN_TOKEN(TC_OFFSET, yytext, yyleng);
}
-#line 669 "Zend/zend_ini_scanner.c"
+#line 676 "Zend/zend_ini_scanner.c"
yy30:
YYDEBUG(30, *YYCURSOR);
++YYCURSOR;
@@ -677,11 +684,11 @@ yy30:
yy31:
YYDEBUG(31, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 374 "Zend/zend_ini_scanner.l"
+#line 381 "Zend/zend_ini_scanner.l"
{ /* TRUE value (when used outside option value/offset this causes parse error!) */
RETURN_TOKEN(BOOL_TRUE, "1", 1);
}
-#line 685 "Zend/zend_ini_scanner.c"
+#line 692 "Zend/zend_ini_scanner.c"
yy32:
YYDEBUG(32, *YYCURSOR);
++YYCURSOR;
@@ -719,11 +726,11 @@ yy37:
yy38:
YYDEBUG(38, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 378 "Zend/zend_ini_scanner.l"
+#line 385 "Zend/zend_ini_scanner.l"
{ /* FALSE value (when used outside option value/offset this causes parse error!)*/
RETURN_TOKEN(BOOL_FALSE, "", 0);
}
-#line 727 "Zend/zend_ini_scanner.c"
+#line 734 "Zend/zend_ini_scanner.c"
yy39:
YYDEBUG(39, *YYCURSOR);
++YYCURSOR;
@@ -818,13 +825,13 @@ yy52:
yy53:
YYDEBUG(53, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 477 "Zend/zend_ini_scanner.l"
+#line 484 "Zend/zend_ini_scanner.l"
{ /* Comment */
BEGIN(INITIAL);
SCNG(lineno)++;
return END_OF_LINE;
}
-#line 828 "Zend/zend_ini_scanner.c"
+#line 835 "Zend/zend_ini_scanner.c"
yy54:
YYDEBUG(54, *YYCURSOR);
yych = *++YYCURSOR;
@@ -846,14 +853,14 @@ yy57:
yy58:
YYDEBUG(58, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 483 "Zend/zend_ini_scanner.l"
+#line 490 "Zend/zend_ini_scanner.l"
{ /* #Comment */
zend_error(E_DEPRECATED, "Comments starting with '#' are deprecated in %s on line %d", zend_ini_scanner_get_filename(TSRMLS_C), SCNG(lineno));
BEGIN(INITIAL);
SCNG(lineno)++;
return END_OF_LINE;
}
-#line 857 "Zend/zend_ini_scanner.c"
+#line 864 "Zend/zend_ini_scanner.c"
yy59:
YYDEBUG(59, *YYCURSOR);
yych = *++YYCURSOR;
@@ -950,7 +957,7 @@ yyc_ST_DOUBLE_QUOTES:
yy67:
YYDEBUG(67, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 449 "Zend/zend_ini_scanner.l"
+#line 456 "Zend/zend_ini_scanner.l"
{ /* Escape double quoted string contents */
if(yyleng > 1 && yytext[yyleng-1] == '"' && yytext[yyleng-2] == '\\') {
yyless(yyleng-1);
@@ -959,7 +966,7 @@ yy67:
zend_ini_escape_string(ini_lval, yytext, yyleng, '"' TSRMLS_CC);
return TC_QUOTED_STRING;
}
-#line 963 "Zend/zend_ini_scanner.c"
+#line 970 "Zend/zend_ini_scanner.c"
yy68:
YYDEBUG(68, *YYCURSOR);
++YYCURSOR;
@@ -968,12 +975,12 @@ yy68:
yy69:
YYDEBUG(69, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 458 "Zend/zend_ini_scanner.l"
+#line 465 "Zend/zend_ini_scanner.l"
{ /* Double quoted '"' string ends */
yy_pop_state(TSRMLS_C);
return '"';
}
-#line 977 "Zend/zend_ini_scanner.c"
+#line 984 "Zend/zend_ini_scanner.c"
yy70:
YYDEBUG(70, *YYCURSOR);
++YYCURSOR;
@@ -988,11 +995,11 @@ yy70:
yy71:
YYDEBUG(71, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 495 "Zend/zend_ini_scanner.l"
+#line 502 "Zend/zend_ini_scanner.l"
{
return 0;
}
-#line 996 "Zend/zend_ini_scanner.c"
+#line 1003 "Zend/zend_ini_scanner.c"
yy72:
YYDEBUG(72, *YYCURSOR);
yyaccept = 1;
@@ -1108,12 +1115,12 @@ yy87:
++YYCURSOR;
YYDEBUG(88, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 360 "Zend/zend_ini_scanner.l"
+#line 367 "Zend/zend_ini_scanner.l"
{ /* Variable start */
yy_push_state(ST_VARNAME TSRMLS_CC);
return TC_DOLLAR_CURLY;
}
-#line 1117 "Zend/zend_ini_scanner.c"
+#line 1124 "Zend/zend_ini_scanner.c"
yy89:
YYDEBUG(89, *YYCURSOR);
++YYCURSOR;
@@ -1212,11 +1219,11 @@ yy93:
yy94:
YYDEBUG(94, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 440 "Zend/zend_ini_scanner.l"
+#line 447 "Zend/zend_ini_scanner.l"
{ /* Get rest as section/offset value */
RETURN_TOKEN(TC_STRING, yytext, yyleng);
}
-#line 1220 "Zend/zend_ini_scanner.c"
+#line 1227 "Zend/zend_ini_scanner.c"
yy95:
YYDEBUG(95, *YYCURSOR);
yyaccept = 0;
@@ -1233,23 +1240,23 @@ yy96:
yy97:
YYDEBUG(97, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 495 "Zend/zend_ini_scanner.l"
+#line 502 "Zend/zend_ini_scanner.l"
{
return 0;
}
-#line 1241 "Zend/zend_ini_scanner.c"
+#line 1248 "Zend/zend_ini_scanner.c"
yy98:
YYDEBUG(98, *YYCURSOR);
++YYCURSOR;
yy99:
YYDEBUG(99, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 444 "Zend/zend_ini_scanner.l"
+#line 451 "Zend/zend_ini_scanner.l"
{ /* Double quoted '"' string start */
yy_push_state(ST_DOUBLE_QUOTES TSRMLS_CC);
return '"';
}
-#line 1253 "Zend/zend_ini_scanner.c"
+#line 1260 "Zend/zend_ini_scanner.c"
yy100:
YYDEBUG(100, *YYCURSOR);
yych = *++YYCURSOR;
@@ -1311,11 +1318,11 @@ yy104:
yy105:
YYDEBUG(105, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 418 "Zend/zend_ini_scanner.l"
+#line 425 "Zend/zend_ini_scanner.l"
{ /* Get number option value as string */
RETURN_TOKEN(TC_NUMBER, yytext, yyleng);
}
-#line 1319 "Zend/zend_ini_scanner.c"
+#line 1326 "Zend/zend_ini_scanner.c"
yy106:
YYDEBUG(106, *YYCURSOR);
yyaccept = 3;
@@ -1341,11 +1348,11 @@ yy106:
yy107:
YYDEBUG(107, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 414 "Zend/zend_ini_scanner.l"
+#line 421 "Zend/zend_ini_scanner.l"
{ /* Get constant option value */
RETURN_TOKEN(TC_CONSTANT, yytext, yyleng);
}
-#line 1349 "Zend/zend_ini_scanner.c"
+#line 1356 "Zend/zend_ini_scanner.c"
yy108:
YYDEBUG(108, *YYCURSOR);
yych = *++YYCURSOR;
@@ -1356,12 +1363,12 @@ yy109:
yy110:
YYDEBUG(110, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 355 "Zend/zend_ini_scanner.l"
+#line 362 "Zend/zend_ini_scanner.l"
{ /* End of section or an option offset */
BEGIN(INITIAL);
return ']';
}
-#line 1365 "Zend/zend_ini_scanner.c"
+#line 1372 "Zend/zend_ini_scanner.c"
yy111:
YYDEBUG(111, *YYCURSOR);
yyaccept = 0;
@@ -1651,7 +1658,7 @@ yy132:
++YYCURSOR;
YYDEBUG(135, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 330 "Zend/zend_ini_scanner.l"
+#line 337 "Zend/zend_ini_scanner.l"
{ /* Raw string */
/* Eat leading and trailing single quotes */
if (yytext[0] == '\'' && yytext[yyleng - 1] == '\'') {
@@ -1660,18 +1667,18 @@ yy132:
}
RETURN_TOKEN(TC_RAW, yytext, yyleng);
}
-#line 1664 "Zend/zend_ini_scanner.c"
+#line 1671 "Zend/zend_ini_scanner.c"
yy136:
YYDEBUG(136, *YYCURSOR);
++YYCURSOR;
YYDEBUG(137, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 360 "Zend/zend_ini_scanner.l"
+#line 367 "Zend/zend_ini_scanner.l"
{ /* Variable start */
yy_push_state(ST_VARNAME TSRMLS_CC);
return TC_DOLLAR_CURLY;
}
-#line 1675 "Zend/zend_ini_scanner.c"
+#line 1682 "Zend/zend_ini_scanner.c"
yy138:
YYDEBUG(138, *YYCURSOR);
yyaccept = 0;
@@ -1778,7 +1785,7 @@ yy144:
yy145:
YYDEBUG(145, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 395 "Zend/zend_ini_scanner.l"
+#line 402 "Zend/zend_ini_scanner.l"
{ /* Raw value, only used when SCNG(scanner_mode) == ZEND_INI_SCANNER_RAW. */
/* Eat leading and trailing double quotes */
if (yytext[0] == '"' && yytext[yyleng - 1] == '"') {
@@ -1787,7 +1794,7 @@ yy145:
}
RETURN_TOKEN(TC_RAW, yytext, yyleng);
}
-#line 1791 "Zend/zend_ini_scanner.c"
+#line 1798 "Zend/zend_ini_scanner.c"
yy146:
YYDEBUG(146, *YYCURSOR);
yyaccept = 0;
@@ -1809,13 +1816,13 @@ yy147:
yy148:
YYDEBUG(148, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 408 "Zend/zend_ini_scanner.l"
+#line 415 "Zend/zend_ini_scanner.l"
{ /* End of option value */
BEGIN(INITIAL);
SCNG(lineno)++;
return END_OF_LINE;
}
-#line 1819 "Zend/zend_ini_scanner.c"
+#line 1826 "Zend/zend_ini_scanner.c"
yy149:
YYDEBUG(149, *YYCURSOR);
yych = *++YYCURSOR;
@@ -1829,12 +1836,12 @@ yy150:
yy151:
YYDEBUG(151, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 490 "Zend/zend_ini_scanner.l"
+#line 497 "Zend/zend_ini_scanner.l"
{ /* End of option value (if EOF is reached before EOL */
BEGIN(INITIAL);
return END_OF_LINE;
}
-#line 1838 "Zend/zend_ini_scanner.c"
+#line 1845 "Zend/zend_ini_scanner.c"
yy152:
YYDEBUG(152, *YYCURSOR);
yych = *++YYCURSOR;
@@ -1856,13 +1863,13 @@ yy155:
yy156:
YYDEBUG(156, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 477 "Zend/zend_ini_scanner.l"
+#line 484 "Zend/zend_ini_scanner.l"
{ /* Comment */
BEGIN(INITIAL);
SCNG(lineno)++;
return END_OF_LINE;
}
-#line 1866 "Zend/zend_ini_scanner.c"
+#line 1873 "Zend/zend_ini_scanner.c"
yy157:
YYDEBUG(157, *YYCURSOR);
yych = *++YYCURSOR;
@@ -1964,21 +1971,21 @@ yyc_ST_SECTION_RAW:
yy167:
YYDEBUG(167, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 404 "Zend/zend_ini_scanner.l"
+#line 411 "Zend/zend_ini_scanner.l"
{ /* Raw value, only used when SCNG(scanner_mode) == ZEND_INI_SCANNER_RAW. */
RETURN_TOKEN(TC_RAW, yytext, yyleng);
}
-#line 1972 "Zend/zend_ini_scanner.c"
+#line 1979 "Zend/zend_ini_scanner.c"
yy168:
YYDEBUG(168, *YYCURSOR);
++YYCURSOR;
YYDEBUG(169, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 495 "Zend/zend_ini_scanner.l"
+#line 502 "Zend/zend_ini_scanner.l"
{
return 0;
}
-#line 1982 "Zend/zend_ini_scanner.c"
+#line 1989 "Zend/zend_ini_scanner.c"
yy170:
YYDEBUG(170, *YYCURSOR);
++YYCURSOR;
@@ -1987,13 +1994,13 @@ yy170:
yy171:
YYDEBUG(171, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 339 "Zend/zend_ini_scanner.l"
+#line 346 "Zend/zend_ini_scanner.l"
{ /* End of section */
BEGIN(INITIAL);
SCNG(lineno)++;
return ']';
}
-#line 1997 "Zend/zend_ini_scanner.c"
+#line 2004 "Zend/zend_ini_scanner.c"
yy172:
YYDEBUG(172, *YYCURSOR);
++YYCURSOR;
@@ -2114,11 +2121,11 @@ yy180:
yy181:
YYDEBUG(181, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 440 "Zend/zend_ini_scanner.l"
+#line 447 "Zend/zend_ini_scanner.l"
{ /* Get rest as section/offset value */
RETURN_TOKEN(TC_STRING, yytext, yyleng);
}
-#line 2122 "Zend/zend_ini_scanner.c"
+#line 2129 "Zend/zend_ini_scanner.c"
yy182:
YYDEBUG(182, *YYCURSOR);
yyaccept = 0;
@@ -2137,23 +2144,23 @@ yy183:
yy184:
YYDEBUG(184, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 495 "Zend/zend_ini_scanner.l"
+#line 502 "Zend/zend_ini_scanner.l"
{
return 0;
}
-#line 2145 "Zend/zend_ini_scanner.c"
+#line 2152 "Zend/zend_ini_scanner.c"
yy185:
YYDEBUG(185, *YYCURSOR);
++YYCURSOR;
yy186:
YYDEBUG(186, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 444 "Zend/zend_ini_scanner.l"
+#line 451 "Zend/zend_ini_scanner.l"
{ /* Double quoted '"' string start */
yy_push_state(ST_DOUBLE_QUOTES TSRMLS_CC);
return '"';
}
-#line 2157 "Zend/zend_ini_scanner.c"
+#line 2164 "Zend/zend_ini_scanner.c"
yy187:
YYDEBUG(187, *YYCURSOR);
yych = *++YYCURSOR;
@@ -2215,11 +2222,11 @@ yy191:
yy192:
YYDEBUG(192, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 418 "Zend/zend_ini_scanner.l"
+#line 425 "Zend/zend_ini_scanner.l"
{ /* Get number option value as string */
RETURN_TOKEN(TC_NUMBER, yytext, yyleng);
}
-#line 2223 "Zend/zend_ini_scanner.c"
+#line 2230 "Zend/zend_ini_scanner.c"
yy193:
YYDEBUG(193, *YYCURSOR);
yyaccept = 3;
@@ -2245,11 +2252,11 @@ yy193:
yy194:
YYDEBUG(194, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 414 "Zend/zend_ini_scanner.l"
+#line 421 "Zend/zend_ini_scanner.l"
{ /* Get constant option value */
RETURN_TOKEN(TC_CONSTANT, yytext, yyleng);
}
-#line 2253 "Zend/zend_ini_scanner.c"
+#line 2260 "Zend/zend_ini_scanner.c"
yy195:
YYDEBUG(195, *YYCURSOR);
yych = *++YYCURSOR;
@@ -2262,13 +2269,13 @@ yy196:
yy197:
YYDEBUG(197, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 339 "Zend/zend_ini_scanner.l"
+#line 346 "Zend/zend_ini_scanner.l"
{ /* End of section */
BEGIN(INITIAL);
SCNG(lineno)++;
return ']';
}
-#line 2272 "Zend/zend_ini_scanner.c"
+#line 2279 "Zend/zend_ini_scanner.c"
yy198:
YYDEBUG(198, *YYCURSOR);
++YYCURSOR;
@@ -2580,7 +2587,7 @@ yy223:
++YYCURSOR;
YYDEBUG(226, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 330 "Zend/zend_ini_scanner.l"
+#line 337 "Zend/zend_ini_scanner.l"
{ /* Raw string */
/* Eat leading and trailing single quotes */
if (yytext[0] == '\'' && yytext[yyleng - 1] == '\'') {
@@ -2589,18 +2596,18 @@ yy223:
}
RETURN_TOKEN(TC_RAW, yytext, yyleng);
}
-#line 2593 "Zend/zend_ini_scanner.c"
+#line 2600 "Zend/zend_ini_scanner.c"
yy227:
YYDEBUG(227, *YYCURSOR);
++YYCURSOR;
YYDEBUG(228, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 360 "Zend/zend_ini_scanner.l"
+#line 367 "Zend/zend_ini_scanner.l"
{ /* Variable start */
yy_push_state(ST_VARNAME TSRMLS_CC);
return TC_DOLLAR_CURLY;
}
-#line 2604 "Zend/zend_ini_scanner.c"
+#line 2611 "Zend/zend_ini_scanner.c"
yy229:
YYDEBUG(229, *YYCURSOR);
yyaccept = 0;
@@ -2779,12 +2786,12 @@ yy234:
yy235:
YYDEBUG(235, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 490 "Zend/zend_ini_scanner.l"
+#line 497 "Zend/zend_ini_scanner.l"
{ /* End of option value (if EOF is reached before EOL */
BEGIN(INITIAL);
return END_OF_LINE;
}
-#line 2788 "Zend/zend_ini_scanner.c"
+#line 2795 "Zend/zend_ini_scanner.c"
yy236:
YYDEBUG(236, *YYCURSOR);
yyaccept = 0;
@@ -2793,11 +2800,11 @@ yy236:
yy237:
YYDEBUG(237, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 436 "Zend/zend_ini_scanner.l"
+#line 443 "Zend/zend_ini_scanner.l"
{ /* Get everything else as option/offset value */
RETURN_TOKEN(TC_STRING, yytext, yyleng);
}
-#line 2801 "Zend/zend_ini_scanner.c"
+#line 2808 "Zend/zend_ini_scanner.c"
yy238:
YYDEBUG(238, *YYCURSOR);
yyaccept = 1;
@@ -2806,24 +2813,24 @@ yy238:
yy239:
YYDEBUG(239, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 463 "Zend/zend_ini_scanner.l"
+#line 470 "Zend/zend_ini_scanner.l"
{
RETURN_TOKEN(TC_WHITESPACE, yytext, yyleng);
}
-#line 2814 "Zend/zend_ini_scanner.c"
+#line 2821 "Zend/zend_ini_scanner.c"
yy240:
YYDEBUG(240, *YYCURSOR);
++YYCURSOR;
yy241:
YYDEBUG(241, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 408 "Zend/zend_ini_scanner.l"
+#line 415 "Zend/zend_ini_scanner.l"
{ /* End of option value */
BEGIN(INITIAL);
SCNG(lineno)++;
return END_OF_LINE;
}
-#line 2827 "Zend/zend_ini_scanner.c"
+#line 2834 "Zend/zend_ini_scanner.c"
yy242:
YYDEBUG(242, *YYCURSOR);
yych = *++YYCURSOR;
@@ -2837,23 +2844,23 @@ yy243:
yy244:
YYDEBUG(244, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 426 "Zend/zend_ini_scanner.l"
+#line 433 "Zend/zend_ini_scanner.l"
{ /* Boolean operators */
return yytext[0];
}
-#line 2845 "Zend/zend_ini_scanner.c"
+#line 2852 "Zend/zend_ini_scanner.c"
yy245:
YYDEBUG(245, *YYCURSOR);
++YYCURSOR;
yy246:
YYDEBUG(246, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 444 "Zend/zend_ini_scanner.l"
+#line 451 "Zend/zend_ini_scanner.l"
{ /* Double quoted '"' string start */
yy_push_state(ST_DOUBLE_QUOTES TSRMLS_CC);
return '"';
}
-#line 2857 "Zend/zend_ini_scanner.c"
+#line 2864 "Zend/zend_ini_scanner.c"
yy247:
YYDEBUG(247, *YYCURSOR);
yych = *++YYCURSOR;
@@ -2929,11 +2936,11 @@ yy251:
yy252:
YYDEBUG(252, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 418 "Zend/zend_ini_scanner.l"
+#line 425 "Zend/zend_ini_scanner.l"
{ /* Get number option value as string */
RETURN_TOKEN(TC_NUMBER, yytext, yyleng);
}
-#line 2937 "Zend/zend_ini_scanner.c"
+#line 2944 "Zend/zend_ini_scanner.c"
yy253:
YYDEBUG(253, *YYCURSOR);
yyaccept = 2;
@@ -2944,13 +2951,13 @@ yy254:
++YYCURSOR;
YYDEBUG(255, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 430 "Zend/zend_ini_scanner.l"
+#line 437 "Zend/zend_ini_scanner.l"
{ /* Make = used in option value to trigger error */
yyless(0);
BEGIN(INITIAL);
return END_OF_LINE;
}
-#line 2954 "Zend/zend_ini_scanner.c"
+#line 2961 "Zend/zend_ini_scanner.c"
yy256:
YYDEBUG(256, *YYCURSOR);
yyaccept = 4;
@@ -2986,11 +2993,11 @@ yy256:
yy257:
YYDEBUG(257, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 414 "Zend/zend_ini_scanner.l"
+#line 421 "Zend/zend_ini_scanner.l"
{ /* Get constant option value */
RETURN_TOKEN(TC_CONSTANT, yytext, yyleng);
}
-#line 2994 "Zend/zend_ini_scanner.c"
+#line 3001 "Zend/zend_ini_scanner.c"
yy258:
YYDEBUG(258, *YYCURSOR);
yyaccept = 4;
@@ -3482,11 +3489,11 @@ yy273:
yy274:
YYDEBUG(274, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 374 "Zend/zend_ini_scanner.l"
+#line 381 "Zend/zend_ini_scanner.l"
{ /* TRUE value (when used outside option value/offset this causes parse error!) */
RETURN_TOKEN(BOOL_TRUE, "1", 1);
}
-#line 3490 "Zend/zend_ini_scanner.c"
+#line 3497 "Zend/zend_ini_scanner.c"
yy275:
YYDEBUG(275, *YYCURSOR);
++YYCURSOR;
@@ -3686,11 +3693,11 @@ yy280:
yy281:
YYDEBUG(281, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 378 "Zend/zend_ini_scanner.l"
+#line 385 "Zend/zend_ini_scanner.l"
{ /* FALSE value (when used outside option value/offset this causes parse error!)*/
RETURN_TOKEN(BOOL_FALSE, "", 0);
}
-#line 3694 "Zend/zend_ini_scanner.c"
+#line 3701 "Zend/zend_ini_scanner.c"
yy282:
YYDEBUG(282, *YYCURSOR);
++YYCURSOR;
@@ -4066,13 +4073,13 @@ yy293:
yy294:
YYDEBUG(294, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 477 "Zend/zend_ini_scanner.l"
+#line 484 "Zend/zend_ini_scanner.l"
{ /* Comment */
BEGIN(INITIAL);
SCNG(lineno)++;
return END_OF_LINE;
}
-#line 4076 "Zend/zend_ini_scanner.c"
+#line 4083 "Zend/zend_ini_scanner.c"
yy295:
YYDEBUG(295, *YYCURSOR);
yych = *++YYCURSOR;
@@ -4284,7 +4291,7 @@ yy304:
++YYCURSOR;
YYDEBUG(307, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 330 "Zend/zend_ini_scanner.l"
+#line 337 "Zend/zend_ini_scanner.l"
{ /* Raw string */
/* Eat leading and trailing single quotes */
if (yytext[0] == '\'' && yytext[yyleng - 1] == '\'') {
@@ -4293,18 +4300,18 @@ yy304:
}
RETURN_TOKEN(TC_RAW, yytext, yyleng);
}
-#line 4297 "Zend/zend_ini_scanner.c"
+#line 4304 "Zend/zend_ini_scanner.c"
yy308:
YYDEBUG(308, *YYCURSOR);
++YYCURSOR;
YYDEBUG(309, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 360 "Zend/zend_ini_scanner.l"
+#line 367 "Zend/zend_ini_scanner.l"
{ /* Variable start */
yy_push_state(ST_VARNAME TSRMLS_CC);
return TC_DOLLAR_CURLY;
}
-#line 4308 "Zend/zend_ini_scanner.c"
+#line 4315 "Zend/zend_ini_scanner.c"
yy310:
YYDEBUG(310, *YYCURSOR);
++YYCURSOR;
@@ -4413,11 +4420,11 @@ yy319:
++YYCURSOR;
YYDEBUG(320, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 495 "Zend/zend_ini_scanner.l"
+#line 502 "Zend/zend_ini_scanner.l"
{
return 0;
}
-#line 4421 "Zend/zend_ini_scanner.c"
+#line 4428 "Zend/zend_ini_scanner.c"
yy321:
YYDEBUG(321, *YYCURSOR);
++YYCURSOR;
@@ -4426,22 +4433,22 @@ yy321:
yy322:
YYDEBUG(322, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 365 "Zend/zend_ini_scanner.l"
+#line 372 "Zend/zend_ini_scanner.l"
{ /* Variable name */
RETURN_TOKEN(TC_VARNAME, yytext, yyleng);
}
-#line 4434 "Zend/zend_ini_scanner.c"
+#line 4441 "Zend/zend_ini_scanner.c"
yy323:
YYDEBUG(323, *YYCURSOR);
++YYCURSOR;
YYDEBUG(324, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 369 "Zend/zend_ini_scanner.l"
+#line 376 "Zend/zend_ini_scanner.l"
{ /* Variable end */
yy_pop_state(TSRMLS_C);
return '}';
}
-#line 4445 "Zend/zend_ini_scanner.c"
+#line 4452 "Zend/zend_ini_scanner.c"
yy325:
YYDEBUG(325, *YYCURSOR);
++YYCURSOR;
@@ -4455,6 +4462,6 @@ yy326:
goto yy322;
}
}
-#line 499 "Zend/zend_ini_scanner.l"
+#line 506 "Zend/zend_ini_scanner.l"
}
diff --git a/Zend/zend_ini_scanner.l b/Zend/zend_ini_scanner.l
index 4782383030..f0afc28105 100644
--- a/Zend/zend_ini_scanner.l
+++ b/Zend/zend_ini_scanner.l
@@ -291,6 +291,13 @@ restart:
return 0;
}
+ /* Eat any UTF-8 BOM we find in the first 3 bytes */
+ if (YYCURSOR == SCNG(yy_start) && YYCURSOR + 3 < YYLIMIT) {
+ if (memcmp(YYCURSOR, "\xef\xbb\xbf", 3) == 0) {
+ YYCURSOR += 3;
+ goto restart;
+ }
+ }
/*!re2c
re2c:yyfill:check = 0;
LNUM [0-9]+
diff --git a/Zend/zend_ini_scanner_defs.h b/Zend/zend_ini_scanner_defs.h
index 97d3a07b44..45d22f2be2 100644
--- a/Zend/zend_ini_scanner_defs.h
+++ b/Zend/zend_ini_scanner_defs.h
@@ -1,4 +1,4 @@
-/* Generated by re2c 0.13.5 on Wed Nov 5 22:35:51 2008 */
+/* Generated by re2c 0.13.5 on Wed Dec 24 13:47:34 2008 */
#line 3 "Zend/zend_ini_scanner_defs.h"
enum YYCONDTYPE {