-/* Generated by re2c 0.9.7.dev on Tue Jun 14 22:27:50 2005 */
+/* Generated by re2c 0.9.7 on Wed Jun 15 02:15:30 2005 */
#line 1 "parse_date.re"
/*
+----------------------------------------------------------------------+
#include <string.h>
#include "datetime.h"
+#ifdef PHP_WIN32
+#define strcasecmp stricmp
+#define strtoll(s, f, b) _atoi64(s)
+#endif
+
#define TIMELIB_SECOND 1
#define TIMELIB_MINUTE 2
#define TIMELIB_HOUR 3
#include "timelib_structs.h"
typedef struct timelib_elems {
- uint c; /* Number of elements */
+ unsigned int c; /* Number of elements */
char **v; /* Values */
} timelib_elems;
typedef struct Scanner {
int fd;
uchar *lim, *str, *ptr, *cur, *tok, *pos;
- uint line, len;
+ unsigned int line, len;
struct timelib_time *time;
} Scanner;
#if 0
uchar *fill(Scanner *s, uchar *cursor){
if(!s->eof){
- uint cnt = s->tok - s->bot;
+ unsigned int cnt = s->tok - s->bot;
if(cnt){
memcpy(s->bot, s->tok, s->lim - s->tok);
s->tok = s->bot;
std:
s->tok = cursor;
s->len = 0;
-#line 839 "parse_date.re"
-
+#line 844 "parse_date.re"
+{
static unsigned char yybm[] = {
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
};
-#line 778 "<stdout>"
+#line 40 "<stdout>"
{
YYCTYPE yych;
unsigned int yyaccept;
yy3:
YYDEBUG(3, *YYCURSOR);
-#line 1257 "parse_date.re"
+#line 1262 "parse_date.re"
{
TIMELIB_INIT;
s->time->z = timelib_get_zone((char **) &ptr, &s->time->dst, s->time);
TIMELIB_DEINIT;
return TIMELIB_TIMEZONE;
}
-#line 856 "<stdout>"
+#line 118 "<stdout>"
yy4:
YYDEBUG(4, *YYCURSOR);
yych = *++YYCURSOR;
yy7:
YYDEBUG(7, *YYCURSOR);
-#line 1317 "parse_date.re"
+#line 1322 "parse_date.re"
{
printf("unexpected character: #%d, %c\n", *s->tok, *s->tok);
goto std;
}
-#line 922 "<stdout>"
+#line 184 "<stdout>"
yy8:
YYDEBUG(8, *YYCURSOR);
yyaccept = 0;
yy44:
YYDEBUG(44, *YYCURSOR);
-#line 1306 "parse_date.re"
+#line 1311 "parse_date.re"
{
goto std;
}
-#line 1581 "<stdout>"
+#line 843 "<stdout>"
yy45:
YYDEBUG(45, *YYCURSOR);
++YYCURSOR;
yy46:
YYDEBUG(46, *YYCURSOR);
-#line 1311 "parse_date.re"
+#line 1316 "parse_date.re"
{
s->pos = cursor; s->line++;
goto std;
}
-#line 1590 "<stdout>"
+#line 852 "<stdout>"
yy47:
YYDEBUG(47, *YYCURSOR);
yych = *++YYCURSOR;
yy81:
YYDEBUG(81, *YYCURSOR);
-#line 1290 "parse_date.re"
+#line 1295 "parse_date.re"
{
timelib_ull i;
TIMELIB_DEINIT;
return TIMELIB_RELATIVE;
}
-#line 1887 "<stdout>"
+#line 1149 "<stdout>"
yy82:
YYDEBUG(82, *YYCURSOR);
++YYCURSOR;
yy148:
YYDEBUG(148, *YYCURSOR);
-#line 1252 "parse_date.re"
+#line 1257 "parse_date.re"
{
goto std;
}
-#line 2380 "<stdout>"
+#line 1642 "<stdout>"
yy149:
YYDEBUG(149, *YYCURSOR);
yych = *++YYCURSOR;
yy155:
YYDEBUG(155, *YYCURSOR);
-#line 1236 "parse_date.re"
+#line 1241 "parse_date.re"
{
const timelib_relunit* relunit;
TIMELIB_DEINIT;
return TIMELIB_RELATIVE;
}
-#line 2423 "<stdout>"
+#line 1685 "<stdout>"
yy156:
YYDEBUG(156, *YYCURSOR);
yyaccept = 1;
yy188:
YYDEBUG(188, *YYCURSOR);
-#line 1220 "parse_date.re"
+#line 1225 "parse_date.re"
{
long i;
TIMELIB_DEINIT;
return TIMELIB_RELATIVE;
}
-#line 2754 "<stdout>"
+#line 2016 "<stdout>"
yy189:
YYDEBUG(189, *YYCURSOR);
++YYCURSOR;
yy386:
YYDEBUG(386, *YYCURSOR);
-#line 1093 "parse_date.re"
+#line 1098 "parse_date.re"
{
TIMELIB_INIT;
TIMELIB_HAVE_DATE();
TIMELIB_DEINIT;
return TIMELIB_DATE_TEXT;
}
-#line 4511 "<stdout>"
+#line 3773 "<stdout>"
yy387:
YYDEBUG(387, *YYCURSOR);
yych = *++YYCURSOR;
yy397:
YYDEBUG(397, *YYCURSOR);
-#line 1069 "parse_date.re"
+#line 1074 "parse_date.re"
{
TIMELIB_INIT;
TIMELIB_HAVE_DATE();
TIMELIB_DEINIT;
return TIMELIB_DATE_NO_DAY;
}
-#line 4570 "<stdout>"
+#line 3832 "<stdout>"
yy398:
YYDEBUG(398, *YYCURSOR);
yych = *++YYCURSOR;
yy404:
YYDEBUG(404, *YYCURSOR);
-#line 1166 "parse_date.re"
+#line 1171 "parse_date.re"
{
TIMELIB_INIT;
TIMELIB_HAVE_DATE();
TIMELIB_DEINIT;
return TIMELIB_PG_TEXT;
}
-#line 4610 "<stdout>"
+#line 3872 "<stdout>"
yy405:
YYDEBUG(405, *YYCURSOR);
yych = *++YYCURSOR;
yy423:
YYDEBUG(423, *YYCURSOR);
-#line 1265 "parse_date.re"
+#line 1270 "parse_date.re"
{
TIMELIB_INIT;
TIMELIB_HAVE_DATE();
TIMELIB_DEINIT;
return TIMELIB_SHORTDATE_WITH_TIME;
}
-#line 4732 "<stdout>"
+#line 3994 "<stdout>"
yy424:
YYDEBUG(424, *YYCURSOR);
yyaccept = 7;
yy559:
YYDEBUG(559, *YYCURSOR);
-#line 1206 "parse_date.re"
+#line 1211 "parse_date.re"
{
TIMELIB_INIT;
s->time->relative.y = 0 - s->time->relative.y;
TIMELIB_DEINIT;
return TIMELIB_AGO;
}
-#line 6136 "<stdout>"
+#line 5398 "<stdout>"
yy560:
YYDEBUG(560, *YYCURSOR);
yyaccept = 1;
yy669:
YYDEBUG(669, *YYCURSOR);
-#line 925 "parse_date.re"
+#line 930 "parse_date.re"
{
DEBUG_OUTPUT("timeshort24 | timelong24 | iso8601long");
TIMELIB_INIT;
TIMELIB_DEINIT;
return TIMELIB_TIME24_WITH_ZONE;
}
-#line 7567 "<stdout>"
+#line 6829 "<stdout>"
yy670:
YYDEBUG(670, *YYCURSOR);
yyaccept = 10;
yy684:
YYDEBUG(684, *YYCURSOR);
-#line 910 "parse_date.re"
+#line 915 "parse_date.re"
{
DEBUG_OUTPUT("timeshort12 | timelong12");
TIMELIB_INIT;
TIMELIB_DEINIT;
return TIMELIB_TIME12;
}
-#line 7678 "<stdout>"
+#line 6940 "<stdout>"
yy685:
YYDEBUG(685, *YYCURSOR);
yych = *++YYCURSOR;
yy697:
YYDEBUG(697, *YYCURSOR);
-#line 1045 "parse_date.re"
+#line 1050 "parse_date.re"
{
TIMELIB_INIT;
TIMELIB_HAVE_DATE();
TIMELIB_DEINIT;
return TIMELIB_DATE_FULL;
}
-#line 7773 "<stdout>"
+#line 7035 "<stdout>"
yy698:
YYDEBUG(698, *YYCURSOR);
yych = *++YYCURSOR;
yy756:
YYDEBUG(756, *YYCURSOR);
-#line 1057 "parse_date.re"
+#line 1062 "parse_date.re"
{
TIMELIB_INIT;
TIMELIB_HAVE_DATE();
TIMELIB_DEINIT;
return TIMELIB_DATE_FULL_POINTED;
}
-#line 8033 "<stdout>"
+#line 7295 "<stdout>"
yy757:
YYDEBUG(757, *YYCURSOR);
yych = *++YYCURSOR;
yy801:
YYDEBUG(801, *YYCURSOR);
-#line 1033 "parse_date.re"
+#line 1038 "parse_date.re"
{
TIMELIB_INIT;
TIMELIB_HAVE_DATE();
TIMELIB_DEINIT;
return TIMELIB_ISO_DATE;
}
-#line 8326 "<stdout>"
+#line 7588 "<stdout>"
yy802:
YYDEBUG(802, *YYCURSOR);
yych = *++YYCURSOR;
yy805:
YYDEBUG(805, *YYCURSOR);
-#line 1008 "parse_date.re"
+#line 1013 "parse_date.re"
{
TIMELIB_INIT;
TIMELIB_HAVE_DATE();
TIMELIB_DEINIT;
return TIMELIB_AMERICAN;
}
-#line 8353 "<stdout>"
+#line 7615 "<stdout>"
yy806:
YYDEBUG(806, *YYCURSOR);
yyaccept = 11;
yy838:
YYDEBUG(838, *YYCURSOR);
-#line 1190 "parse_date.re"
+#line 1195 "parse_date.re"
{
TIMELIB_INIT;
TIMELIB_HAVE_TIME();
TIMELIB_DEINIT;
return TIMELIB_CLF;
}
-#line 8524 "<stdout>"
+#line 7786 "<stdout>"
yy839:
YYDEBUG(839, *YYCURSOR);
yyaccept = 12;
yy878:
YYDEBUG(878, *YYCURSOR);
-#line 1178 "parse_date.re"
+#line 1183 "parse_date.re"
{
TIMELIB_INIT;
TIMELIB_HAVE_DATE();
TIMELIB_DEINIT;
return TIMELIB_PG_TEXT;
}
-#line 8766 "<stdout>"
+#line 8028 "<stdout>"
yy879:
YYDEBUG(879, *YYCURSOR);
yych = *++YYCURSOR;
yy898:
YYDEBUG(898, *YYCURSOR);
-#line 1081 "parse_date.re"
+#line 1086 "parse_date.re"
{
TIMELIB_INIT;
TIMELIB_HAVE_DATE();
TIMELIB_DEINIT;
return TIMELIB_DATE_NO_DAY;
}
-#line 8979 "<stdout>"
+#line 8241 "<stdout>"
yy899:
YYDEBUG(899, *YYCURSOR);
yych = *++YYCURSOR;
yy919:
YYDEBUG(919, *YYCURSOR);
-#line 1147 "parse_date.re"
+#line 1152 "parse_date.re"
{
int w, d;
TIMELIB_DEINIT;
return TIMELIB_ISO_WEEK;
}
-#line 9113 "<stdout>"
+#line 8375 "<stdout>"
yy920:
YYDEBUG(920, *YYCURSOR);
yych = *++YYCURSOR;
yy923:
YYDEBUG(923, *YYCURSOR);
-#line 1135 "parse_date.re"
+#line 1140 "parse_date.re"
{
TIMELIB_INIT;
TIMELIB_HAVE_DATE();
TIMELIB_DEINIT;
return TIMELIB_PG_YEARDAY;
}
-#line 9149 "<stdout>"
+#line 8411 "<stdout>"
yy924:
YYDEBUG(924, *YYCURSOR);
yych = *++YYCURSOR;
yy930:
YYDEBUG(930, *YYCURSOR);
-#line 1105 "parse_date.re"
+#line 1110 "parse_date.re"
{
TIMELIB_INIT;
TIMELIB_HAVE_DATE();
TIMELIB_DEINIT;
return TIMELIB_DATE_NOCOLON;
}
-#line 9221 "<stdout>"
+#line 8483 "<stdout>"
yy931:
YYDEBUG(931, *YYCURSOR);
yych = *++YYCURSOR;
yy941:
YYDEBUG(941, *YYCURSOR);
-#line 1116 "parse_date.re"
+#line 1121 "parse_date.re"
{
TIMELIB_INIT;
TIMELIB_HAVE_TIME();
TIMELIB_DEINIT;
return TIMELIB_XMLRPC_SOAP;
}
-#line 9285 "<stdout>"
+#line 8547 "<stdout>"
yy942:
YYDEBUG(942, *YYCURSOR);
yych = *++YYCURSOR;
yy1035:
YYDEBUG(1035, *YYCURSOR);
-#line 1022 "parse_date.re"
+#line 1027 "parse_date.re"
{
TIMELIB_INIT;
TIMELIB_HAVE_DATE();
TIMELIB_DEINIT;
return TIMELIB_ISO_DATE;
}
-#line 9788 "<stdout>"
+#line 9050 "<stdout>"
yy1036:
YYDEBUG(1036, *YYCURSOR);
yych = *++YYCURSOR;
yy1116:
YYDEBUG(1116, *YYCURSOR);
-#line 947 "parse_date.re"
+#line 952 "parse_date.re"
{
DEBUG_OUTPUT("gnunocolon");
TIMELIB_INIT;
TIMELIB_DEINIT;
return TIMELIB_GNU_NOCOLON;
}
-#line 10426 "<stdout>"
+#line 9688 "<stdout>"
yy1117:
YYDEBUG(1117, *YYCURSOR);
yych = *++YYCURSOR;
yy1124:
YYDEBUG(1124, *YYCURSOR);
-#line 992 "parse_date.re"
+#line 997 "parse_date.re"
{
DEBUG_OUTPUT("iso8601nocolon");
TIMELIB_INIT;
TIMELIB_DEINIT;
return TIMELIB_ISO_NOCOLON;
}
-#line 10498 "<stdout>"
+#line 9760 "<stdout>"
yy1125:
YYDEBUG(1125, *YYCURSOR);
yyaccept = 19;
yy1140:
YYDEBUG(1140, *YYCURSOR);
-#line 887 "parse_date.re"
+#line 892 "parse_date.re"
{
timelib_ull i;
TIMELIB_DEINIT;
return TIMELIB_RELATIVE;
}
-#line 10664 "<stdout>"
+#line 9926 "<stdout>"
yy1141:
YYDEBUG(1141, *YYCURSOR);
yych = *++YYCURSOR;
yy1149:
YYDEBUG(1149, *YYCURSOR);
-#line 875 "parse_date.re"
+#line 880 "parse_date.re"
{
DEBUG_OUTPUT("tomorrow");
TIMELIB_INIT;
TIMELIB_DEINIT;
return TIMELIB_RELATIVE;
}
-#line 10705 "<stdout>"
+#line 9967 "<stdout>"
yy1150:
YYDEBUG(1150, *YYCURSOR);
yych = *++YYCURSOR;
yy1152:
YYDEBUG(1152, *YYCURSOR);
-#line 865 "parse_date.re"
+#line 870 "parse_date.re"
{
DEBUG_OUTPUT("today");
TIMELIB_INIT;
TIMELIB_DEINIT;
return TIMELIB_RELATIVE;
}
-#line 10725 "<stdout>"
+#line 9987 "<stdout>"
yy1153:
YYDEBUG(1153, *YYCURSOR);
yych = *++YYCURSOR;
yy1155:
YYDEBUG(1155, *YYCURSOR);
-#line 856 "parse_date.re"
+#line 861 "parse_date.re"
{
DEBUG_OUTPUT("now");
TIMELIB_INIT;
TIMELIB_DEINIT;
return TIMELIB_RELATIVE;
}
-#line 10750 "<stdout>"
+#line 10012 "<stdout>"
yy1156:
YYDEBUG(1156, *YYCURSOR);
yych = *++YYCURSOR;
yy1164:
YYDEBUG(1164, *YYCURSOR);
-#line 844 "parse_date.re"
+#line 849 "parse_date.re"
{
DEBUG_OUTPUT("yesterday");
TIMELIB_INIT;
TIMELIB_DEINIT;
return TIMELIB_RELATIVE;
}
-#line 10790 "<stdout>"
+#line 10052 "<stdout>"
+}
+#line 1326 "parse_date.re"
}
-#line 1321 "parse_date.re"
-
}
#define YYMAXFILL 25