diff options
Diffstat (limited to 'ext/date/lib/parse_iso_intervals.c')
| -rw-r--r-- | ext/date/lib/parse_iso_intervals.c | 71 |
1 files changed, 18 insertions, 53 deletions
diff --git a/ext/date/lib/parse_iso_intervals.c b/ext/date/lib/parse_iso_intervals.c index bd1ad05ddd..fedad043c4 100644 --- a/ext/date/lib/parse_iso_intervals.c +++ b/ext/date/lib/parse_iso_intervals.c @@ -1,4 +1,4 @@ -/* Generated by re2c 0.13.5 on Mon Dec 5 22:02:27 2011 */ +/* Generated by re2c 0.13.5 on Sun Mar 31 10:48:17 2013 */ #line 1 "ext/date/lib/parse_iso_intervals.re" /* +----------------------------------------------------------------------+ @@ -104,8 +104,6 @@ typedef struct Scanner { int have_end_date; } Scanner; -#define HOUR(a) (int)(a * 60) - static void add_warning(Scanner *s, char *error) { s->errors->warning_count++; @@ -178,39 +176,6 @@ static timelib_ull timelib_get_unsigned_nr(char **ptr, int max_length) return dir * timelib_get_nr(ptr, max_length); } -static long timelib_parse_tz_cor(char **ptr) -{ - char *begin = *ptr, *end; - long tmp; - - while (isdigit(**ptr) || **ptr == ':') { - ++*ptr; - } - end = *ptr; - switch (end - begin) { - case 1: - case 2: - return HOUR(strtol(begin, NULL, 10)); - break; - case 3: - case 4: - if (begin[1] == ':') { - tmp = HOUR(strtol(begin, NULL, 10)) + strtol(begin + 2, NULL, 10); - return tmp; - } else if (begin[2] == ':') { - tmp = HOUR(strtol(begin, NULL, 10)) + strtol(begin + 3, NULL, 10); - return tmp; - } else { - tmp = strtol(begin, NULL, 10); - return HOUR(tmp / 100) + tmp % 100; - } - case 5: - tmp = HOUR(strtol(begin, NULL, 10)) + strtol(begin + 3, NULL, 10); - return tmp; - } - return 0; -} - static void timelib_eat_spaces(char **ptr) { while (**ptr == ' ' || **ptr == '\t') { @@ -283,11 +248,11 @@ static int scan(Scanner *s) std: s->tok = cursor; s->len = 0; -#line 311 "ext/date/lib/parse_iso_intervals.re" +#line 276 "ext/date/lib/parse_iso_intervals.re" -#line 291 "ext/date/lib/parse_iso_intervals.c" +#line 256 "ext/date/lib/parse_iso_intervals.c" { YYCTYPE yych; unsigned int yyaccept = 0; @@ -357,12 +322,12 @@ std: if (yych <= '9') goto yy98; yy3: YYDEBUG(3, *YYCURSOR); -#line 424 "ext/date/lib/parse_iso_intervals.re" +#line 389 "ext/date/lib/parse_iso_intervals.re" { add_error(s, "Unexpected character"); goto std; } -#line 366 "ext/date/lib/parse_iso_intervals.c" +#line 331 "ext/date/lib/parse_iso_intervals.c" yy4: YYDEBUG(4, *YYCURSOR); yyaccept = 0; @@ -379,7 +344,7 @@ yy5: if (yych == 'T') goto yy14; yy6: YYDEBUG(6, *YYCURSOR); -#line 351 "ext/date/lib/parse_iso_intervals.re" +#line 316 "ext/date/lib/parse_iso_intervals.re" { timelib_sll nr; int in_time = 0; @@ -420,26 +385,26 @@ yy6: TIMELIB_DEINIT; return TIMELIB_PERIOD; } -#line 424 "ext/date/lib/parse_iso_intervals.c" +#line 389 "ext/date/lib/parse_iso_intervals.c" yy7: YYDEBUG(7, *YYCURSOR); ++YYCURSOR; YYDEBUG(8, *YYCURSOR); -#line 413 "ext/date/lib/parse_iso_intervals.re" +#line 378 "ext/date/lib/parse_iso_intervals.re" { goto std; } -#line 433 "ext/date/lib/parse_iso_intervals.c" +#line 398 "ext/date/lib/parse_iso_intervals.c" yy9: YYDEBUG(9, *YYCURSOR); ++YYCURSOR; YYDEBUG(10, *YYCURSOR); -#line 418 "ext/date/lib/parse_iso_intervals.re" +#line 383 "ext/date/lib/parse_iso_intervals.re" { s->pos = cursor; s->line++; goto std; } -#line 443 "ext/date/lib/parse_iso_intervals.c" +#line 408 "ext/date/lib/parse_iso_intervals.c" yy11: YYDEBUG(11, *YYCURSOR); yych = *++YYCURSOR; @@ -769,7 +734,7 @@ yy51: YYDEBUG(57, *YYCURSOR); ++YYCURSOR; YYDEBUG(58, *YYCURSOR); -#line 393 "ext/date/lib/parse_iso_intervals.re" +#line 358 "ext/date/lib/parse_iso_intervals.re" { DEBUG_OUTPUT("combinedrep"); TIMELIB_INIT; @@ -788,7 +753,7 @@ yy51: TIMELIB_DEINIT; return TIMELIB_PERIOD; } -#line 792 "ext/date/lib/parse_iso_intervals.c" +#line 757 "ext/date/lib/parse_iso_intervals.c" yy59: YYDEBUG(59, *YYCURSOR); yych = *++YYCURSOR; @@ -917,7 +882,7 @@ yy83: YYDEBUG(83, *YYCURSOR); ++YYCURSOR; YYDEBUG(84, *YYCURSOR); -#line 327 "ext/date/lib/parse_iso_intervals.re" +#line 292 "ext/date/lib/parse_iso_intervals.re" { timelib_time *current; @@ -940,7 +905,7 @@ yy83: TIMELIB_DEINIT; return TIMELIB_ISO_DATE; } -#line 944 "ext/date/lib/parse_iso_intervals.c" +#line 909 "ext/date/lib/parse_iso_intervals.c" yy85: YYDEBUG(85, *YYCURSOR); yych = *++YYCURSOR; @@ -1018,7 +983,7 @@ yy98: if (yych <= '9') goto yy98; yy100: YYDEBUG(100, *YYCURSOR); -#line 316 "ext/date/lib/parse_iso_intervals.re" +#line 281 "ext/date/lib/parse_iso_intervals.re" { DEBUG_OUTPUT("recurrences"); TIMELIB_INIT; @@ -1028,9 +993,9 @@ yy100: s->have_recurrences = 1; return TIMELIB_PERIOD; } -#line 1032 "ext/date/lib/parse_iso_intervals.c" +#line 997 "ext/date/lib/parse_iso_intervals.c" } -#line 428 "ext/date/lib/parse_iso_intervals.re" +#line 393 "ext/date/lib/parse_iso_intervals.re" } #ifdef PHP_WIN32 |
