]> granicus.if.org Git - php/commitdiff
- Fixed bug #50952 (allow underscore _ in constants parsed in php.ini files)
authorPierre Joye <pajoye@php.net>
Sun, 7 Feb 2010 12:08:22 +0000 (12:08 +0000)
committerPierre Joye <pajoye@php.net>
Sun, 7 Feb 2010 12:08:22 +0000 (12:08 +0000)
Zend/zend_ini_scanner.c
Zend/zend_ini_scanner.l
Zend/zend_ini_scanner_defs.h

index 9a56194727fd6dd985623dd186a2b84b7659428c..24997970851cd406034694e5506866eaff705814 100644 (file)
@@ -1,4 +1,4 @@
-/* Generated by re2c 0.13.5 on Tue Dec  8 12:24:52 2009 */
+/* Generated by re2c 0.13.5 on Sun Feb  7 13:25:37 2010 */
 #line 1 "Zend/zend_ini_scanner.l"
 /*
    +----------------------------------------------------------------------+
@@ -1273,7 +1273,7 @@ yyc_ST_OFFSET:
                YYDEBUG(84, *YYCURSOR);
                YYFILL(2);
                yych = *YYCURSOR;
-               if (yych <= ',') {
+               if (yych <= '-') {
                        if (yych <= ' ') {
                                if (yych <= '\n') {
                                        if (yych <= 0x08) goto yy86;
@@ -1284,29 +1284,30 @@ yyc_ST_OFFSET:
                                        if (yych >= ' ') goto yy88;
                                }
                        } else {
-                               if (yych <= '#') {
+                               if (yych <= '$') {
                                        if (yych == '"') goto yy91;
+                                       if (yych >= '$') goto yy93;
                                } else {
-                                       if (yych <= '$') goto yy93;
                                        if (yych == '\'') goto yy94;
+                                       if (yych >= '-') goto yy95;
                                }
                        }
                } else {
-                       if (yych <= '@') {
-                               if (yych <= '/') {
-                                       if (yych <= '-') goto yy95;
+                       if (yych <= 'Z') {
+                               if (yych <= '9') {
                                        if (yych <= '.') goto yy96;
+                                       if (yych >= '0') goto yy97;
                                } else {
-                                       if (yych <= '9') goto yy97;
                                        if (yych == ';') goto yy89;
+                                       if (yych >= 'A') goto yy99;
                                }
                        } else {
-                               if (yych <= '\\') {
-                                       if (yych <= 'Z') goto yy99;
-                                       if (yych >= '\\') goto yy101;
-                               } else {
+                               if (yych <= '^') {
+                                       if (yych <= '[') goto yy86;
+                                       if (yych <= '\\') goto yy101;
                                        if (yych <= ']') goto yy102;
-                                       if (yych <= '`') goto yy86;
+                               } else {
+                                       if (yych == '`') goto yy86;
                                        if (yych <= 'z') goto yy99;
                                }
                        }
@@ -1323,7 +1324,7 @@ yy87:
                { /* Get rest as section/offset value */
        RETURN_TOKEN(TC_STRING, yytext, yyleng);
 }
-#line 1327 "Zend/zend_ini_scanner.c"
+#line 1328 "Zend/zend_ini_scanner.c"
 yy88:
                YYDEBUG(88, *YYCURSOR);
                yyaccept = 0;
@@ -1344,7 +1345,7 @@ yy90:
                {
        return 0;
 }
-#line 1348 "Zend/zend_ini_scanner.c"
+#line 1349 "Zend/zend_ini_scanner.c"
 yy91:
                YYDEBUG(91, *YYCURSOR);
                ++YYCURSOR;
@@ -1356,7 +1357,7 @@ yy92:
        yy_push_state(ST_DOUBLE_QUOTES TSRMLS_CC);
        return '"';
 }
