cvs: php-src /ext/date/lib parse_date.c /ext/date/lib/resource parse_date.re /ext/date/tests bug34676.phpt
| From: | Derick Rethans | Date: | Sat, 08 Oct 2005 14:30:16 +0000 |
| Subject: | cvs: php-src /ext/date/lib parse_date.c /ext/date/lib/resource parse_date.re /ext/date/tests bug34676.phpt | ||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-34414@lists.php.net to get a copy of this message | ||
derick Sat Oct 8 10:30:16 2005 EDT
Added files:
/php-src/ext/date/tests bug34676.phpt
Modified files:
/php-src/ext/date/lib parse_date.c
/php-src/ext/date/lib/resource parse_date.re
Log:
- Fixed bug #34676: missing support for strtotime("midnight") and
strtotime("noon").
http://cvs.php.net/diff.php/php-src/ext/date/lib/parse_date.c?r1=1.35&r2=1.36&ty=u Index: php-src/ext/date/lib/parse_date.c diff -u php-src/ext/date/lib/parse_date.c:1.35 php-src/ext/date/lib/parse_date.c:1.36 --- php-src/ext/date/lib/parse_date.c:1.35 Fri Oct 7 04:05:06 2005 +++ php-src/ext/date/lib/parse_date.c Sat Oct 8 10:30:06 2005 @@ -1,4 +1,4 @@ -/* Generated by re2c 0.9.10.dev on Fri Oct 7 09:56:07 2005 */ +/* Generated by re2c 0.9.10.dev on Sat Oct 8 16:29:08 2005 */ #line 1 "resource/parse_date.re" /* +----------------------------------------------------------------------+ @@ -18,7 +18,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: parse_date.c,v 1.35 2005/10/07 08:05:06 derick Exp $ */ +/* $Id: parse_date.c,v 1.36 2005/10/08 14:30:06 derick Exp $ */ #include "timelib.h" @@ -748,17 +748,17 @@ case 0x00: case 0x0A: goto yy45; case ' ': case ',': case '.': goto yy43; case '+': case '-': goto yy40; - case '0': goto yy8; - case '1': goto yy9; - case '2': goto yy10; - case '3': goto yy11; + case '0': goto yy9; + case '1': goto yy10; + case '2': goto yy11; + case '3': goto yy12; case '4': case '5': case '6': case '7': case '8': - case '9': goto yy12; - case '@': goto yy6; + case '9': goto yy13; + case '@': goto yy7; case 'A': goto yy22; case 'B': case 'C': case 'G': @@ -767,19 +767,19 @@ case 'Z': goto yy41; case 'D': goto yy29; case 'E': goto yy32; - case 'F': goto yy18; - case 'I': goto yy13; - case 'J': goto yy16; + case 'F': goto yy19; + case 'I': goto yy14; + case 'J': goto yy17; case 'L': goto yy34; - case 'M': goto yy20; + case 'M': goto yy21; case 'N': goto yy28; case 'O': goto yy26; case 'P': goto yy36; case 'S': goto yy24; case 'T': goto yy31; - case 'V': goto yy14; + case 'V': goto yy15; case 'W': goto yy38; - case 'X': goto yy15; + case 'X': goto yy16; case 'a': goto yy23; case 'b': case 'c': case 'g': @@ -789,15 +789,15 @@ case 'v': case 'x': case 'z': goto yy42; case 'd': goto yy30; case 'e': goto yy33; - case 'f': goto yy19; - case 'j': goto yy17; + case 'f': goto yy20; + case 'j': goto yy18; case 'l': goto yy35; - case 'm': goto yy21; + case 'm': goto yy5; case 'n': goto yy4; case 'o': goto yy27; case 'p': goto yy37; case 's': goto yy25; - case 't': goto yy5; + case 't': goto yy6; case 'w': goto yy39; case 'y': goto yy2; default: goto yy47; @@ -810,14 +810,14 @@ if(yych <= 'Z') goto yy48; goto yy3; } else { - if(yych == 'e') goto yy1318; + if(yych == 'e') goto yy1327; if(yych <= 'z') goto yy48; goto yy3; } yy3: YYDEBUG(3, *YYCURSOR); -#line 1284 "resource/parse_date.re" +#line 1296 "resource/parse_date.re" { int tz_not_found; DEBUG_OUTPUT("tzcorrection | tz"); @@ -851,7 +851,7 @@ if(yych <= 'i') goto yy605; goto yy48; } else { - if(yych <= 'o') goto yy1315; + if(yych <= 'o') goto yy1321; if(yych <= 'z') goto yy48; goto yy3; } @@ -860,6 +860,30 @@ yy5: YYDEBUG(5, *YYCURSOR); yych = *++YYCURSOR; + if(yych <= '`'){ + if(yych <= 'N'){ + if(yych <= '@') goto yy3; + if(yych <= 'A') goto yy699; + goto yy48; + } else { + if(yych <= 'O') goto yy702; + if(yych <= 'Z') goto yy48; + goto yy3; + } + } else { + if(yych <= 'i'){ + if(yych <= 'a') goto yy699; + if(yych <= 'h') goto yy48; + goto yy1315; + } else { + if(yych == 'o') goto yy702; + if(yych <= 'z') goto yy48; + goto yy3; + } + } +yy6: + YYDEBUG(6, *YYCURSOR); + yych = *++YYCURSOR; YYDEBUG(-1, yych); switch(yych){ case 'A': @@ -902,26 +926,26 @@ case 'o': goto yy1303; default: goto yy3; } -yy6: - YYDEBUG(6, *YYCURSOR); +yy7: + YYDEBUG(7, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if(yych == '-') goto yy1299; - if(yych <= '0') goto yy7; + if(yych <= '0') goto yy8; if(yych <= '9') goto yy1300; - goto yy7; -yy7: - YYDEBUG(7, *YYCURSOR); + goto yy8; +yy8: + YYDEBUG(8, *YYCURSOR); -#line 1350 "resource/parse_date.re" +#line 1362 "resource/parse_date.re" { /* printf("unexpected character: #%d, %c ", *s->tok, *s->tok); */ s->errors++; goto std; } -#line 907 "<stdout>" -yy8: - YYDEBUG(8, *YYCURSOR); +#line 929 "<stdout>" +yy9: + YYDEBUG(9, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); YYDEBUG(-1, yych); @@ -964,10 +988,10 @@ case '8': case '9': goto yy1297; case ':': goto yy1266; - default: goto yy7; + default: goto yy8; } -yy9: - YYDEBUG(9, *YYCURSOR); +yy10: + YYDEBUG(10, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); YYDEBUG(-1, yych); @@ -1012,10 +1036,10 @@ case '8': case '9': goto yy1264; case ':': goto yy795; - default: goto yy7; + default: goto yy8; } -yy10: - YYDEBUG(10, *YYCURSOR); +yy11: + YYDEBUG(11, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); YYDEBUG(-1, yych); @@ -1060,10 +1084,10 @@ case '8': case '9': goto yy1254; case ':': goto yy795; - default: goto yy7; + default: goto yy8; } -yy11: - YYDEBUG(11, *YYCURSOR); +yy12: + YYDEBUG(12, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); YYDEBUG(-1, yych); @@ -1108,10 +1132,10 @@ case '8': case '9': goto yy781; case ':': goto yy795; - default: goto yy7; + default: goto yy8; } -yy12: - YYDEBUG(12, *YYCURSOR); +yy13: + YYDEBUG(13, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); YYDEBUG(-1, yych); @@ -1156,10 +1180,10 @@ case '8': case '9': goto yy781; case ':': goto yy795; - default: goto yy7; + default: goto yy8; } -yy13: - YYDEBUG(13, *YYCURSOR); +yy14: + YYDEBUG(14, *YYCURSOR); yyaccept = 1; yych = *(YYMARKER = ++YYCURSOR); if(yych <= 'I'){ @@ -1185,8 +1209,8 @@ goto yy3; } } -yy14: - YYDEBUG(14, *YYCURSOR); +yy15: + YYDEBUG(15, *YYCURSOR); yyaccept = 1; yych = *(YYMARKER = ++YYCURSOR); if(yych <= '@'){ @@ -1208,8 +1232,8 @@ goto yy3; } } -yy15: - YYDEBUG(15, *YYCURSOR); +yy16: + YYDEBUG(16, *YYCURSOR); yyaccept = 1; yych = *(YYMARKER = ++YYCURSOR); if(yych <= '@'){ @@ -1231,8 +1255,8 @@ goto yy3; } } -yy16: - YYDEBUG(16, *YYCURSOR); +yy17: + YYDEBUG(17, *YYCURSOR); yych = *++YYCURSOR; if(yych <= 'Z'){ if(yych <= 'A'){ @@ -1253,8 +1277,8 @@ goto yy3; } } -yy17: - YYDEBUG(17, *YYCURSOR); +yy18: + YYDEBUG(18, *YYCURSOR); yych = *++YYCURSOR; if(yych <= 'Z'){ if(yych <= 'A'){ @@ -1275,8 +1299,8 @@ goto yy3; } } -yy18: - YYDEBUG(18, *YYCURSOR); +yy19: + YYDEBUG(19, *YYCURSOR); yych = *++YYCURSOR; if(yych <= 'Z'){ if(yych <= 'I'){ @@ -1318,8 +1342,8 @@ } } } -yy19: - YYDEBUG(19, *YYCURSOR); +yy20: + YYDEBUG(20, *YYCURSOR); yych = *++YYCURSOR; if(yych <= 'Z'){ if(yych <= 'I'){ @@ -1361,28 +1385,6 @@ } } } -yy20: - YYDEBUG(20, *YYCURSOR); - yych = *++YYCURSOR; - if(yych <= 'Z'){ - if(yych <= 'A'){ - if(yych <= '@') goto yy3; - goto yy699; - } else { - if(yych == 'O') goto yy700; - goto yy48; - } - } else { - if(yych <= 'n'){ - if(yych <= '`') goto yy3; - if(yych <= 'a') goto yy707; - goto yy51; - } else { - if(yych <= 'o') goto yy708; - if(yych <= 'z') goto yy51; - goto yy3; - } - } yy21: YYDEBUG(21, *YYCURSOR); yych = *++YYCURSOR; @@ -1391,17 +1393,17 @@ if(yych <= '@') goto yy3; goto yy699; } else { - if(yych == 'O') goto yy700; + if(yych == 'O') goto yy702; goto yy48; } } else { if(yych <= 'n'){ if(yych <= '`') goto yy3; - if(yych <= 'a') goto yy699; - goto yy48; + if(yych <= 'a') goto yy700; + goto yy51; } else { - if(yych <= 'o') goto yy700; - if(yych <= 'z') goto yy48; + if(yych <= 'o') goto yy701; + if(yych <= 'z') goto yy51; goto yy3; } } @@ -1822,11 +1824,11 @@ yy40: YYDEBUG(40, *YYCURSOR); yych = *++YYCURSOR; - if(yych <= '/') goto yy7; + if(yych <= '/') goto yy8; if(yych <= '1') goto yy61; if(yych <= '2') goto yy62; if(yych <= '9') goto yy63; - goto yy7; + goto yy8; yy41: YYDEBUG(41, *YYCURSOR); yych = *++YYCURSOR; @@ -1850,11 +1852,11 @@ yy44: YYDEBUG(44, *YYCURSOR); -#line 1339 "resource/parse_date.re" +#line 1351 "resource/parse_date.re" { goto std; } -#line 1763 "<stdout>" +#line 1765 "<stdout>" yy45: YYDEBUG(45, *YYCURSOR); ++YYCURSOR; @@ -1862,16 +1864,16 @@ yy46: YYDEBUG(46, *YYCURSOR); -#line 1344 "resource/parse_date.re" +#line 1356 "resource/parse_date.re" { s->pos = cursor; s->line++; goto std; } -#line 1772 "<stdout>" +#line 1774 "<stdout>" yy47: YYDEBUG(47, *YYCURSOR); yych = *++YYCURSOR; - goto yy7; + goto yy8; yy48: YYDEBUG(48, *YYCURSOR); yych = *++YYCURSOR; @@ -1961,7 +1963,7 @@ case 1: goto yy3; case 7: goto yy527; case 2: goto yy85; - case 0: goto yy7; + case 0: goto yy8; } yy55: YYDEBUG(55, *YYCURSOR); @@ -2325,7 +2327,7 @@ yy85: YYDEBUG(85, *YYCURSOR); -#line 1323 "resource/parse_date.re" +#line 1335 "resource/parse_date.re" { timelib_ull i; DEBUG_OUTPUT("relative"); @@ -2340,7 +2342,7 @@ TIMELIB_DEINIT; return TIMELIB_RELATIVE; } -#line 2162 "<stdout>" +#line 2164 "<stdout>" yy86: YYDEBUG(86, *YYCURSOR); ++YYCURSOR; @@ -3033,12 +3035,12 @@ yy151: YYDEBUG(151, *YYCURSOR); -#line 1278 "resource/parse_date.re" +#line 1290 "resource/parse_date.re" { DEBUG_OUTPUT("dayabbr"); goto std; } -#line 2726 "<stdout>" +#line 2728 "<stdout>" yy152: YYDEBUG(152, *YYCURSOR); yyaccept = 1; @@ -3077,7 +3079,7 @@ yy158: YYDEBUG(158, *YYCURSOR); -#line 1262 "resource/parse_date.re" +#line 1274 "resource/parse_date.re" { const timelib_relunit* relunit; DEBUG_OUTPUT("dayfull"); @@ -3092,7 +3094,7 @@ TIMELIB_DEINIT; return TIMELIB_RELATIVE; } -#line 2766 "<stdout>" +#line 2768 "<stdout>" yy159: YYDEBUG(159, *YYCURSOR); yyaccept = 1; @@ -3461,7 +3463,7 @@ yy190: YYDEBUG(190, *YYCURSOR); -#line 1246 "resource/parse_date.re" +#line 1258 "resource/parse_date.re" { timelib_sll i; DEBUG_OUTPUT("relativetext"); @@ -3476,7 +3478,7 @@ TIMELIB_DEINIT; return TIMELIB_RELATIVE; } -#line 3084 "<stdout>" +#line 3086 "<stdout>" yy191: YYDEBUG(191, *YYCURSOR); ++YYCURSOR; @@ -9106,7 +9108,7 @@ yy509: YYDEBUG(509, *YYCURSOR); -#line 1068 "resource/parse_date.re" +#line 1080 "resource/parse_date.re" { DEBUG_OUTPUT("datetextual | datenoyear"); TIMELIB_INIT; @@ -9118,7 +9120,7 @@ TIMELIB_DEINIT; return TIMELIB_DATE_TEXT; } -#line 8077 "<stdout>" +#line 8079 "<stdout>" yy510: YYDEBUG(510, *YYCURSOR); yych = *++YYCURSOR; @@ -9278,7 +9280,7 @@ yy527: YYDEBUG(527, *YYCURSOR); -#line 1295 "resource/parse_date.re" +#line 1307 "resource/parse_date.re" { int tz_not_found; DEBUG_OUTPUT("dateshortwithtimeshort | dateshortwithtimelong | dateshortwithtimelongtz"); @@ -9305,7 +9307,7 @@ TIMELIB_DEINIT; return TIMELIB_SHORTDATE_WITH_TIME; } -#line 8228 "<stdout>" +#line 8230 "<stdout>" yy528: YYDEBUG(528, *YYCURSOR); yyaccept = 7; @@ -9618,7 +9620,7 @@ yy562: YYDEBUG(562, *YYCURSOR); -#line 1042 "resource/parse_date.re" +#line 1054 "resource/parse_date.re" { DEBUG_OUTPUT("datenoday"); TIMELIB_INIT; @@ -9630,7 +9632,7 @@ TIMELIB_DEINIT; return TIMELIB_DATE_NO_DAY; } -#line 8483 "<stdout>" +#line 8485 "<stdout>" yy563: YYDEBUG(563, *YYCURSOR); yyaccept = 6; @@ -9930,7 +9932,7 @@ yy588: YYDEBUG(588, *YYCURSOR); -#line 1177 "resource/parse_date.re" +#line 1189 "resource/parse_date.re" { DEBUG_OUTPUT("pgtextshort"); TIMELIB_INIT; @@ -9942,7 +9944,7 @@ TIMELIB_DEINIT; return TIMELIB_PG_TEXT; } -#line 8742 "<stdout>" +#line 8744 "<stdout>" yy589: YYDEBUG(589, *YYCURSOR); yych = *++YYCURSOR; @@ -11446,7 +11448,7 @@ yy684: YYDEBUG(684, *YYCURSOR); -#line 1231 "resource/parse_date.re" +#line 1243 "resource/parse_date.re" { DEBUG_OUTPUT("ago"); TIMELIB_INIT; @@ -11460,7 +11462,7 @@ TIMELIB_DEINIT; return TIMELIB_AGO; } -#line 10067 "<stdout>" +#line 10069 "<stdout>" yy685: YYDEBUG(685, *YYCURSOR); yyaccept = 1; @@ -11754,127 +11756,24 @@ if(yych <= 'R'){ if(yych <= '@') goto yy3; if(yych <= 'Q') goto yy49; - goto yy704; + goto yy709; } else { - if(yych == 'Y') goto yy705; + if(yych == 'Y') goto yy711; goto yy49; } } else { if(yych <= 'r'){ if(yych <= '`') goto yy3; if(yych <= 'q') goto yy49; - goto yy704; + goto yy709; } else { - if(yych == 'y') goto yy705; + if(yych == 'y') goto yy711; if(yych <= 'z') goto yy49; goto yy3; } } yy700: YYDEBUG(700, *YYCURSOR); - yych = *++YYCURSOR; - if(yych <= 'Z'){ - if(yych <= '@') goto yy3; - if(yych != 'N') goto yy49; - goto yy701; - } else { - if(yych <= 'm'){ - if(yych <= '`') goto yy3; - goto yy49; - } else { - if(yych <= 'n') goto yy701; - if(yych <= 'z') goto yy49; - goto yy3; - } - } -yy701: - YYDEBUG(701, *YYCURSOR); - yych = *++YYCURSOR; - if(yych <= 'Z'){ - if(yych <= '@') goto yy151; - if(yych != 'D') goto yy50; - goto yy702; - } else { - if(yych <= 'c'){ - if(yych <= '`') goto yy151; - goto yy50; - } else { - if(yych <= 'd') goto yy702; - if(yych <= 'z') goto yy50; - goto yy151; - } - } -yy702: - YYDEBUG(702, *YYCURSOR); - yyaccept = 1; - yych = *(YYMARKER = ++YYCURSOR); - if(yych == 'A') goto yy703; - if(yych != 'a') goto yy3; - goto yy703; -yy703: - YYDEBUG(703, *YYCURSOR); - yych = *++YYCURSOR; - if(yych == 'Y') goto yy157; - if(yych == 'y') goto yy157; - goto yy54; -yy704: - YYDEBUG(704, *YYCURSOR); - yyaccept = 1; - yych = *(YYMARKER = ++YYCURSOR); - if(yych <= '@'){ - if(yych <= '-'){ - if(yych <= 0x1F) goto yy3; - if(yych <= ',') goto yy506; - goto yy507; - } else { - if(yych == '/') goto yy3; - if(yych <= '9') goto yy506; - goto yy3; - } - } else { - if(yych <= '`'){ - if(yych == 'C') goto yy706; - if(yych <= 'Z') goto yy50; - goto yy3; - } else { - if(yych == 'c') goto yy706; - if(yych <= 'z') goto yy50; - goto yy3; - } - } -yy705: - YYDEBUG(705, *YYCURSOR); - yyaccept = 1; - yych = *(YYMARKER = ++YYCURSOR); - if(yych <= '/'){ - if(yych <= ','){ - if(yych <= 0x1F) goto yy3; - goto yy506; - } else { - if(yych <= '-') goto yy507; - if(yych <= '.') goto yy506; - goto yy3; - } - } else { - if(yych <= 'Z'){ - if(yych <= '9') goto yy506; - if(yych <= '@') goto yy3; - goto yy50; - } else { - if(yych <= '`') goto yy3; - if(yych <= 'z') goto yy50; - goto yy3; - } - } -yy706: - YYDEBUG(706, *YYCURSOR); - yyaccept = 1; - yych = *(YYMARKER = ++YYCURSOR); - if(yych == 'H') goto yy505; - if(yych == 'h') goto yy505; - goto yy3; -yy707: - YYDEBUG(707, *YYCURSOR); yyaccept = 1; yych = *(YYMARKER = ++YYCURSOR); if(yych <= 'Z'){ @@ -11883,8 +11782,8 @@ if(yych <= '@') goto yy3; goto yy49; } else { - if(yych <= 'R') goto yy704; - if(yych == 'Y') goto yy705; + if(yych <= 'R') goto yy709; + if(yych == 'Y') goto yy711; goto yy49; } } else { @@ -11894,17 +11793,17 @@ goto yy52; } else { if(yych <= 'x'){ - if(yych <= 'r') goto yy712; + if(yych <= 'r') goto yy710; goto yy52; } else { - if(yych <= 'y') goto yy713; + if(yych <= 'y') goto yy712; if(yych <= 'z') goto yy52; goto yy3; } } } -yy708: - YYDEBUG(708, *YYCURSOR); +yy701: + YYDEBUG(701, *YYCURSOR); yyaccept = 1; yych = *(YYMARKER = ++YYCURSOR); if(yych <= 'Z'){ @@ -11912,7 +11811,7 @@ if(yych == '/') goto yy53; goto yy3; } else { - if(yych == 'N') goto yy701; + if(yych == 'N') goto yy703; goto yy49; } } else { @@ -11920,13 +11819,60 @@ if(yych == '_') goto yy53; goto yy3; } else { - if(yych == 'n') goto yy709; + if(yych == 'n') goto yy706; if(yych <= 'z') goto yy52; goto yy3; } } -yy709: - YYDEBUG(709, *YYCURSOR); +yy702: + YYDEBUG(702, *YYCURSOR); + yych = *++YYCURSOR; + if(yych <= 'Z'){ + if(yych <= '@') goto yy3; + if(yych != 'N') goto yy49; + goto yy703; + } else { + if(yych <= 'm'){ + if(yych <= '`') goto yy3; + goto yy49; + } else { + if(yych <= 'n') goto yy703; + if(yych <= 'z') goto yy49; + goto yy3; + } + } +yy703: + YYDEBUG(703, *YYCURSOR); + yych = *++YYCURSOR; + if(yych <= 'Z'){ + if(yych <= '@') goto yy151; + if(yych != 'D') goto yy50; + goto yy704; + } else { + if(yych <= 'c'){ + if(yych <= '`') goto yy151; + goto yy50; + } else { + if(yych <= 'd') goto yy704; + if(yych <= 'z') goto yy50; + goto yy151; + } + } +yy704: + YYDEBUG(704, *YYCURSOR); + yyaccept = 1; + yych = *(YYMARKER = ++YYCURSOR); + if(yych == 'A') goto yy705; + if(yych != 'a') goto yy3; + goto yy705; +yy705: + YYDEBUG(705, *YYCURSOR); + yych = *++YYCURSOR; + if(yych == 'Y') goto yy157; + if(yych == 'y') goto yy157; + goto yy54; +yy706: + YYDEBUG(706, *YYCURSOR); yyaccept = 3; yych = *(YYMARKER = ++YYCURSOR); if(yych <= 'Z'){ @@ -11934,7 +11880,7 @@ if(yych == '/') goto yy53; goto yy151; } else { - if(yych == 'D') goto yy702; + if(yych == 'D') goto yy704; goto yy50; } } else { @@ -11942,13 +11888,13 @@ if(yych == '_') goto yy53; goto yy151; } else { - if(yych == 'd') goto yy710; + if(yych == 'd') goto yy707; if(yych <= 'z') goto yy58; goto yy151; } } -yy710: - YYDEBUG(710, *YYCURSOR); +yy707: + YYDEBUG(707, *YYCURSOR); yyaccept = 1; yych = *(YYMARKER = ++YYCURSOR); if(yych <= '^'){ @@ -11956,7 +11902,7 @@ if(yych <= '.') goto yy3; goto yy53; } else { - if(yych == 'A') goto yy703; + if(yych == 'A') goto yy705; goto yy3; } } else { @@ -11964,19 +11910,44 @@ if(yych <= '_') goto yy53; goto yy3; } else { - if(yych <= 'a') goto yy711; + if(yych <= 'a') goto yy708; if(yych <= 'z') goto yy59; goto yy3; } } -yy711: - YYDEBUG(711, *YYCURSOR); +yy708: + YYDEBUG(708, *YYCURSOR); yych = *++YYCURSOR; if(yych == 'Y') goto yy157; if(yych == 'y') goto yy166; goto yy60; -yy712: - YYDEBUG(712, *YYCURSOR); +yy709: + YYDEBUG(709, *YYCURSOR); + yyaccept = 1; + yych = *(YYMARKER = ++YYCURSOR); + if(yych <= '@'){ + if(yych <= '-'){ + if(yych <= 0x1F) goto yy3; + if(yych <= ',') goto yy506; + goto yy507; + } else { + if(yych == '/') goto yy3; + if(yych <= '9') goto yy506; + goto yy3; + } + } else { + if(yych <= '`'){ + if(yych == 'C') goto yy713; + if(yych <= 'Z') goto yy50; + goto yy3; + } else { + if(yych == 'c') goto yy713; + if(yych <= 'z') goto yy50; + goto yy3; + } + } +yy710: + YYDEBUG(710, *YYCURSOR); yyaccept = 1; yych = *(YYMARKER = ++YYCURSOR); if(yych <= 'B'){ @@ -11992,7 +11963,7 @@ } } else { if(yych <= '_'){ - if(yych <= 'C') goto yy706; + if(yych <= 'C') goto yy713; if(yych <= 'Z') goto yy50; if(yych <= '^') goto yy3; goto yy53; @@ -12007,8 +11978,32 @@ } } } -yy713: - YYDEBUG(713, *YYCURSOR); +yy711: + YYDEBUG(711, *YYCURSOR); + yyaccept = 1; + yych = *(YYMARKER = ++YYCURSOR); + if(yych <= '/'){ + if(yych <= ','){ + if(yych <= 0x1F) goto yy3; + goto yy506; + } else { + if(yych <= '-') goto yy507; + if(yych <= '.') goto yy506; + goto yy3; + } + } else { + if(yych <= 'Z'){ + if(yych <= '9') goto yy506; + if(yych <= '@') goto yy3; + goto yy50; + } else { + if(yych <= '`') goto yy3; + if(yych <= 'z') goto yy50; + goto yy3; + } + } +yy712: + YYDEBUG(712, *YYCURSOR); yyaccept = 1; yych = *(YYMARKER = ++YYCURSOR); if(yych <= '9'){ @@ -12032,6 +12027,13 @@ goto yy3; } } +yy713: + YYDEBUG(713, *YYCURSOR); + yyaccept = 1; + yych = *(YYMARKER = ++YYCURSOR); + if(yych == 'H') goto yy505; + if(yych == 'h') goto yy505; + goto yy3; yy714: YYDEBUG(714, *YYCURSOR); yyaccept = 1; @@ -13395,7 +13397,7 @@ yy788: YYDEBUG(788, *YYCURSOR); -#line 1081 "resource/parse_date.re" +#line 1093 "resource/parse_date.re" { DEBUG_OUTPUT("datenoyearrev"); TIMELIB_INIT; @@ -13405,7 +13407,7 @@ TIMELIB_DEINIT; return TIMELIB_DATE_TEXT; } -#line 11800 "<stdout>" +#line 11802 "<stdout>" yy789: YYDEBUG(789, *YYCURSOR); yyaccept = 10; @@ -13515,7 +13517,7 @@ yy799: YYDEBUG(799, *YYCURSOR); -#line 872 "resource/parse_date.re" +#line 884 "resource/parse_date.re" { DEBUG_OUTPUT("timetiny12 | timeshort12 | timelong12"); TIMELIB_INIT; @@ -13531,7 +13533,7 @@ TIMELIB_DEINIT; return TIMELIB_TIME12; } -#line 11904 "<stdout>" +#line 11906 "<stdout>" yy800: YYDEBUG(800, *YYCURSOR); yych = *++YYCURSOR; @@ -13551,7 +13553,7 @@ yy802: YYDEBUG(802, *YYCURSOR); -#line 889 "resource/parse_date.re" +#line 901 "resource/parse_date.re" { int tz_not_found; DEBUG_OUTPUT("timeshort24 | timelong24 | iso8601long"); @@ -13574,7 +13576,7 @@ TIMELIB_DEINIT; return TIMELIB_TIME24_WITH_ZONE; } -#line 11941 "<stdout>" +#line 11943 "<stdout>" yy803: YYDEBUG(803, *YYCURSOR); yyaccept = 11; @@ -13817,7 +13819,7 @@ yy828: YYDEBUG(828, *YYCURSOR); -#line 1016 "resource/parse_date.re" +#line 1028 "resource/parse_date.re" { DEBUG_OUTPUT("datefull"); TIMELIB_INIT; @@ -13829,7 +13831,7 @@ TIMELIB_DEINIT; return TIMELIB_DATE_FULL; } -#line 12144 "<stdout>" +#line 12146 "<stdout>" yy829: YYDEBUG(829, *YYCURSOR); yych = *++YYCURSOR; @@ -14464,7 +14466,7 @@ yy897: YYDEBUG(897, *YYCURSOR); -#line 1029 "resource/parse_date.re" +#line 1041 "resource/parse_date.re" { DEBUG_OUTPUT("pointed date"); TIMELIB_INIT; @@ -14476,7 +14478,7 @@ TIMELIB_DEINIT; return TIMELIB_DATE_FULL_POINTED; } -#line 12653 "<stdout>" +#line 12655 "<stdout>" yy898: YYDEBUG(898, *YYCURSOR); yych = *++YYCURSOR; @@ -15044,7 +15046,7 @@ yy943: YYDEBUG(943, *YYCURSOR); -#line 1003 "resource/parse_date.re" +#line 1015 "resource/parse_date.re" { DEBUG_OUTPUT("gnudateshort"); TIMELIB_INIT; @@ -15056,7 +15058,7 @@ TIMELIB_DEINIT; return TIMELIB_ISO_DATE; } -#line 13141 "<stdout>" +#line 13143 "<stdout>" yy944: YYDEBUG(944, *YYCURSOR); yych = *++YYCURSOR; @@ -15078,7 +15080,7 @@ yy947: YYDEBUG(947, *YYCURSOR); -#line 976 "resource/parse_date.re" +#line 988 "resource/parse_date.re" { DEBUG_OUTPUT("americanshort | american"); TIMELIB_INIT; @@ -15092,7 +15094,7 @@ TIMELIB_DEINIT; return TIMELIB_AMERICAN; } -#line 13169 "<stdout>" +#line 13171 "<stdout>" yy948: YYDEBUG(948, *YYCURSOR); yyaccept = 12; @@ -15314,7 +15316,7 @@ yy980: YYDEBUG(980, *YYCURSOR); -#line 1203 "resource/parse_date.re" +#line 1215 "resource/parse_date.re" { int tz_not_found; DEBUG_OUTPUT("clf"); @@ -15332,7 +15334,7 @@ TIMELIB_DEINIT; return TIMELIB_CLF; } -#line 13343 "<stdout>" +#line 13345 "<stdout>" yy981: YYDEBUG(981, *YYCURSOR); yyaccept = 13; @@ -15641,7 +15643,7 @@ yy1020: YYDEBUG(1020, *YYCURSOR); -#line 1190 "resource/parse_date.re" +#line 1202 "resource/parse_date.re" { DEBUG_OUTPUT("pgtextreverse"); TIMELIB_INIT; @@ -15653,7 +15655,7 @@ TIMELIB_DEINIT; return TIMELIB_PG_TEXT; } -#line 13583 "<stdout>" +#line 13585 "<stdout>" yy1021: YYDEBUG(1021, *YYCURSOR); yych = *++YYCURSOR; @@ -15786,7 +15788,7 @@ yy1032: YYDEBUG(1032, *YYCURSOR); -#line 1222 "resource/parse_date.re" +#line 1234 "resource/parse_date.re" { DEBUG_OUTPUT("year4"); TIMELIB_INIT; @@ -15794,7 +15796,7 @@ TIMELIB_DEINIT; return TIMELIB_CLF; } -#line 13699 "<stdout>" +#line 13701 "<stdout>" yy1033: YYDEBUG(1033, *YYCURSOR); yych = *++YYCURSOR; @@ -15930,7 +15932,7 @@ yy1041: YYDEBUG(1041, *YYCURSOR); -#line 1055 "resource/parse_date.re" +#line 1067 "resource/parse_date.re" { DEBUG_OUTPUT("datenodayrev"); TIMELIB_INIT; @@ -15942,7 +15944,7 @@ TIMELIB_DEINIT; return TIMELIB_DATE_NO_DAY; } -#line 13826 "<stdout>" +#line 13828 "<stdout>" yy1042: YYDEBUG(1042, *YYCURSOR); yych = *++YYCURSOR; @@ -16151,7 +16153,7 @@ yy1061: YYDEBUG(1061, *YYCURSOR); -#line 1158 "resource/parse_date.re" +#line 1170 "resource/parse_date.re" { timelib_sll w, d; DEBUG_OUTPUT("isoweek"); @@ -16169,7 +16171,7 @@ TIMELIB_DEINIT; return TIMELIB_ISO_WEEK; } -#line 14013 "<stdout>" +#line 14015 "<stdout>" yy1062: YYDEBUG(1062, *YYCURSOR); ++YYCURSOR; @@ -16177,7 +16179,7 @@ yy1063: YYDEBUG(1063, *YYCURSOR); -#line 1139 "resource/parse_date.re" +#line 1151 "resource/parse_date.re" { timelib_sll w, d; DEBUG_OUTPUT("isoweekday"); @@ -16195,7 +16197,7 @@ TIMELIB_DEINIT; return TIMELIB_ISO_WEEK; } -#line 14035 "<stdout>" +#line 14037 "<stdout>" yy1064: YYDEBUG(1064, *YYCURSOR); yych = *++YYCURSOR; @@ -16264,7 +16266,7 @@ yy1067: YYDEBUG(1067, *YYCURSOR); -#line 1126 "resource/parse_date.re" +#line 1138 "resource/parse_date.re" { DEBUG_OUTPUT("pgydotd"); TIMELIB_INIT; @@ -16276,7 +16278,7 @@ TIMELIB_DEINIT; return TIMELIB_PG_YEARDAY; } -#line 14108 "<stdout>" +#line 14110 "<stdout>" yy1068: YYDEBUG(1068, *YYCURSOR); yych = *++YYCURSOR; @@ -16391,7 +16393,7 @@ yy1074: YYDEBUG(1074, *YYCURSOR); -#line 1092 "resource/parse_date.re" +#line 1104 "resource/parse_date.re" { DEBUG_OUTPUT("datenocolon"); TIMELIB_INIT; @@ -16402,7 +16404,7 @@ TIMELIB_DEINIT; return TIMELIB_DATE_NOCOLON; } -#line 14216 "<stdout>" +#line 14218 "<stdout>" yy1075: YYDEBUG(1075, *YYCURSOR); yych = *++YYCURSOR; @@ -16500,7 +16502,7 @@ yy1085: YYDEBUG(1085, *YYCURSOR); -#line 1104 "resource/parse_date.re" +#line 1116 "resource/parse_date.re" { int tz_not_found; DEBUG_OUTPUT("xmlrpc | xmlrpcnocolon | soap | wddx"); @@ -16521,7 +16523,7 @@ TIMELIB_DEINIT; return TIMELIB_XMLRPC_SOAP; } -#line 14313 "<stdout>" +#line 14315 "<stdout>" yy1086: YYDEBUG(1086, *YYCURSOR); yych = *++YYCURSOR; @@ -17124,7 +17126,7 @@ yy1176: YYDEBUG(1176, *YYCURSOR); -#line 991 "resource/parse_date.re" +#line 1003 "resource/parse_date.re" { DEBUG_OUTPUT("iso8601date | iso8601dateslash | dateslash"); TIMELIB_INIT; @@ -17135,7 +17137,7 @@ TIMELIB_DEINIT; return TIMELIB_ISO_DATE; } -#line 14745 "<stdout>" +#line 14747 "<stdout>" yy1177: YYDEBUG(1177, *YYCURSOR); yych = *++YYCURSOR; @@ -17950,7 +17952,7 @@ yy1269: YYDEBUG(1269, *YYCURSOR); -#line 913 "resource/parse_date.re" +#line 925 "resource/parse_date.re" { DEBUG_OUTPUT("gnunocolon"); TIMELIB_INIT; @@ -17971,7 +17973,7 @@ TIMELIB_DEINIT; return TIMELIB_GNU_NOCOLON; } -#line 15392 "<stdout>" +#line 15394 "<stdout>" yy1270: YYDEBUG(1270, *YYCURSOR); yych = *++YYCURSOR; @@ -18068,7 +18070,7 @@ yy1277: YYDEBUG(1277, *YYCURSOR); -#line 958 "resource/parse_date.re" +#line 970 "resource/parse_date.re" { int tz_not_found; DEBUG_OUTPUT("iso8601nocolon"); @@ -18085,7 +18087,7 @@ TIMELIB_DEINIT; return TIMELIB_ISO_NOCOLON; } -#line 15490 "<stdout>" +#line 15492 "<stdout>" yy1278: YYDEBUG(1278, *YYCURSOR); yyaccept = 21; @@ -18382,7 +18384,7 @@ yy1302: YYDEBUG(1302, *YYCURSOR); -#line 848 "resource/parse_date.re" +#line 860 "resource/parse_date.re" { timelib_ull i; @@ -18405,7 +18407,7 @@ TIMELIB_DEINIT; return TIMELIB_RELATIVE; } -#line 15754 "<stdout>" +#line 15756 "<stdout>" yy1303: YYDEBUG(1303, *YYCURSOR); yych = *++YYCURSOR; @@ -18476,7 +18478,7 @@ yy1311: YYDEBUG(1311, *YYCURSOR); -#line 836 "resource/parse_date.re" +#line 848 "resource/parse_date.re" { DEBUG_OUTPUT("tomorrow"); TIMELIB_INIT; @@ -18487,7 +18489,7 @@ TIMELIB_DEINIT; return TIMELIB_RELATIVE; } -#line 15818 "<stdout>" +#line 15820 "<stdout>" yy1312: YYDEBUG(1312, *YYCURSOR); yych = *++YYCURSOR; @@ -18500,48 +18502,95 @@ yy1314: YYDEBUG(1314, *YYCURSOR); -#line 826 "resource/parse_date.re" +#line 838 "resource/parse_date.re" { - DEBUG_OUTPUT("today"); + DEBUG_OUTPUT("midnight | today"); TIMELIB_INIT; TIMELIB_UNHAVE_TIME(); TIMELIB_DEINIT; return TIMELIB_RELATIVE; } -#line 15834 "<stdout>" +#line 15836 "<stdout>" yy1315: YYDEBUG(1315, *YYCURSOR); yych = *++YYCURSOR; if(yych <= '`'){ - if(yych <= 'U'){ + if(yych <= '@') goto yy3; + if(yych <= 'Z') goto yy49; + goto yy3; + } else { + if(yych == 'd') goto yy1316; + if(yych <= 'z') goto yy49; + goto yy3; + } +yy1316: + YYDEBUG(1316, *YYCURSOR); + yych = *++YYCURSOR; + if(yych <= '`'){ + if(yych <= '@') goto yy3; + if(yych <= 'Z') goto yy50; + goto yy3; + } else { + if(yych == 'n') goto yy1317; + if(yych <= 'z') goto yy50; + goto yy3; + } +yy1317: + YYDEBUG(1317, *YYCURSOR); + yyaccept = 1; + yych = *(YYMARKER = ++YYCURSOR); + if(yych != 'i') goto yy3; + goto yy1318; +yy1318: + YYDEBUG(1318, *YYCURSOR); + yych = *++YYCURSOR; + if(yych != 'g') goto yy54; + goto yy1319; +yy1319: + YYDEBUG(1319, *YYCURSOR); + yych = *++YYCURSOR; + if(yych != 'h') goto yy54; + goto yy1320; +yy1320: + YYDEBUG(1320, *YYCURSOR); + yych = *++YYCURSOR; + if(yych == 't') goto yy1313; + goto yy54; +yy1321: + YYDEBUG(1321, *YYCURSOR); + yych = *++YYCURSOR; + if(yych <= 'n'){ + if(yych <= 'V'){ if(yych <= '@') goto yy3; - goto yy49; + if(yych <= 'U') goto yy49; + goto yy612; } else { - if(yych <= 'V') goto yy612; if(yych <= 'Z') goto yy49; - goto yy3; + if(yych <= '`') goto yy3; + goto yy49; } } else { if(yych <= 'v'){ + if(yych <= 'o') goto yy1324; if(yych <= 'u') goto yy49; goto yy612; } else { - if(yych <= 'w') goto yy1316; + if(yych <= 'w') goto yy1322; if(yych <= 'z') goto yy49; goto yy3; } } -yy1316: - YYDEBUG(1316, *YYCURSOR); +yy1322: + YYDEBUG(1322, *YYCURSOR); ++YYCURSOR; - if((yych = *YYCURSOR) <= '@') goto yy1317; + if((yych = *YYCURSOR) <= '@') goto yy1323; if(yych <= 'Z') goto yy50; - if(yych <= '`') goto yy1317; + if(yych <= '`') goto yy1323; if(yych <= 'z') goto yy50; - goto yy1317; -yy1317: - YYDEBUG(1317, *YYCURSOR); + goto yy1323; +yy1323: + YYDEBUG(1323, *YYCURSOR); #line 817 "resource/parse_date.re" { @@ -18551,63 +18600,94 @@ TIMELIB_DEINIT; return TIMELIB_RELATIVE; } -#line 15870 "<stdout>" -yy1318: - YYDEBUG(1318, *YYCURSOR); +#line 15907 "<stdout>" +yy1324: + YYDEBUG(1324, *YYCURSOR); + yych = *++YYCURSOR; + if(yych <= '`'){ + if(yych <= '@') goto yy3; + if(yych <= 'Z') goto yy50; + goto yy3; + } else { + if(yych == 'n') goto yy1325; + if(yych <= 'z') goto yy50; + goto yy3; + } +yy1325: + YYDEBUG(1325, *YYCURSOR); + ++YYCURSOR; + goto yy1326; +yy1326: + YYDEBUG(1326, *YYCURSOR); + +#line 826 "resource/parse_date.re" +{ + DEBUG_OUTPUT("noon"); + TIMELIB_INIT; + TIMELIB_UNHAVE_TIME(); + TIMELIB_HAVE_TIME(); + s->time->h = 12; + + TIMELIB_DEINIT; + return TIMELIB_RELATIVE; + } +#line 15932 "<stdout>" +yy1327: + YYDEBUG(1327, *YYCURSOR); yych = *++YYCURSOR; if(yych <= '`'){ if(yych <= '@') goto yy3; if(yych <= 'Z') goto yy49; goto yy3; } else { - if(yych == 's') goto yy1319; + if(yych == 's') goto yy1328; if(yych <= 'z') goto yy49; goto yy3; } -yy1319: - YYDEBUG(1319, *YYCURSOR); +yy1328: + YYDEBUG(1328, *YYCURSOR); yych = *++YYCURSOR; if(yych <= '`'){ if(yych <= '@') goto yy3; if(yych <= 'Z') goto yy50; goto yy3; } else { - if(yych == 't') goto yy1320; + if(yych == 't') goto yy1329; if(yych <= 'z') goto yy50; goto yy3; } -yy1320: - YYDEBUG(1320, *YYCURSOR); +yy1329: + YYDEBUG(1329, *YYCURSOR); yyaccept = 1; yych = *(YYMARKER = ++YYCURSOR); if(yych != 'e') goto yy3; - goto yy1321; -yy1321: - YYDEBUG(1321, *YYCURSOR); + goto yy1330; +yy1330: + YYDEBUG(1330, *YYCURSOR); yych = *++YYCURSOR; if(yych != 'r') goto yy54; - goto yy1322; -yy1322: - YYDEBUG(1322, *YYCURSOR); + goto yy1331; +yy1331: + YYDEBUG(1331, *YYCURSOR); yych = *++YYCURSOR; if(yych != 'd') goto yy54; - goto yy1323; -yy1323: - YYDEBUG(1323, *YYCURSOR); + goto yy1332; +yy1332: + YYDEBUG(1332, *YYCURSOR); yych = *++YYCURSOR; if(yych != 'a') goto yy54; - goto yy1324; -yy1324: - YYDEBUG(1324, *YYCURSOR); + goto yy1333; +yy1333: + YYDEBUG(1333, *YYCURSOR); yych = *++YYCURSOR; if(yych != 'y') goto yy54; - goto yy1325; -yy1325: - YYDEBUG(1325, *YYCURSOR); - ++YYCURSOR; - goto yy1326; -yy1326: - YYDEBUG(1326, *YYCURSOR); + goto yy1334; +yy1334: + YYDEBUG(1334, *YYCURSOR); + ++YYCURSOR; + goto yy1335; +yy1335: + YYDEBUG(1335, *YYCURSOR); #line 805 "resource/parse_date.re" { @@ -18620,10 +18700,10 @@ TIMELIB_DEINIT; return TIMELIB_RELATIVE; } -#line 15921 "<stdout>" +#line 15983 "<stdout>" } } -#line 1355 "resource/parse_date.re" +#line 1367 "resource/parse_date.re" } http://cvs.php.net/diff.php/php-src/ext/date/lib/resource/parse_date.re?r1=1.32&r2=1.33&ty=u Index: php-src/ext/date/lib/resource/parse_date.re diff -u php-src/ext/date/lib/resource/parse_date.re:1.32 php-src/ext/date/lib/resource/parse_date.re:1.33 --- php-src/ext/date/lib/resource/parse_date.re:1.32 Fri Oct 7 04:05:10 2005 +++ php-src/ext/date/lib/resource/parse_date.re Sat Oct 8 10:30:15 2005 @@ -16,7 +16,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: parse_date.re,v 1.32 2005/10/07 08:05:10 derick Exp $ */ +/* $Id: parse_date.re,v 1.33 2005/10/08 14:30:15 derick Exp $ */ #include "timelib.h" @@ -822,9 +822,21 @@ return TIMELIB_RELATIVE; } - "today" + "noon" { - DEBUG_OUTPUT("today"); + DEBUG_OUTPUT("noon"); + TIMELIB_INIT; + TIMELIB_UNHAVE_TIME(); + TIMELIB_HAVE_TIME(); + s->time->h = 12; + + TIMELIB_DEINIT; + return TIMELIB_RELATIVE; + } + + "midnight" | "today" + { + DEBUG_OUTPUT("midnight | today"); TIMELIB_INIT; TIMELIB_UNHAVE_TIME(); http://cvs.php.net/co.php/php-src/ext/date/tests/bug34676.phpt?r=1.1&p=1 Index: php-src/ext/date/tests/bug34676.phpt +++ php-src/ext/date/tests/bug34676.phpt --TEST-- Bug #34676 (missing support for strtotime("midnight") and strtotime("noon")) --FILE-- <?php date_default_timezone_set("UTC"); $tests = array( 'noon', 'midnight' ); foreach ($tests as $test) { $t = strtotime("2005-12-22 ". $test); printf("%-10s => %s\n", $test, date(DATE_ISO8601, $t)); } ?> --EXPECT-- noon => 2005-12-22T12:00:00+0000 midnight => 2005-12-22T00:00:00+0000
http://cvs.php.net/diff.php/php-src/ext/date/lib/parse_date.c?r1=1.35&r2=1.36&ty=u Index: php-src/ext/date/lib/parse_date.c diff -u php-src/ext/date/lib/parse_date.c:1.35 php-src/ext/date/lib/parse_date.c:1.36 --- php-src/ext/date/lib/parse_date.c:1.35 Fri Oct 7 04:05:06 2005 +++ php-src/ext/date/lib/parse_date.c Sat Oct 8 10:30:06 2005 @@ -1,4 +1,4 @@ -/* Generated by re2c 0.9.10.dev on Fri Oct 7 09:56:07 2005 */ +/* Generated by re2c 0.9.10.dev on Sat Oct 8 16:29:08 2005 */ #line 1 "resource/parse_date.re" /* +----------------------------------------------------------------------+ @@ -18,7 +18,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: parse_date.c,v 1.35 2005/10/07 08:05:06 derick Exp $ */ +/* $Id: parse_date.c,v 1.36 2005/10/08 14:30:06 derick Exp $ */ #include "timelib.h" @@ -748,17 +748,17 @@ case 0x00: case 0x0A: goto yy45; case ' ': case ',': case '.': goto yy43; case '+': case '-': goto yy40; - case '0': goto yy8; - case '1': goto yy9; - case '2': goto yy10; - case '3': goto yy11; + case '0': goto yy9; + case '1': goto yy10; + case '2': goto yy11; + case '3': goto yy12; case '4': case '5': case '6': case '7': case '8': - case '9': goto yy12; - case '@': goto yy6; + case '9': goto yy13; + case '@': goto yy7; case 'A': goto yy22; case 'B': case 'C': case 'G': @@ -767,19 +767,19 @@ case 'Z': goto yy41; case 'D': goto yy29; case 'E': goto yy32; - case 'F': goto yy18; - case 'I': goto yy13; - case 'J': goto yy16; + case 'F': goto yy19; + case 'I': goto yy14; + case 'J': goto yy17; case 'L': goto yy34; - case 'M': goto yy20; + case 'M': goto yy21; case 'N': goto yy28; case 'O': goto yy26; case 'P': goto yy36; case 'S': goto yy24; case 'T': goto yy31; - case 'V': goto yy14; + case 'V': goto yy15; case 'W': goto yy38; - case 'X': goto yy15; + case 'X': goto yy16; case 'a': goto yy23; case 'b': case 'c': case 'g': @@ -789,15 +789,15 @@ case 'v': case 'x': case 'z': goto yy42; case 'd': goto yy30; case 'e': goto yy33; - case 'f': goto yy19; - case 'j': goto yy17; + case 'f': goto yy20; + case 'j': goto yy18; case 'l': goto yy35; - case 'm': goto yy21; + case 'm': goto yy5; case 'n': goto yy4; case 'o': goto yy27; case 'p': goto yy37; case 's': goto yy25; - case 't': goto yy5; + case 't': goto yy6; case 'w': goto yy39; case 'y': goto yy2; default: goto yy47; @@ -810,14 +810,14 @@ if(yych <= 'Z') goto yy48; goto yy3; } else { - if(yych == 'e') goto yy1318; + if(yych == 'e') goto yy1327; if(yych <= 'z') goto yy48; goto yy3; } yy3: YYDEBUG(3, *YYCURSOR); -#line 1284 "resource/parse_date.re" +#line 1296 "resource/parse_date.re" { int tz_not_found; DEBUG_OUTPUT("tzcorrection | tz"); @@ -851,7 +851,7 @@ if(yych <= 'i') goto yy605; goto yy48; } else { - if(yych <= 'o') goto yy1315; + if(yych <= 'o') goto yy1321; if(yych <= 'z') goto yy48; goto yy3; } @@ -860,6 +860,30 @@ yy5: YYDEBUG(5, *YYCURSOR); yych = *++YYCURSOR; + if(yych <= '`'){ + if(yych <= 'N'){ + if(yych <= '@') goto yy3; + if(yych <= 'A') goto yy699; + goto yy48; + } else { + if(yych <= 'O') goto yy702; + if(yych <= 'Z') goto yy48; + goto yy3; + } + } else { + if(yych <= 'i'){ + if(yych <= 'a') goto yy699; + if(yych <= 'h') goto yy48; + goto yy1315; + } else { + if(yych == 'o') goto yy702; + if(yych <= 'z') goto yy48; + goto yy3; + } + } +yy6: + YYDEBUG(6, *YYCURSOR); + yych = *++YYCURSOR; YYDEBUG(-1, yych); switch(yych){ case 'A': @@ -902,26 +926,26 @@ case 'o': goto yy1303; default: goto yy3; } -yy6: - YYDEBUG(6, *YYCURSOR); +yy7: + YYDEBUG(7, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if(yych == '-') goto yy1299; - if(yych <= '0') goto yy7; + if(yych <= '0') goto yy8; if(yych <= '9') goto yy1300; - goto yy7; -yy7: - YYDEBUG(7, *YYCURSOR); + goto yy8; +yy8: + YYDEBUG(8, *YYCURSOR); -#line 1350 "resource/parse_date.re" +#line 1362 "resource/parse_date.re" { /* printf("unexpected character: #%d, %c ", *s->tok, *s->tok); */ s->errors++; goto std; } -#line 907 "<stdout>" -yy8: - YYDEBUG(8, *YYCURSOR); +#line 929 "<stdout>" +yy9: + YYDEBUG(9, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); YYDEBUG(-1, yych); @@ -964,10 +988,10 @@ case '8': case '9': goto yy1297; case ':': goto yy1266; - default: goto yy7; + default: goto yy8; } -yy9: - YYDEBUG(9, *YYCURSOR); +yy10: + YYDEBUG(10, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); YYDEBUG(-1, yych); @@ -1012,10 +1036,10 @@ case '8': case '9': goto yy1264; case ':': goto yy795; - default: goto yy7; + default: goto yy8; } -yy10: - YYDEBUG(10, *YYCURSOR); +yy11: + YYDEBUG(11, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); YYDEBUG(-1, yych); @@ -1060,10 +1084,10 @@ case '8': case '9': goto yy1254; case ':': goto yy795; - default: goto yy7; + default: goto yy8; } -yy11: - YYDEBUG(11, *YYCURSOR); +yy12: + YYDEBUG(12, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); YYDEBUG(-1, yych); @@ -1108,10 +1132,10 @@ case '8': case '9': goto yy781; case ':': goto yy795; - default: goto yy7; + default: goto yy8; } -yy12: - YYDEBUG(12, *YYCURSOR); +yy13: + YYDEBUG(13, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); YYDEBUG(-1, yych); @@ -1156,10 +1180,10 @@ case '8': case '9': goto yy781; case ':': goto yy795; - default: goto yy7; + default: goto yy8; } -yy13: - YYDEBUG(13, *YYCURSOR); +yy14: + YYDEBUG(14, *YYCURSOR); yyaccept = 1; yych = *(YYMARKER = ++YYCURSOR); if(yych <= 'I'){ @@ -1185,8 +1209,8 @@ goto yy3; } } -yy14: - YYDEBUG(14, *YYCURSOR); +yy15: + YYDEBUG(15, *YYCURSOR); yyaccept = 1; yych = *(YYMARKER = ++YYCURSOR); if(yych <= '@'){ @@ -1208,8 +1232,8 @@ goto yy3; } } -yy15: - YYDEBUG(15, *YYCURSOR); +yy16: + YYDEBUG(16, *YYCURSOR); yyaccept = 1; yych = *(YYMARKER = ++YYCURSOR); if(yych <= '@'){ @@ -1231,8 +1255,8 @@ goto yy3; } } -yy16: - YYDEBUG(16, *YYCURSOR); +yy17: + YYDEBUG(17, *YYCURSOR); yych = *++YYCURSOR; if(yych <= 'Z'){ if(yych <= 'A'){ @@ -1253,8 +1277,8 @@ goto yy3; } } -yy17: - YYDEBUG(17, *YYCURSOR); +yy18: + YYDEBUG(18, *YYCURSOR); yych = *++YYCURSOR; if(yych <= 'Z'){ if(yych <= 'A'){ @@ -1275,8 +1299,8 @@ goto yy3; } } -yy18: - YYDEBUG(18, *YYCURSOR); +yy19: + YYDEBUG(19, *YYCURSOR); yych = *++YYCURSOR; if(yych <= 'Z'){ if(yych <= 'I'){ @@ -1318,8 +1342,8 @@ } } } -yy19: - YYDEBUG(19, *YYCURSOR); +yy20: + YYDEBUG(20, *YYCURSOR); yych = *++YYCURSOR; if(yych <= 'Z'){ if(yych <= 'I'){ @@ -1361,28 +1385,6 @@ } } } -yy20: - YYDEBUG(20, *YYCURSOR); - yych = *++YYCURSOR; - if(yych <= 'Z'){ - if(yych <= 'A'){ - if(yych <= '@') goto yy3; - goto yy699; - } else { - if(yych == 'O') goto yy700; - goto yy48; - } - } else { - if(yych <= 'n'){ - if(yych <= '`') goto yy3; - if(yych <= 'a') goto yy707; - goto yy51; - } else { - if(yych <= 'o') goto yy708; - if(yych <= 'z') goto yy51; - goto yy3; - } - } yy21: YYDEBUG(21, *YYCURSOR); yych = *++YYCURSOR; @@ -1391,17 +1393,17 @@ if(yych <= '@') goto yy3; goto yy699; } else { - if(yych == 'O') goto yy700; + if(yych == 'O') goto yy702; goto yy48; } } else { if(yych <= 'n'){ if(yych <= '`') goto yy3; - if(yych <= 'a') goto yy699; - goto yy48; + if(yych <= 'a') goto yy700; + goto yy51; } else { - if(yych <= 'o') goto yy700; - if(yych <= 'z') goto yy48; + if(yych <= 'o') goto yy701; + if(yych <= 'z') goto yy51; goto yy3; } } @@ -1822,11 +1824,11 @@ yy40: YYDEBUG(40, *YYCURSOR); yych = *++YYCURSOR; - if(yych <= '/') goto yy7; + if(yych <= '/') goto yy8; if(yych <= '1') goto yy61; if(yych <= '2') goto yy62; if(yych <= '9') goto yy63; - goto yy7; + goto yy8; yy41: YYDEBUG(41, *YYCURSOR); yych = *++YYCURSOR; @@ -1850,11 +1852,11 @@ yy44: YYDEBUG(44, *YYCURSOR); -#line 1339 "resource/parse_date.re" +#line 1351 "resource/parse_date.re" { goto std; } -#line 1763 "<stdout>" +#line 1765 "<stdout>" yy45: YYDEBUG(45, *YYCURSOR); ++YYCURSOR; @@ -1862,16 +1864,16 @@ yy46: YYDEBUG(46, *YYCURSOR); -#line 1344 "resource/parse_date.re" +#line 1356 "resource/parse_date.re" { s->pos = cursor; s->line++; goto std; } -#line 1772 "<stdout>" +#line 1774 "<stdout>" yy47: YYDEBUG(47, *YYCURSOR); yych = *++YYCURSOR; - goto yy7; + goto yy8; yy48: YYDEBUG(48, *YYCURSOR); yych = *++YYCURSOR; @@ -1961,7 +1963,7 @@ case 1: goto yy3; case 7: goto yy527; case 2: goto yy85; - case 0: goto yy7; + case 0: goto yy8; } yy55: YYDEBUG(55, *YYCURSOR); @@ -2325,7 +2327,7 @@ yy85: YYDEBUG(85, *YYCURSOR); -#line 1323 "resource/parse_date.re" +#line 1335 "resource/parse_date.re" { timelib_ull i; DEBUG_OUTPUT("relative"); @@ -2340,7 +2342,7 @@ TIMELIB_DEINIT; return TIMELIB_RELATIVE; } -#line 2162 "<stdout>" +#line 2164 "<stdout>" yy86: YYDEBUG(86, *YYCURSOR); ++YYCURSOR; @@ -3033,12 +3035,12 @@ yy151: YYDEBUG(151, *YYCURSOR); -#line 1278 "resource/parse_date.re" +#line 1290 "resource/parse_date.re" { DEBUG_OUTPUT("dayabbr"); goto std; } -#line 2726 "<stdout>" +#line 2728 "<stdout>" yy152: YYDEBUG(152, *YYCURSOR); yyaccept = 1; @@ -3077,7 +3079,7 @@ yy158: YYDEBUG(158, *YYCURSOR); -#line 1262 "resource/parse_date.re" +#line 1274 "resource/parse_date.re" { const timelib_relunit* relunit; DEBUG_OUTPUT("dayfull"); @@ -3092,7 +3094,7 @@ TIMELIB_DEINIT; return TIMELIB_RELATIVE; } -#line 2766 "<stdout>" +#line 2768 "<stdout>" yy159: YYDEBUG(159, *YYCURSOR); yyaccept = 1; @@ -3461,7 +3463,7 @@ yy190: YYDEBUG(190, *YYCURSOR); -#line 1246 "resource/parse_date.re" +#line 1258 "resource/parse_date.re" { timelib_sll i; DEBUG_OUTPUT("relativetext"); @@ -3476,7 +3478,7 @@ TIMELIB_DEINIT; return TIMELIB_RELATIVE; } -#line 3084 "<stdout>" +#line 3086 "<stdout>" yy191: YYDEBUG(191, *YYCURSOR); ++YYCURSOR; @@ -9106,7 +9108,7 @@ yy509: YYDEBUG(509, *YYCURSOR); -#line 1068 "resource/parse_date.re" +#line 1080 "resource/parse_date.re" { DEBUG_OUTPUT("datetextual | datenoyear"); TIMELIB_INIT; @@ -9118,7 +9120,7 @@ TIMELIB_DEINIT; return TIMELIB_DATE_TEXT; } -#line 8077 "<stdout>" +#line 8079 "<stdout>" yy510: YYDEBUG(510, *YYCURSOR); yych = *++YYCURSOR; @@ -9278,7 +9280,7 @@ yy527: YYDEBUG(527, *YYCURSOR); -#line 1295 "resource/parse_date.re" +#line 1307 "resource/parse_date.re" { int tz_not_found; DEBUG_OUTPUT("dateshortwithtimeshort | dateshortwithtimelong | dateshortwithtimelongtz"); @@ -9305,7 +9307,7 @@ TIMELIB_DEINIT; return TIMELIB_SHORTDATE_WITH_TIME; } -#line 8228 "<stdout>" +#line 8230 "<stdout>" yy528: YYDEBUG(528, *YYCURSOR); yyaccept = 7; @@ -9618,7 +9620,7 @@ yy562: YYDEBUG(562, *YYCURSOR); -#line 1042 "resource/parse_date.re" +#line 1054 "resource/parse_date.re" { DEBUG_OUTPUT("datenoday"); TIMELIB_INIT; @@ -9630,7 +9632,7 @@ TIMELIB_DEINIT; return TIMELIB_DATE_NO_DAY; } -#line 8483 "<stdout>" +#line 8485 "<stdout>" yy563: YYDEBUG(563, *YYCURSOR); yyaccept = 6; @@ -9930,7 +9932,7 @@ yy588: YYDEBUG(588, *YYCURSOR); -#line 1177 "resource/parse_date.re" +#line 1189 "resource/parse_date.re" { DEBUG_OUTPUT("pgtextshort"); TIMELIB_INIT; @@ -9942,7 +9944,7 @@ TIMELIB_DEINIT; return TIMELIB_PG_TEXT; } -#line 8742 "<stdout>" +#line 8744 "<stdout>" yy589: YYDEBUG(589, *YYCURSOR); yych = *++YYCURSOR; @@ -11446,7 +11448,7 @@ yy684: YYDEBUG(684, *YYCURSOR); -#line 1231 "resource/parse_date.re" +#line 1243 "resource/parse_date.re" { DEBUG_OUTPUT("ago"); TIMELIB_INIT; @@ -11460,7 +11462,7 @@ TIMELIB_DEINIT; return TIMELIB_AGO; } -#line 10067 "<stdout>" +#line 10069 "<stdout>" yy685: YYDEBUG(685, *YYCURSOR); yyaccept = 1; @@ -11754,127 +11756,24 @@ if(yych <= 'R'){ if(yych <= '@') goto yy3; if(yych <= 'Q') goto yy49; - goto yy704; + goto yy709; } else { - if(yych == 'Y') goto yy705; + if(yych == 'Y') goto yy711; goto yy49; } } else { if(yych <= 'r'){ if(yych <= '`') goto yy3; if(yych <= 'q') goto yy49; - goto yy704; + goto yy709; } else { - if(yych == 'y') goto yy705; + if(yych == 'y') goto yy711; if(yych <= 'z') goto yy49; goto yy3; } } yy700: YYDEBUG(700, *YYCURSOR); - yych = *++YYCURSOR; - if(yych <= 'Z'){ - if(yych <= '@') goto yy3; - if(yych != 'N') goto yy49; - goto yy701; - } else { - if(yych <= 'm'){ - if(yych <= '`') goto yy3; - goto yy49; - } else { - if(yych <= 'n') goto yy701; - if(yych <= 'z') goto yy49; - goto yy3; - } - } -yy701: - YYDEBUG(701, *YYCURSOR); - yych = *++YYCURSOR; - if(yych <= 'Z'){ - if(yych <= '@') goto yy151; - if(yych != 'D') goto yy50; - goto yy702; - } else { - if(yych <= 'c'){ - if(yych <= '`') goto yy151; - goto yy50; - } else { - if(yych <= 'd') goto yy702; - if(yych <= 'z') goto yy50; - goto yy151; - } - } -yy702: - YYDEBUG(702, *YYCURSOR); - yyaccept = 1; - yych = *(YYMARKER = ++YYCURSOR); - if(yych == 'A') goto yy703; - if(yych != 'a') goto yy3; - goto yy703; -yy703: - YYDEBUG(703, *YYCURSOR); - yych = *++YYCURSOR; - if(yych == 'Y') goto yy157; - if(yych == 'y') goto yy157; - goto yy54; -yy704: - YYDEBUG(704, *YYCURSOR); - yyaccept = 1; - yych = *(YYMARKER = ++YYCURSOR); - if(yych <= '@'){ - if(yych <= '-'){ - if(yych <= 0x1F) goto yy3; - if(yych <= ',') goto yy506; - goto yy507; - } else { - if(yych == '/') goto yy3; - if(yych <= '9') goto yy506; - goto yy3; - } - } else { - if(yych <= '`'){ - if(yych == 'C') goto yy706; - if(yych <= 'Z') goto yy50; - goto yy3; - } else { - if(yych == 'c') goto yy706; - if(yych <= 'z') goto yy50; - goto yy3; - } - } -yy705: - YYDEBUG(705, *YYCURSOR); - yyaccept = 1; - yych = *(YYMARKER = ++YYCURSOR); - if(yych <= '/'){ - if(yych <= ','){ - if(yych <= 0x1F) goto yy3; - goto yy506; - } else { - if(yych <= '-') goto yy507; - if(yych <= '.') goto yy506; - goto yy3; - } - } else { - if(yych <= 'Z'){ - if(yych <= '9') goto yy506; - if(yych <= '@') goto yy3; - goto yy50; - } else { - if(yych <= '`') goto yy3; - if(yych <= 'z') goto yy50; - goto yy3; - } - } -yy706: - YYDEBUG(706, *YYCURSOR); - yyaccept = 1; - yych = *(YYMARKER = ++YYCURSOR); - if(yych == 'H') goto yy505; - if(yych == 'h') goto yy505; - goto yy3; -yy707: - YYDEBUG(707, *YYCURSOR); yyaccept = 1; yych = *(YYMARKER = ++YYCURSOR); if(yych <= 'Z'){ @@ -11883,8 +11782,8 @@ if(yych <= '@') goto yy3; goto yy49; } else { - if(yych <= 'R') goto yy704; - if(yych == 'Y') goto yy705; + if(yych <= 'R') goto yy709; + if(yych == 'Y') goto yy711; goto yy49; } } else { @@ -11894,17 +11793,17 @@ goto yy52; } else { if(yych <= 'x'){ - if(yych <= 'r') goto yy712; + if(yych <= 'r') goto yy710; goto yy52; } else { - if(yych <= 'y') goto yy713; + if(yych <= 'y') goto yy712; if(yych <= 'z') goto yy52; goto yy3; } } } -yy708: - YYDEBUG(708, *YYCURSOR); +yy701: + YYDEBUG(701, *YYCURSOR); yyaccept = 1; yych = *(YYMARKER = ++YYCURSOR); if(yych <= 'Z'){ @@ -11912,7 +11811,7 @@ if(yych == '/') goto yy53; goto yy3; } else { - if(yych == 'N') goto yy701; + if(yych == 'N') goto yy703; goto yy49; } } else { @@ -11920,13 +11819,60 @@ if(yych == '_') goto yy53; goto yy3; } else { - if(yych == 'n') goto yy709; + if(yych == 'n') goto yy706; if(yych <= 'z') goto yy52; goto yy3; } } -yy709: - YYDEBUG(709, *YYCURSOR); +yy702: + YYDEBUG(702, *YYCURSOR); + yych = *++YYCURSOR; + if(yych <= 'Z'){ + if(yych <= '@') goto yy3; + if(yych != 'N') goto yy49; + goto yy703; + } else { + if(yych <= 'm'){ + if(yych <= '`') goto yy3; + goto yy49; + } else { + if(yych <= 'n') goto yy703; + if(yych <= 'z') goto yy49; + goto yy3; + } + } +yy703: + YYDEBUG(703, *YYCURSOR); + yych = *++YYCURSOR; + if(yych <= 'Z'){ + if(yych <= '@') goto yy151; + if(yych != 'D') goto yy50; + goto yy704; + } else { + if(yych <= 'c'){ + if(yych <= '`') goto yy151; + goto yy50; + } else { + if(yych <= 'd') goto yy704; + if(yych <= 'z') goto yy50; + goto yy151; + } + } +yy704: + YYDEBUG(704, *YYCURSOR); + yyaccept = 1; + yych = *(YYMARKER = ++YYCURSOR); + if(yych == 'A') goto yy705; + if(yych != 'a') goto yy3; + goto yy705; +yy705: + YYDEBUG(705, *YYCURSOR); + yych = *++YYCURSOR; + if(yych == 'Y') goto yy157; + if(yych == 'y') goto yy157; + goto yy54; +yy706: + YYDEBUG(706, *YYCURSOR); yyaccept = 3; yych = *(YYMARKER = ++YYCURSOR); if(yych <= 'Z'){ @@ -11934,7 +11880,7 @@ if(yych == '/') goto yy53; goto yy151; } else { - if(yych == 'D') goto yy702; + if(yych == 'D') goto yy704; goto yy50; } } else { @@ -11942,13 +11888,13 @@ if(yych == '_') goto yy53; goto yy151; } else { - if(yych == 'd') goto yy710; + if(yych == 'd') goto yy707; if(yych <= 'z') goto yy58; goto yy151; } } -yy710: - YYDEBUG(710, *YYCURSOR); +yy707: + YYDEBUG(707, *YYCURSOR); yyaccept = 1; yych = *(YYMARKER = ++YYCURSOR); if(yych <= '^'){ @@ -11956,7 +11902,7 @@ if(yych <= '.') goto yy3; goto yy53; } else { - if(yych == 'A') goto yy703; + if(yych == 'A') goto yy705; goto yy3; } } else { @@ -11964,19 +11910,44 @@ if(yych <= '_') goto yy53; goto yy3; } else { - if(yych <= 'a') goto yy711; + if(yych <= 'a') goto yy708; if(yych <= 'z') goto yy59; goto yy3; } } -yy711: - YYDEBUG(711, *YYCURSOR); +yy708: + YYDEBUG(708, *YYCURSOR); yych = *++YYCURSOR; if(yych == 'Y') goto yy157; if(yych == 'y') goto yy166; goto yy60; -yy712: - YYDEBUG(712, *YYCURSOR); +yy709: + YYDEBUG(709, *YYCURSOR); + yyaccept = 1; + yych = *(YYMARKER = ++YYCURSOR); + if(yych <= '@'){ + if(yych <= '-'){ + if(yych <= 0x1F) goto yy3; + if(yych <= ',') goto yy506; + goto yy507; + } else { + if(yych == '/') goto yy3; + if(yych <= '9') goto yy506; + goto yy3; + } + } else { + if(yych <= '`'){ + if(yych == 'C') goto yy713; + if(yych <= 'Z') goto yy50; + goto yy3; + } else { + if(yych == 'c') goto yy713; + if(yych <= 'z') goto yy50; + goto yy3; + } + } +yy710: + YYDEBUG(710, *YYCURSOR); yyaccept = 1; yych = *(YYMARKER = ++YYCURSOR); if(yych <= 'B'){ @@ -11992,7 +11963,7 @@ } } else { if(yych <= '_'){ - if(yych <= 'C') goto yy706; + if(yych <= 'C') goto yy713; if(yych <= 'Z') goto yy50; if(yych <= '^') goto yy3; goto yy53; @@ -12007,8 +11978,32 @@ } } } -yy713: - YYDEBUG(713, *YYCURSOR); +yy711: + YYDEBUG(711, *YYCURSOR); + yyaccept = 1; + yych = *(YYMARKER = ++YYCURSOR); + if(yych <= '/'){ + if(yych <= ','){ + if(yych <= 0x1F) goto yy3; + goto yy506; + } else { + if(yych <= '-') goto yy507; + if(yych <= '.') goto yy506; + goto yy3; + } + } else { + if(yych <= 'Z'){ + if(yych <= '9') goto yy506; + if(yych <= '@') goto yy3; + goto yy50; + } else { + if(yych <= '`') goto yy3; + if(yych <= 'z') goto yy50; + goto yy3; + } + } +yy712: + YYDEBUG(712, *YYCURSOR); yyaccept = 1; yych = *(YYMARKER = ++YYCURSOR); if(yych <= '9'){ @@ -12032,6 +12027,13 @@ goto yy3; } } +yy713: + YYDEBUG(713, *YYCURSOR); + yyaccept = 1; + yych = *(YYMARKER = ++YYCURSOR); + if(yych == 'H') goto yy505; + if(yych == 'h') goto yy505; + goto yy3; yy714: YYDEBUG(714, *YYCURSOR); yyaccept = 1; @@ -13395,7 +13397,7 @@ yy788: YYDEBUG(788, *YYCURSOR); -#line 1081 "resource/parse_date.re" +#line 1093 "resource/parse_date.re" { DEBUG_OUTPUT("datenoyearrev"); TIMELIB_INIT; @@ -13405,7 +13407,7 @@ TIMELIB_DEINIT; return TIMELIB_DATE_TEXT; } -#line 11800 "<stdout>" +#line 11802 "<stdout>" yy789: YYDEBUG(789, *YYCURSOR); yyaccept = 10; @@ -13515,7 +13517,7 @@ yy799: YYDEBUG(799, *YYCURSOR); -#line 872 "resource/parse_date.re" +#line 884 "resource/parse_date.re" { DEBUG_OUTPUT("timetiny12 | timeshort12 | timelong12"); TIMELIB_INIT; @@ -13531,7 +13533,7 @@ TIMELIB_DEINIT; return TIMELIB_TIME12; } -#line 11904 "<stdout>" +#line 11906 "<stdout>" yy800: YYDEBUG(800, *YYCURSOR); yych = *++YYCURSOR; @@ -13551,7 +13553,7 @@ yy802: YYDEBUG(802, *YYCURSOR); -#line 889 "resource/parse_date.re" +#line 901 "resource/parse_date.re" { int tz_not_found; DEBUG_OUTPUT("timeshort24 | timelong24 | iso8601long"); @@ -13574,7 +13576,7 @@ TIMELIB_DEINIT; return TIMELIB_TIME24_WITH_ZONE; } -#line 11941 "<stdout>" +#line 11943 "<stdout>" yy803: YYDEBUG(803, *YYCURSOR); yyaccept = 11; @@ -13817,7 +13819,7 @@ yy828: YYDEBUG(828, *YYCURSOR); -#line 1016 "resource/parse_date.re" +#line 1028 "resource/parse_date.re" { DEBUG_OUTPUT("datefull"); TIMELIB_INIT; @@ -13829,7 +13831,7 @@ TIMELIB_DEINIT; return TIMELIB_DATE_FULL; } -#line 12144 "<stdout>" +#line 12146 "<stdout>" yy829: YYDEBUG(829, *YYCURSOR); yych = *++YYCURSOR; @@ -14464,7 +14466,7 @@ yy897: YYDEBUG(897, *YYCURSOR); -#line 1029 "resource/parse_date.re" +#line 1041 "resource/parse_date.re" { DEBUG_OUTPUT("pointed date"); TIMELIB_INIT; @@ -14476,7 +14478,7 @@ TIMELIB_DEINIT; return TIMELIB_DATE_FULL_POINTED; } -#line 12653 "<stdout>" +#line 12655 "<stdout>" yy898: YYDEBUG(898, *YYCURSOR); yych = *++YYCURSOR; @@ -15044,7 +15046,7 @@ yy943: YYDEBUG(943, *YYCURSOR); -#line 1003 "resource/parse_date.re" +#line 1015 "resource/parse_date.re" { DEBUG_OUTPUT("gnudateshort"); TIMELIB_INIT; @@ -15056,7 +15058,7 @@ TIMELIB_DEINIT; return TIMELIB_ISO_DATE; } -#line 13141 "<stdout>" +#line 13143 "<stdout>" yy944: YYDEBUG(944, *YYCURSOR); yych = *++YYCURSOR; @@ -15078,7 +15080,7 @@ yy947: YYDEBUG(947, *YYCURSOR); -#line 976 "resource/parse_date.re" +#line 988 "resource/parse_date.re" { DEBUG_OUTPUT("americanshort | american"); TIMELIB_INIT; @@ -15092,7 +15094,7 @@ TIMELIB_DEINIT; return TIMELIB_AMERICAN; } -#line 13169 "<stdout>" +#line 13171 "<stdout>" yy948: YYDEBUG(948, *YYCURSOR); yyaccept = 12; @@ -15314,7 +15316,7 @@ yy980: YYDEBUG(980, *YYCURSOR); -#line 1203 "resource/parse_date.re" +#line 1215 "resource/parse_date.re" { int tz_not_found; DEBUG_OUTPUT("clf"); @@ -15332,7 +15334,7 @@ TIMELIB_DEINIT; return TIMELIB_CLF; } -#line 13343 "<stdout>" +#line 13345 "<stdout>" yy981: YYDEBUG(981, *YYCURSOR); yyaccept = 13; @@ -15641,7 +15643,7 @@ yy1020: YYDEBUG(1020, *YYCURSOR); -#line 1190 "resource/parse_date.re" +#line 1202 "resource/parse_date.re" { DEBUG_OUTPUT("pgtextreverse"); TIMELIB_INIT; @@ -15653,7 +15655,7 @@ TIMELIB_DEINIT; return TIMELIB_PG_TEXT; } -#line 13583 "<stdout>" +#line 13585 "<stdout>" yy1021: YYDEBUG(1021, *YYCURSOR); yych = *++YYCURSOR; @@ -15786,7 +15788,7 @@ yy1032: YYDEBUG(1032, *YYCURSOR); -#line 1222 "resource/parse_date.re" +#line 1234 "resource/parse_date.re" { DEBUG_OUTPUT("year4"); TIMELIB_INIT; @@ -15794,7 +15796,7 @@ TIMELIB_DEINIT; return TIMELIB_CLF; } -#line 13699 "<stdout>" +#line 13701 "<stdout>" yy1033: YYDEBUG(1033, *YYCURSOR); yych = *++YYCURSOR; @@ -15930,7 +15932,7 @@ yy1041: YYDEBUG(1041, *YYCURSOR); -#line 1055 "resource/parse_date.re" +#line 1067 "resource/parse_date.re" { DEBUG_OUTPUT("datenodayrev"); TIMELIB_INIT; @@ -15942,7 +15944,7 @@ TIMELIB_DEINIT; return TIMELIB_DATE_NO_DAY; } -#line 13826 "<stdout>" +#line 13828 "<stdout>" yy1042: YYDEBUG(1042, *YYCURSOR); yych = *++YYCURSOR; @@ -16151,7 +16153,7 @@ yy1061: YYDEBUG(1061, *YYCURSOR); -#line 1158 "resource/parse_date.re" +#line 1170 "resource/parse_date.re" { timelib_sll w, d; DEBUG_OUTPUT("isoweek"); @@ -16169,7 +16171,7 @@ TIMELIB_DEINIT; return TIMELIB_ISO_WEEK; } -#line 14013 "<stdout>" +#line 14015 "<stdout>" yy1062: YYDEBUG(1062, *YYCURSOR); ++YYCURSOR; @@ -16177,7 +16179,7 @@ yy1063: YYDEBUG(1063, *YYCURSOR); -#line 1139 "resource/parse_date.re" +#line 1151 "resource/parse_date.re" { timelib_sll w, d; DEBUG_OUTPUT("isoweekday"); @@ -16195,7 +16197,7 @@ TIMELIB_DEINIT; return TIMELIB_ISO_WEEK; } -#line 14035 "<stdout>" +#line 14037 "<stdout>" yy1064: YYDEBUG(1064, *YYCURSOR); yych = *++YYCURSOR; @@ -16264,7 +16266,7 @@ yy1067: YYDEBUG(1067, *YYCURSOR); -#line 1126 "resource/parse_date.re" +#line 1138 "resource/parse_date.re" { DEBUG_OUTPUT("pgydotd"); TIMELIB_INIT; @@ -16276,7 +16278,7 @@ TIMELIB_DEINIT; return TIMELIB_PG_YEARDAY; } -#line 14108 "<stdout>" +#line 14110 "<stdout>" yy1068: YYDEBUG(1068, *YYCURSOR); yych = *++YYCURSOR; @@ -16391,7 +16393,7 @@ yy1074: YYDEBUG(1074, *YYCURSOR); -#line 1092 "resource/parse_date.re" +#line 1104 "resource/parse_date.re" { DEBUG_OUTPUT("datenocolon"); TIMELIB_INIT; @@ -16402,7 +16404,7 @@ TIMELIB_DEINIT; return TIMELIB_DATE_NOCOLON; } -#line 14216 "<stdout>" +#line 14218 "<stdout>" yy1075: YYDEBUG(1075, *YYCURSOR); yych = *++YYCURSOR; @@ -16500,7 +16502,7 @@ yy1085: YYDEBUG(1085, *YYCURSOR); -#line 1104 "resource/parse_date.re" +#line 1116 "resource/parse_date.re" { int tz_not_found; DEBUG_OUTPUT("xmlrpc | xmlrpcnocolon | soap | wddx"); @@ -16521,7 +16523,7 @@ TIMELIB_DEINIT; return TIMELIB_XMLRPC_SOAP; } -#line 14313 "<stdout>" +#line 14315 "<stdout>" yy1086: YYDEBUG(1086, *YYCURSOR); yych = *++YYCURSOR; @@ -17124,7 +17126,7 @@ yy1176: YYDEBUG(1176, *YYCURSOR); -#line 991 "resource/parse_date.re" +#line 1003 "resource/parse_date.re" { DEBUG_OUTPUT("iso8601date | iso8601dateslash | dateslash"); TIMELIB_INIT; @@ -17135,7 +17137,7 @@ TIMELIB_DEINIT; return TIMELIB_ISO_DATE; } -#line 14745 "<stdout>" +#line 14747 "<stdout>" yy1177: YYDEBUG(1177, *YYCURSOR); yych = *++YYCURSOR; @@ -17950,7 +17952,7 @@ yy1269: YYDEBUG(1269, *YYCURSOR); -#line 913 "resource/parse_date.re" +#line 925 "resource/parse_date.re" { DEBUG_OUTPUT("gnunocolon"); TIMELIB_INIT; @@ -17971,7 +17973,7 @@ TIMELIB_DEINIT; return TIMELIB_GNU_NOCOLON; } -#line 15392 "<stdout>" +#line 15394 "<stdout>" yy1270: YYDEBUG(1270, *YYCURSOR); yych = *++YYCURSOR; @@ -18068,7 +18070,7 @@ yy1277: YYDEBUG(1277, *YYCURSOR); -#line 958 "resource/parse_date.re" +#line 970 "resource/parse_date.re" { int tz_not_found; DEBUG_OUTPUT("iso8601nocolon"); @@ -18085,7 +18087,7 @@ TIMELIB_DEINIT; return TIMELIB_ISO_NOCOLON; } -#line 15490 "<stdout>" +#line 15492 "<stdout>" yy1278: YYDEBUG(1278, *YYCURSOR); yyaccept = 21; @@ -18382,7 +18384,7 @@ yy1302: YYDEBUG(1302, *YYCURSOR); -#line 848 "resource/parse_date.re" +#line 860 "resource/parse_date.re" { timelib_ull i; @@ -18405,7 +18407,7 @@ TIMELIB_DEINIT; return TIMELIB_RELATIVE; } -#line 15754 "<stdout>" +#line 15756 "<stdout>" yy1303: YYDEBUG(1303, *YYCURSOR); yych = *++YYCURSOR; @@ -18476,7 +18478,7 @@ yy1311: YYDEBUG(1311, *YYCURSOR); -#line 836 "resource/parse_date.re" +#line 848 "resource/parse_date.re" { DEBUG_OUTPUT("tomorrow"); TIMELIB_INIT; @@ -18487,7 +18489,7 @@ TIMELIB_DEINIT; return TIMELIB_RELATIVE; } -#line 15818 "<stdout>" +#line 15820 "<stdout>" yy1312: YYDEBUG(1312, *YYCURSOR); yych = *++YYCURSOR; @@ -18500,48 +18502,95 @@ yy1314: YYDEBUG(1314, *YYCURSOR); -#line 826 "resource/parse_date.re" +#line 838 "resource/parse_date.re" { - DEBUG_OUTPUT("today"); + DEBUG_OUTPUT("midnight | today"); TIMELIB_INIT; TIMELIB_UNHAVE_TIME(); TIMELIB_DEINIT; return TIMELIB_RELATIVE; } -#line 15834 "<stdout>" +#line 15836 "<stdout>" yy1315: YYDEBUG(1315, *YYCURSOR); yych = *++YYCURSOR; if(yych <= '`'){ - if(yych <= 'U'){ + if(yych <= '@') goto yy3; + if(yych <= 'Z') goto yy49; + goto yy3; + } else { + if(yych == 'd') goto yy1316; + if(yych <= 'z') goto yy49; + goto yy3; + } +yy1316: + YYDEBUG(1316, *YYCURSOR); + yych = *++YYCURSOR; + if(yych <= '`'){ + if(yych <= '@') goto yy3; + if(yych <= 'Z') goto yy50; + goto yy3; + } else { + if(yych == 'n') goto yy1317; + if(yych <= 'z') goto yy50; + goto yy3; + } +yy1317: + YYDEBUG(1317, *YYCURSOR); + yyaccept = 1; + yych = *(YYMARKER = ++YYCURSOR); + if(yych != 'i') goto yy3; + goto yy1318; +yy1318: + YYDEBUG(1318, *YYCURSOR); + yych = *++YYCURSOR; + if(yych != 'g') goto yy54; + goto yy1319; +yy1319: + YYDEBUG(1319, *YYCURSOR); + yych = *++YYCURSOR; + if(yych != 'h') goto yy54; + goto yy1320; +yy1320: + YYDEBUG(1320, *YYCURSOR); + yych = *++YYCURSOR; + if(yych == 't') goto yy1313; + goto yy54; +yy1321: + YYDEBUG(1321, *YYCURSOR); + yych = *++YYCURSOR; + if(yych <= 'n'){ + if(yych <= 'V'){ if(yych <= '@') goto yy3; - goto yy49; + if(yych <= 'U') goto yy49; + goto yy612; } else { - if(yych <= 'V') goto yy612; if(yych <= 'Z') goto yy49; - goto yy3; + if(yych <= '`') goto yy3; + goto yy49; } } else { if(yych <= 'v'){ + if(yych <= 'o') goto yy1324; if(yych <= 'u') goto yy49; goto yy612; } else { - if(yych <= 'w') goto yy1316; + if(yych <= 'w') goto yy1322; if(yych <= 'z') goto yy49; goto yy3; } } -yy1316: - YYDEBUG(1316, *YYCURSOR); +yy1322: + YYDEBUG(1322, *YYCURSOR); ++YYCURSOR; - if((yych = *YYCURSOR) <= '@') goto yy1317; + if((yych = *YYCURSOR) <= '@') goto yy1323; if(yych <= 'Z') goto yy50; - if(yych <= '`') goto yy1317; + if(yych <= '`') goto yy1323; if(yych <= 'z') goto yy50; - goto yy1317; -yy1317: - YYDEBUG(1317, *YYCURSOR); + goto yy1323; +yy1323: + YYDEBUG(1323, *YYCURSOR); #line 817 "resource/parse_date.re" { @@ -18551,63 +18600,94 @@ TIMELIB_DEINIT; return TIMELIB_RELATIVE; } -#line 15870 "<stdout>" -yy1318: - YYDEBUG(1318, *YYCURSOR); +#line 15907 "<stdout>" +yy1324: + YYDEBUG(1324, *YYCURSOR); + yych = *++YYCURSOR; + if(yych <= '`'){ + if(yych <= '@') goto yy3; + if(yych <= 'Z') goto yy50; + goto yy3; + } else { + if(yych == 'n') goto yy1325; + if(yych <= 'z') goto yy50; + goto yy3; + } +yy1325: + YYDEBUG(1325, *YYCURSOR); + ++YYCURSOR; + goto yy1326; +yy1326: + YYDEBUG(1326, *YYCURSOR); + +#line 826 "resource/parse_date.re" +{ + DEBUG_OUTPUT("noon"); + TIMELIB_INIT; + TIMELIB_UNHAVE_TIME(); + TIMELIB_HAVE_TIME(); + s->time->h = 12; + + TIMELIB_DEINIT; + return TIMELIB_RELATIVE; + } +#line 15932 "<stdout>" +yy1327: + YYDEBUG(1327, *YYCURSOR); yych = *++YYCURSOR; if(yych <= '`'){ if(yych <= '@') goto yy3; if(yych <= 'Z') goto yy49; goto yy3; } else { - if(yych == 's') goto yy1319; + if(yych == 's') goto yy1328; if(yych <= 'z') goto yy49; goto yy3; } -yy1319: - YYDEBUG(1319, *YYCURSOR); +yy1328: + YYDEBUG(1328, *YYCURSOR); yych = *++YYCURSOR; if(yych <= '`'){ if(yych <= '@') goto yy3; if(yych <= 'Z') goto yy50; goto yy3; } else { - if(yych == 't') goto yy1320; + if(yych == 't') goto yy1329; if(yych <= 'z') goto yy50; goto yy3; } -yy1320: - YYDEBUG(1320, *YYCURSOR); +yy1329: + YYDEBUG(1329, *YYCURSOR); yyaccept = 1; yych = *(YYMARKER = ++YYCURSOR); if(yych != 'e') goto yy3; - goto yy1321; -yy1321: - YYDEBUG(1321, *YYCURSOR); + goto yy1330; +yy1330: + YYDEBUG(1330, *YYCURSOR); yych = *++YYCURSOR; if(yych != 'r') goto yy54; - goto yy1322; -yy1322: - YYDEBUG(1322, *YYCURSOR); + goto yy1331; +yy1331: + YYDEBUG(1331, *YYCURSOR); yych = *++YYCURSOR; if(yych != 'd') goto yy54; - goto yy1323; -yy1323: - YYDEBUG(1323, *YYCURSOR); + goto yy1332; +yy1332: + YYDEBUG(1332, *YYCURSOR); yych = *++YYCURSOR; if(yych != 'a') goto yy54; - goto yy1324; -yy1324: - YYDEBUG(1324, *YYCURSOR); + goto yy1333; +yy1333: + YYDEBUG(1333, *YYCURSOR); yych = *++YYCURSOR; if(yych != 'y') goto yy54; - goto yy1325; -yy1325: - YYDEBUG(1325, *YYCURSOR); - ++YYCURSOR; - goto yy1326; -yy1326: - YYDEBUG(1326, *YYCURSOR); + goto yy1334; +yy1334: + YYDEBUG(1334, *YYCURSOR); + ++YYCURSOR; + goto yy1335; +yy1335: + YYDEBUG(1335, *YYCURSOR); #line 805 "resource/parse_date.re" { @@ -18620,10 +18700,10 @@ TIMELIB_DEINIT; return TIMELIB_RELATIVE; } -#line 15921 "<stdout>" +#line 15983 "<stdout>" } } -#line 1355 "resource/parse_date.re" +#line 1367 "resource/parse_date.re" } http://cvs.php.net/diff.php/php-src/ext/date/lib/resource/parse_date.re?r1=1.32&r2=1.33&ty=u Index: php-src/ext/date/lib/resource/parse_date.re diff -u php-src/ext/date/lib/resource/parse_date.re:1.32 php-src/ext/date/lib/resource/parse_date.re:1.33 --- php-src/ext/date/lib/resource/parse_date.re:1.32 Fri Oct 7 04:05:10 2005 +++ php-src/ext/date/lib/resource/parse_date.re Sat Oct 8 10:30:15 2005 @@ -16,7 +16,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: parse_date.re,v 1.32 2005/10/07 08:05:10 derick Exp $ */ +/* $Id: parse_date.re,v 1.33 2005/10/08 14:30:15 derick Exp $ */ #include "timelib.h" @@ -822,9 +822,21 @@ return TIMELIB_RELATIVE; } - "today" + "noon" { - DEBUG_OUTPUT("today"); + DEBUG_OUTPUT("noon"); + TIMELIB_INIT; + TIMELIB_UNHAVE_TIME(); + TIMELIB_HAVE_TIME(); + s->time->h = 12; + + TIMELIB_DEINIT; + return TIMELIB_RELATIVE; + } + + "midnight" | "today" + { + DEBUG_OUTPUT("midnight | today"); TIMELIB_INIT; TIMELIB_UNHAVE_TIME(); http://cvs.php.net/co.php/php-src/ext/date/tests/bug34676.phpt?r=1.1&p=1 Index: php-src/ext/date/tests/bug34676.phpt +++ php-src/ext/date/tests/bug34676.phpt --TEST-- Bug #34676 (missing support for strtotime("midnight") and strtotime("noon")) --FILE-- <?php date_default_timezone_set("UTC"); $tests = array( 'noon', 'midnight' ); foreach ($tests as $test) { $t = strtotime("2005-12-22 ". $test); printf("%-10s => %s\n", $test, date(DATE_ISO8601, $t)); } ?> --EXPECT-- noon => 2005-12-22T12:00:00+0000 midnight => 2005-12-22T00:00:00+0000