|
|
|
@ -1,4 +1,4 @@ |
|
|
|
/* Generated by re2c 0.13.5 on Sat Aug 2 12:46:48 2008 */ |
|
|
|
/* Generated by re2c 0.13.5 on Tue May 5 09:42:15 2009 */ |
|
|
|
#line 1 "ext/date/lib/parse_iso_intervals.re" |
|
|
|
/* |
|
|
|
+----------------------------------------------------------------------+ |
|
|
|
@ -270,6 +270,11 @@ static long timelib_get_zone(char **ptr, int *dst, timelib_time *t, int *tz_not_ |
|
|
|
} \ |
|
|
|
} |
|
|
|
|
|
|
|
/* date parser's scan function too large for VC6 - VC7.x |
|
|
|
drop the optimization solves the problem */ |
|
|
|
#ifdef PHP_WIN32 |
|
|
|
#pragma optimize( "", off ) |
|
|
|
#endif |
|
|
|
static int scan(Scanner *s) |
|
|
|
{ |
|
|
|
uchar *cursor = s->cur; |
|
|
|
@ -278,11 +283,11 @@ static int scan(Scanner *s) |
|
|
|
std: |
|
|
|
s->tok = cursor; |
|
|
|
s->len = 0; |
|
|
|
#line 306 "ext/date/lib/parse_iso_intervals.re" |
|
|
|
#line 311 "ext/date/lib/parse_iso_intervals.re" |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#line 286 "ext/date/lib/parse_iso_intervals.c" |
|
|
|
#line 291 "ext/date/lib/parse_iso_intervals.c" |
|
|
|
{ |
|
|
|
YYCTYPE yych; |
|
|
|
unsigned int yyaccept = 0; |
|
|
|
@ -352,12 +357,12 @@ std: |
|
|
|
if (yych <= '9') goto yy98; |
|
|
|
yy3: |
|
|
|
YYDEBUG(3, *YYCURSOR); |
|
|
|
#line 419 "ext/date/lib/parse_iso_intervals.re" |
|
|
|
#line 424 "ext/date/lib/parse_iso_intervals.re" |
|
|
|
{ |
|
|
|
add_error(s, "Unexpected character"); |
|
|
|
goto std; |
|
|
|
} |
|
|
|
#line 361 "ext/date/lib/parse_iso_intervals.c" |
|
|
|
#line 366 "ext/date/lib/parse_iso_intervals.c" |
|
|
|
yy4: |
|
|
|
YYDEBUG(4, *YYCURSOR); |
|
|
|
yyaccept = 0; |
|
|
|
@ -374,7 +379,7 @@ yy5: |
|
|
|
if (yych == 'T') goto yy14; |
|
|
|
yy6: |
|
|
|
YYDEBUG(6, *YYCURSOR); |
|
|
|
#line 346 "ext/date/lib/parse_iso_intervals.re" |
|
|
|
#line 351 "ext/date/lib/parse_iso_intervals.re" |
|
|
|
{ |
|
|
|
timelib_sll nr; |
|
|
|
int in_time = 0; |
|
|
|
@ -391,7 +396,7 @@ yy6: |
|
|
|
break; |
|
|
|
} |
|
|
|
|
|
|
|
nr = timelib_get_unsigned_nr((char **) &ptr, 4); |
|
|
|
nr = timelib_get_unsigned_nr((char **) &ptr, 9); |
|
|
|
switch (*ptr) { |
|
|
|
case 'Y': s->period->y = nr; break; |
|
|
|
case 'W': s->period->d = nr * 7; break; |
|
|
|
@ -415,26 +420,26 @@ yy6: |
|
|
|
TIMELIB_DEINIT; |
|
|
|
return TIMELIB_PERIOD; |
|
|
|
} |
|
|
|
#line 419 "ext/date/lib/parse_iso_intervals.c" |
|
|
|
#line 424 "ext/date/lib/parse_iso_intervals.c" |
|
|
|
yy7: |
|
|
|
YYDEBUG(7, *YYCURSOR); |
|
|
|
++YYCURSOR; |
|
|
|
YYDEBUG(8, *YYCURSOR); |
|
|
|
#line 408 "ext/date/lib/parse_iso_intervals.re" |
|
|
|
#line 413 "ext/date/lib/parse_iso_intervals.re" |
|
|
|
{ |
|
|
|
goto std; |
|
|
|
} |
|
|
|
#line 428 "ext/date/lib/parse_iso_intervals.c" |
|
|
|
#line 433 "ext/date/lib/parse_iso_intervals.c" |
|
|
|
yy9: |
|
|
|
YYDEBUG(9, *YYCURSOR); |
|
|
|
++YYCURSOR; |
|
|
|
YYDEBUG(10, *YYCURSOR); |
|
|
|
#line 413 "ext/date/lib/parse_iso_intervals.re" |
|
|
|
#line 418 "ext/date/lib/parse_iso_intervals.re" |
|
|
|
{ |
|
|
|
s->pos = cursor; s->line++; |
|
|
|
goto std; |
|
|
|
} |
|
|
|
#line 438 "ext/date/lib/parse_iso_intervals.c" |
|
|
|
#line 443 "ext/date/lib/parse_iso_intervals.c" |
|
|
|
yy11: |
|
|
|
YYDEBUG(11, *YYCURSOR); |
|
|
|
yych = *++YYCURSOR; |
|
|
|
@ -764,7 +769,7 @@ yy51: |
|
|
|
YYDEBUG(57, *YYCURSOR); |
|
|
|
++YYCURSOR; |
|
|
|
YYDEBUG(58, *YYCURSOR); |
|
|
|
#line 388 "ext/date/lib/parse_iso_intervals.re" |
|
|
|
#line 393 "ext/date/lib/parse_iso_intervals.re" |
|
|
|
{ |
|
|
|
DEBUG_OUTPUT("combinedrep"); |
|
|
|
TIMELIB_INIT; |
|
|
|
@ -783,7 +788,7 @@ yy51: |
|
|
|
TIMELIB_DEINIT; |
|
|
|
return TIMELIB_PERIOD; |
|
|
|
} |
|
|
|
#line 787 "ext/date/lib/parse_iso_intervals.c" |
|
|
|
#line 792 "ext/date/lib/parse_iso_intervals.c" |
|
|
|
yy59: |
|
|
|
YYDEBUG(59, *YYCURSOR); |
|
|
|
yych = *++YYCURSOR; |
|
|
|
@ -912,7 +917,7 @@ yy83: |
|
|
|
YYDEBUG(83, *YYCURSOR); |
|
|
|
++YYCURSOR; |
|
|
|
YYDEBUG(84, *YYCURSOR); |
|
|
|
#line 322 "ext/date/lib/parse_iso_intervals.re" |
|
|
|
#line 327 "ext/date/lib/parse_iso_intervals.re" |
|
|
|
{ |
|
|
|
timelib_time *current; |
|
|
|
|
|
|
|
@ -935,7 +940,7 @@ yy83: |
|
|
|
TIMELIB_DEINIT; |
|
|
|
return TIMELIB_ISO_DATE; |
|
|
|
} |
|
|
|
#line 939 "ext/date/lib/parse_iso_intervals.c" |
|
|
|
#line 944 "ext/date/lib/parse_iso_intervals.c" |
|
|
|
yy85: |
|
|
|
YYDEBUG(85, *YYCURSOR); |
|
|
|
yych = *++YYCURSOR; |
|
|
|
@ -1013,7 +1018,7 @@ yy98: |
|
|
|
if (yych <= '9') goto yy98; |
|
|
|
yy100: |
|
|
|
YYDEBUG(100, *YYCURSOR); |
|
|
|
#line 311 "ext/date/lib/parse_iso_intervals.re" |
|
|
|
#line 316 "ext/date/lib/parse_iso_intervals.re" |
|
|
|
{ |
|
|
|
DEBUG_OUTPUT("recurrences"); |
|
|
|
TIMELIB_INIT; |
|
|
|
@ -1023,11 +1028,14 @@ yy100: |
|
|
|
s->have_recurrences = 1; |
|
|
|
return TIMELIB_PERIOD; |
|
|
|
} |
|
|
|
#line 1027 "ext/date/lib/parse_iso_intervals.c" |
|
|
|
#line 1032 "ext/date/lib/parse_iso_intervals.c" |
|
|
|
} |
|
|
|
#line 423 "ext/date/lib/parse_iso_intervals.re" |
|
|
|
#line 428 "ext/date/lib/parse_iso_intervals.re" |
|
|
|
|
|
|
|
} |
|
|
|
#ifdef PHP_WIN32 |
|
|
|
#pragma optimize( "", on ) |
|
|
|
#endif |
|
|
|
|
|
|
|
#define YYMAXFILL 20 |
|
|
|
|
|
|
|
|