-#line 1360 "Zend/zend_ini_scanner.c"
+#line 1361 "Zend/zend_ini_scanner.c"
 yy93:
                YYDEBUG(93, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -1422,7 +1423,7 @@ yy98:
                { /* Get number option value as string */
        RETURN_TOKEN(TC_NUMBER, yytext, yyleng);
 }
-#line 1426 "Zend/zend_ini_scanner.c"
+#line 1427 "Zend/zend_ini_scanner.c"
 yy99:
                YYDEBUG(99, *YYCURSOR);
                yyaccept = 3;
@@ -1452,7 +1453,7 @@ yy100:
                { /* Get constant option value */
        RETURN_TOKEN(TC_CONSTANT, yytext, yyleng);
 }
-#line 1456 "Zend/zend_ini_scanner.c"
+#line 1457 "Zend/zend_ini_scanner.c"
 yy101:
                YYDEBUG(101, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -1468,7 +1469,7 @@ yy103:
        BEGIN(INITIAL);
        return ']';
 }
-#line 1472 "Zend/zend_ini_scanner.c"
+#line 1473 "Zend/zend_ini_scanner.c"
 yy104:
                YYDEBUG(104, *YYCURSOR);
                yyaccept = 0;
@@ -1767,7 +1768,7 @@ yy125:
        }
        RETURN_TOKEN(TC_RAW, yytext, yyleng);
 }
-#line 1771 "Zend/zend_ini_scanner.c"
+#line 1772 "Zend/zend_ini_scanner.c"
 yy129:
                YYDEBUG(129, *YYCURSOR);
                ++YYCURSOR;
@@ -1778,7 +1779,7 @@ yy129:
        yy_push_state(ST_VARNAME TSRMLS_CC);
        return TC_DOLLAR_CURLY;
 }
-#line 1782 "Zend/zend_ini_scanner.c"
+#line 1783 "Zend/zend_ini_scanner.c"
 yy131:
                YYDEBUG(131, *YYCURSOR);
                yyaccept = 0;
@@ -1891,7 +1892,7 @@ yy138:
        }
        RETURN_TOKEN(TC_RAW, yytext, yyleng);
 }
-#line 1895 "Zend/zend_ini_scanner.c"
+#line 1896 "Zend/zend_ini_scanner.c"
 yy139:
                YYDEBUG(139, *YYCURSOR);
                yyaccept = 0;
@@ -1919,7 +1920,7 @@ yy141:
        SCNG(lineno)++;
        return END_OF_LINE;
 }
-#line 1923 "Zend/zend_ini_scanner.c"
+#line 1924 "Zend/zend_ini_scanner.c"
 yy142:
                YYDEBUG(142, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -1937,7 +1938,7 @@ yy143:
        BEGIN(INITIAL);
        return END_OF_LINE;
 }
-#line 1941 "Zend/zend_ini_scanner.c"
+#line 1942 "Zend/zend_ini_scanner.c"
 yy145:
                YYDEBUG(145, *YYCURSOR);
                ++YYCURSOR;
@@ -1961,7 +1962,7 @@ yy148:
        SCNG(lineno)++;
        return END_OF_LINE;
 }
-#line 1965 "Zend/zend_ini_scanner.c"
+#line 1966 "Zend/zend_ini_scanner.c"
 yy149:
                YYDEBUG(149, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -2063,7 +2064,7 @@ yy159:
                { /* Raw value, only used when SCNG(scanner_mode) == ZEND_INI_SCANNER_RAW. */
        RETURN_TOKEN(TC_RAW, yytext, yyleng);
 }
-#line 2067 "Zend/zend_ini_scanner.c"
+#line 2068 "Zend/zend_ini_scanner.c"
 yy160:
                YYDEBUG(160, *YYCURSOR);
                ++YYCURSOR;
@@ -2073,7 +2074,7 @@ yy160:
                {
        return 0;
 }
-#line 2077 "Zend/zend_ini_scanner.c"
+#line 2078 "Zend/zend_ini_scanner.c"
 yy162:
                YYDEBUG(162, *YYCURSOR);
                ++YYCURSOR;
@@ -2088,7 +2089,7 @@ yy163:
        SCNG(lineno)++;
        return ']';
 }
-#line 2092 "Zend/zend_ini_scanner.c"
+#line 2093 "Zend/zend_ini_scanner.c"
 yy164:
                YYDEBUG(164, *YYCURSOR);
                ++YYCURSOR;
@@ -2163,7 +2164,7 @@ yyc_ST_SECTION_VALUE:
                YYDEBUG(170, *YYCURSOR);
                YYFILL(3);
                yych = *YYCURSOR;
-               if (yych <= ',') {
+               if (yych <= '-') {
                        if (yych <= ' ') {
                                if (yych <= '\n') {
                                        if (yych <= 0x08) goto yy172;
@@ -2174,29 +2175,30 @@ yyc_ST_SECTION_VALUE:
                                        if (yych >= ' ') goto yy174;
                                }
                        } else {
-                               if (yych <= '#') {
+                               if (yych <= '$') {
                                        if (yych == '"') goto yy177;
+                                       if (yych >= '$') goto yy179;
                                } else {
-                                       if (yych <= '$') goto yy179;
                                        if (yych == '\'') goto yy180;
+                                       if (yych >= '-') goto yy181;
                                }
                        }
                } else {
-                       if (yych <= '@') {
-                               if (yych <= '/') {
-                                       if (yych <= '-') goto yy181;
+                       if (yych <= 'Z') {
+                               if (yych <= '9') {
                                        if (yych <= '.') goto yy182;
+                                       if (yych >= '0') goto yy183;
                                } else {
-                                       if (yych <= '9') goto yy183;
                                        if (yych == ';') goto yy175;
+                                       if (yych >= 'A') goto yy185;
                                }
                        } else {
-                               if (yych <= '\\') {
-                                       if (yych <= 'Z') goto yy185;
-                                       if (yych >= '\\') goto yy187;
-                               } else {
+                               if (yych <= '^') {
+                                       if (yych <= '[') goto yy172;
+                                       if (yych <= '\\') goto yy187;
                                        if (yych <= ']') goto yy188;
-                                       if (yych <= '`') goto yy172;
+                               } else {
+                                       if (yych == '`') goto yy172;
                                        if (yych <= 'z') goto yy185;
                                }
                        }
@@ -2213,7 +2215,7 @@ yy173:
                { /* Get rest as section/offset value */
        RETURN_TOKEN(TC_STRING, yytext, yyleng);
 }
-#line 2217 "Zend/zend_ini_scanner.c"
+#line 2219 "Zend/zend_ini_scanner.c"
 yy174:
                YYDEBUG(174, *YYCURSOR);
                yyaccept = 0;
@@ -2236,7 +2238,7 @@ yy176:
                {
        return 0;
 }
-#line 2240 "Zend/zend_ini_scanner.c"
+#line 2242 "Zend/zend_ini_scanner.c"
 yy177:
                YYDEBUG(177, *YYCURSOR);
                ++YYCURSOR;
@@ -2248,7 +2250,7 @@ yy178:
        yy_push_state(ST_DOUBLE_QUOTES TSRMLS_CC);
        return '"';
 }
-#line 2252 "Zend/zend_ini_scanner.c"
+#line 2254 "Zend/zend_ini_scanner.c"
 yy179:
                YYDEBUG(179, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -2314,7 +2316,7 @@ yy184:
                { /* Get number option value as string */
        RETURN_TOKEN(TC_NUMBER, yytext, yyleng);
 }
-#line 2318 "Zend/zend_ini_scanner.c"
+#line 2320 "Zend/zend_ini_scanner.c"
 yy185:
                YYDEBUG(185, *YYCURSOR);
                yyaccept = 3;
@@ -2344,7 +2346,7 @@ yy186:
                { /* Get constant option value */
        RETURN_TOKEN(TC_CONSTANT, yytext, yyleng);
 }
-#line 2348 "Zend/zend_ini_scanner.c"
+#line 2350 "Zend/zend_ini_scanner.c"
 yy187:
                YYDEBUG(187, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -2363,7 +2365,7 @@ yy189:
        SCNG(lineno)++;
        return ']';
 }
-#line 2367 "Zend/zend_ini_scanner.c"
+#line 2369 "Zend/zend_ini_scanner.c"
 yy190:
                YYDEBUG(190, *YYCURSOR);
                ++YYCURSOR;
@@ -2684,7 +2686,7 @@ yy215:
        }
        RETURN_TOKEN(TC_RAW, yytext, yyleng);
 }
-#line 2688 "Zend/zend_ini_scanner.c"
+#line 2690 "Zend/zend_ini_scanner.c"
 yy219:
                YYDEBUG(219, *YYCURSOR);
                ++YYCURSOR;
@@ -2695,7 +2697,7 @@ yy219:
        yy_push_state(ST_VARNAME TSRMLS_CC);
        return TC_DOLLAR_CURLY;
 }
-#line 2699 "Zend/zend_ini_scanner.c"
+#line 2701 "Zend/zend_ini_scanner.c"
 yy221:
                YYDEBUG(221, *YYCURSOR);
                yyaccept = 0;
@@ -2835,6 +2837,7 @@ yyc_ST_VALUE:
                case 'W':
                case 'X':
                case 'Z':
+               case '_':
                case 'a':
                case 'b':
                case 'c':
@@ -2879,7 +2882,7 @@ yy227:
        BEGIN(INITIAL);
        return END_OF_LINE;
 }
-#line 2883 "Zend/zend_ini_scanner.c"
+#line 2886 "Zend/zend_ini_scanner.c"
 yy228:
                YYDEBUG(228, *YYCURSOR);
                yyaccept = 0;
@@ -2892,7 +2895,7 @@ yy229:
                { /* Get everything else as option/offset value */
        RETURN_TOKEN(TC_STRING, yytext, yyleng);
 }
-#line 2896 "Zend/zend_ini_scanner.c"
+#line 2899 "Zend/zend_ini_scanner.c"
 yy230:
                YYDEBUG(230, *YYCURSOR);
                yyaccept = 1;
@@ -2905,7 +2908,7 @@ yy231:
                {
        RETURN_TOKEN(TC_WHITESPACE, yytext, yyleng);
 }
-#line 2909 "Zend/zend_ini_scanner.c"
+#line 2912 "Zend/zend_ini_scanner.c"
 yy232:
                YYDEBUG(232, *YYCURSOR);
                ++YYCURSOR;
@@ -2918,7 +2921,7 @@ yy233:
        SCNG(lineno)++;
        return END_OF_LINE;
 }
-#line 2922 "Zend/zend_ini_scanner.c"
+#line 2925 "Zend/zend_ini_scanner.c"
 yy234:
                YYDEBUG(234, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -2936,7 +2939,7 @@ yy236:
                { /* Boolean operators */
        return yytext[0];
 }
-#line 2940 "Zend/zend_ini_scanner.c"
+#line 2943 "Zend/zend_ini_scanner.c"
 yy237:
                YYDEBUG(237, *YYCURSOR);
                ++YYCURSOR;
@@ -2948,7 +2951,7 @@ yy238:
        yy_push_state(ST_DOUBLE_QUOTES TSRMLS_CC);
        return '"';
 }
-#line 2952 "Zend/zend_ini_scanner.c"
+#line 2955 "Zend/zend_ini_scanner.c"
 yy239:
                YYDEBUG(239, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -3028,7 +3031,7 @@ yy244:
                { /* Get number option value as string */
        RETURN_TOKEN(TC_NUMBER, yytext, yyleng);
 }
-#line 3032 "Zend/zend_ini_scanner.c"
+#line 3035 "Zend/zend_ini_scanner.c"
 yy245:
                YYDEBUG(245, *YYCURSOR);
                yyaccept = 2;
@@ -3045,7 +3048,7 @@ yy246:
        BEGIN(INITIAL);
        return END_OF_LINE;
 }
-#line 3049 "Zend/zend_ini_scanner.c"
+#line 3052 "Zend/zend_ini_scanner.c"
 yy248:
                YYDEBUG(248, *YYCURSOR);
                yyaccept = 4;
@@ -3085,7 +3088,7 @@ yy249:
                { /* Get constant option value */
        RETURN_TOKEN(TC_CONSTANT, yytext, yyleng);
 }
-#line 3089 "Zend/zend_ini_scanner.c"
+#line 3092 "Zend/zend_ini_scanner.c"
 yy250:
                YYDEBUG(250, *YYCURSOR);
                yyaccept = 4;
@@ -3581,7 +3584,7 @@ yy266:
                { /* TRUE value (when used outside option value/offset this causes parse error!) */
        RETURN_TOKEN(BOOL_TRUE, "1", 1);
 }
-#line 3585 "Zend/zend_ini_scanner.c"
+#line 3588 "Zend/zend_ini_scanner.c"
 yy267:
                YYDEBUG(267, *YYCURSOR);
                ++YYCURSOR;
@@ -3785,7 +3788,7 @@ yy273:
                { /* FALSE value (when used outside option value/offset this causes parse error!)*/
        RETURN_TOKEN(BOOL_FALSE, "", 0);
 }
-#line 3789 "Zend/zend_ini_scanner.c"
+#line 3792 "Zend/zend_ini_scanner.c"
 yy274:
                YYDEBUG(274, *YYCURSOR);
                ++YYCURSOR;
@@ -4167,7 +4170,7 @@ yy286:
        SCNG(lineno)++;
        return END_OF_LINE;
 }
-#line 4171 "Zend/zend_ini_scanner.c"
+#line 4174 "Zend/zend_ini_scanner.c"
 yy287:
                YYDEBUG(287, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -4388,7 +4391,7 @@ yy296:
        }
        RETURN_TOKEN(TC_RAW, yytext, yyleng);
 }
-#line 4392 "Zend/zend_ini_scanner.c"
+#line 4395 "Zend/zend_ini_scanner.c"
 yy300:
                YYDEBUG(300, *YYCURSOR);
                ++YYCURSOR;
@@ -4399,7 +4402,7 @@ yy300:
        yy_push_state(ST_VARNAME TSRMLS_CC);
        return TC_DOLLAR_CURLY;
 }
-#line 4403 "Zend/zend_ini_scanner.c"
+#line 4406 "Zend/zend_ini_scanner.c"
 yy302:
                YYDEBUG(302, *YYCURSOR);
                ++YYCURSOR;
@@ -4538,7 +4541,7 @@ yy312:
 
        RETURN_TOKEN(TC_VARNAME, yytext, yyleng);
 }
-#line 4542 "Zend/zend_ini_scanner.c"
+#line 4545 "Zend/zend_ini_scanner.c"
 yy313:
                YYDEBUG(313, *YYCURSOR);
                ++YYCURSOR;
@@ -4548,7 +4551,7 @@ yy313:
                {
        return 0;
 }
-#line 4552 "Zend/zend_ini_scanner.c"
+#line 4555 "Zend/zend_ini_scanner.c"
 yy315:
                YYDEBUG(315, *YYCURSOR);
                ++YYCURSOR;
@@ -4559,7 +4562,7 @@ yy315:
        yy_pop_state(TSRMLS_C);
        return '}';
 }
-#line 4563 "Zend/zend_ini_scanner.c"
+#line 4566 "Zend/zend_ini_scanner.c"
 yy317:
                YYDEBUG(317, *YYCURSOR);
                ++YYCURSOR;
index bd174a9d224e96632fd107e7970b79d5ad5cb65b..741dcc06430446f02b0d6879de8ee60277b00704 100644 (file)
@@ -336,7 +336,7 @@ ANY_CHAR (.|[\n\t])
 NEWLINE        ("\r"|"\n"|"\r\n")
 TABS_AND_SPACES [ \t]
 WHITESPACE [ \t]+
-CONSTANT [a-zA-Z][a-zA-Z0-9_]*
+CONSTANT [a-zA-Z_][a-zA-Z0-9_]*
 LABEL [^=\n\r\t;|&$~(){}!"\[]+
 TOKENS [:,.\[\]"'()|^&+-/*=%$!~<>?@{}]
 OPERATORS [&|~()!]
index e5f9a4d73427766e2137fb0790f0fcd784d27444..1956b6225b5092ed2fb0e2069dc71f6aebe1d05f 100644 (file)
@@ -1,4 +1,4 @@
-/* Generated by re2c 0.13.5 on Tue Dec  8 12:24:52 2009 */
+/* Generated by re2c 0.13.5 on Sun Feb  7 13:25:37 2010 */
 #line 3 "Zend/zend_ini_scanner_defs.h"
 
 enum YYCONDTYPE {