📄 parse_date.b.c
字号:
*tz_abbr = word; return value;}static long timelib_get_zone(char **ptr, int *dst, timelib_time *t, int *tz_not_found, timelib_tzdb *tzdb){ timelib_tzinfo *res; long retval = 0; *tz_not_found = 0; while (**ptr == ' ' || **ptr == '(') { ++*ptr; } if (**ptr == '+') { ++*ptr; t->is_localtime = 1; t->zone_type = TIMELIB_ZONETYPE_OFFSET; *tz_not_found = 0; t->dst = 0; retval = -1 * timelib_parse_tz_cor(ptr); } else if (**ptr == '-') { ++*ptr; t->is_localtime = 1; t->zone_type = TIMELIB_ZONETYPE_OFFSET; *tz_not_found = 0; t->dst = 0; retval = timelib_parse_tz_cor(ptr); } else { int found = 0; long offset; char *tz_abbr; t->is_localtime = 1; t->zone_type = TIMELIB_ZONETYPE_ABBR; offset = timelib_lookup_zone(ptr, dst, &tz_abbr, &found);#if 0 /* If we found a TimeZone identifier, use it */ if (tz_name) { t->tz_info = timelib_parse_tzfile(tz_name); t->zone_type = TIMELIB_ZONETYPE_ID; }#endif /* If we have a TimeZone identifier to start with, use it */ if (strstr(tz_abbr, "/")) { if ((res = timelib_parse_tzfile(tz_abbr, tzdb)) != NULL) { t->tz_info = res; t->zone_type = TIMELIB_ZONETYPE_ID; found++; } } if (t->zone_type != TIMELIB_ZONETYPE_ID) { timelib_time_tz_abbr_update(t, tz_abbr); } free(tz_abbr); *tz_not_found = (found == 0); retval = offset; } while (**ptr == ')') { ++*ptr; } return retval;}#define timelib_split_free(arg) { \ int i; \ for (i = 0; i < arg.c; i++) { \ free(arg.v[i]); \ } \ if (arg.v) { \ free(arg.v); \ } \}static int scan(Scanner *s){ uchar *cursor = s->cur; char *str, *ptr = NULL; std: s->tok = cursor; s->len = 0;#line 845 "parse_date.b.re"{ static const unsigned char yybm[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 208, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 192, 64, 192, 0, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, 32, 160, 32, 32, 32, 160, 32, 32, 32, 32, 32, 160, 32, 32, 32, 160, 160, 160, 32, 32, 32, 32, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, };#line 778 "<stdout>" { YYCTYPE yych; unsigned int yyaccept = 0; if((YYLIMIT - YYCURSOR) < 26) YYFILL(26); yych = *YYCURSOR; switch(yych) { case 0x00: case 0x0A: goto yy48; case ' ': goto yy45; case '(': goto yy42; case '+': case '-': goto yy41; case ',': case '.': goto yy47; case '0': goto yy13; case '1': goto yy14; case '2': goto yy15; case '3': goto yy16; case '4': case '5': case '6': case '7': case '8': case '9': goto yy17; case '@': goto yy11; case 'A': goto yy25; case 'B': case 'C': case 'G': case 'H': case 'K': case 'Q': case 'R': case 'U': case 'Z': goto yy43; case 'D': goto yy31; case 'E': goto yy35; case 'F': goto yy23; case 'I': goto yy18; case 'J': goto yy21; case 'L': goto yy37; case 'M': goto yy7; case 'N': goto yy5; case 'O': goto yy29; case 'P': goto yy39; case 'S': goto yy27; case 'T': goto yy9; case 'V': goto yy19; case 'W': goto yy33; case 'X': goto yy20; case 'Y': goto yy2; case 'a': goto yy26; case 'b': case 'c': case 'g': case 'h': case 'i': case 'k': case 'q': case 'r': case 'u': case 'v': case 'x': case 'z': goto yy44; case 'd': goto yy32; case 'e': goto yy36; case 'f': goto yy24; case 'j': goto yy22; case 'l': goto yy38; case 'm': goto yy8; case 'n': goto yy6; case 'o': goto yy30; case 'p': goto yy40; case 's': goto yy28; case 't': goto yy10; case 'w': goto yy34; case 'y': goto yy4; default: goto yy50; }yy2: ++YYCURSOR; if((yych = *YYCURSOR) <= 'E') { if(yych <= ')') { if(yych >= ')') goto yy132; } else { if(yych <= '@') goto yy3; if(yych <= 'D') goto yy133; goto yy1302; } } else { if(yych <= 'd') { if(yych <= 'Z') goto yy133; if(yych >= 'a') goto yy136; } else { if(yych <= 'e') goto yy1311; if(yych <= 'z') goto yy136; } }yy3:#line 1340 "parse_date.b.re" { int tz_not_found; DEBUG_OUTPUT("tzcorrection | tz"); TIMELIB_INIT; s->time->z = timelib_get_zone((char **) &ptr, &s->time->dst, s->time, &tz_not_found, s->tzdb); s->errors += tz_not_found; TIMELIB_DEINIT; return TIMELIB_TIMEZONE; }#line 889 "<stdout>"yy4: yych = *++YYCURSOR; if(yych <= 'E') { if(yych <= ')') { if(yych <= '(') goto yy3; goto yy132; } else { if(yych <= '@') goto yy3; if(yych <= 'D') goto yy133; goto yy1302; } } else { if(yych <= 'd') { if(yych <= 'Z') goto yy133; if(yych <= '`') goto yy3; goto yy133; } else { if(yych <= 'e') goto yy1302; if(yych <= 'z') goto yy133; goto yy3; } }yy5: yych = *++YYCURSOR; if(yych <= 'O') { if(yych <= 'D') { if(yych == ')') goto yy132; if(yych <= '@') goto yy3; goto yy133; } else { if(yych <= 'H') { if(yych <= 'E') goto yy1273; goto yy133; } else { if(yych <= 'I') goto yy1274; if(yych <= 'N') goto yy133; goto yy1272; } } } else { if(yych <= 'h') { if(yych <= '`') { if(yych <= 'Z') goto yy133; goto yy3; } else { if(yych == 'e') goto yy1289; goto yy136; } } else { if(yych <= 'n') { if(yych <= 'i') goto yy1290; goto yy136; } else { if(yych <= 'o') goto yy1288; if(yych <= 'z') goto yy136; goto yy3; } } }yy6: yych = *++YYCURSOR; if(yych <= 'O') { if(yych <= 'D') { if(yych == ')') goto yy132; if(yych <= '@') goto yy3; goto yy133; } else { if(yych <= 'H') { if(yych <= 'E') goto yy1273; goto yy133; } else { if(yych <= 'I') goto yy1274; if(yych <= 'N') goto yy133; goto yy1272; } } } else { if(yych <= 'h') { if(yych <= '`') { if(yych <= 'Z') goto yy133; goto yy3; } else { if(yych == 'e') goto yy1273; goto yy133; } } else { if(yych <= 'n') { if(yych <= 'i') goto yy1274; goto yy133; } else { if(yych <= 'o') goto yy1272; if(yych <= 'z') goto yy133; goto yy3; } } }yy7: yych = *++YYCURSOR; if(yych <= 'O') { if(yych <= 'A') { if(yych == ')') goto yy132; if(yych <= '@') goto yy3; goto yy1244; } else { if(yych == 'I') goto yy1245; if(yych <= 'N') goto yy133; goto yy1246; } } else { if(yych <= 'h') { if(yych <= 'Z') goto yy133; if(yych <= '`') goto yy3; if(yych <= 'a') goto yy1258; goto yy136; } else { if(yych <= 'n') { if(yych <= 'i') goto yy1259; goto yy136; } else { if(yych <= 'o') goto yy1260; if(yych <= 'z') goto yy136; goto yy3; } } }yy8: yych = *++YYCURSOR; if(yych <= 'O') { if(yych <= 'A') { if(yych == ')') goto yy132; if(yych <= '@') goto yy3; goto yy1244; } else { if(yych == 'I') goto yy1245; if(yych <= 'N') goto yy133; goto yy1246; } } else { if(yych <= 'h') { if(yych <= 'Z') goto yy133; if(yych <= '`') goto yy3; if(yych <= 'a') goto yy1244; goto yy133; } else { if(yych <= 'n') { if(yych <= 'i') goto yy1245; goto yy133; } else { if(yych <= 'o') goto yy1246; if(yych <= 'z') goto yy133; goto yy3; } } }yy9: yych = *++YYCURSOR; if(yych <= 'W') { if(yych <= 'G') { if(yych <= '@') { if(yych == ')') goto yy132; goto yy3; } else { if(yych == 'E') goto yy1180; goto yy133; } } else { if(yych <= 'O') { if(yych <= 'H') goto yy1181; if(yych <= 'N') goto yy133; goto yy1182; } else { if(yych == 'U') goto yy1183; if(yych <= 'V') goto yy133; goto yy1184; } } } else { if(yych <= 'n') { if(yych <= 'd') { if(yych <= 'Z') goto yy133; if(yych <= '`') goto yy3; goto yy136; } else { if(yych <= 'e') goto yy1213; if(yych == 'h') goto yy1214; goto yy136; } } else { if(yych <= 'u') { if(yych <= 'o') goto yy1215; if(yych <= 't') goto yy136; goto yy1216; } else { if(yych == 'w') goto yy1217; if(yych <= 'z') goto yy136; goto yy3; } } }yy10: yych = *++YYCURSOR; if(yych <= 'W') { if(yych <= 'G') { if(yych <= '@') { if(yych == ')') goto yy132; goto yy3; } else { if(yych == 'E') goto yy1180; goto yy133; } } else { if(yych <= 'O') { if(yych <= 'H') goto yy1181; if(yych <= 'N') goto yy133; goto yy1182; } else { if(yych == 'U') goto yy1183; if(yych <= 'V') goto yy133; goto yy1184; } } } else { if(yych <= 'n') { if(yych <= 'd') { if(yych <= 'Z') goto yy133; if(yych <= '`') goto yy3; goto yy133; } else { if(yych <= 'e') goto yy1180; if(yych == 'h') goto yy1181; goto yy133; } } else { if(yych <= 'u') { if(yych <= 'o') goto yy1182; if(yych <= 't') goto yy133; goto yy1183; } else { if(yych == 'w') goto yy1184; if(yych <= 'z') goto yy133; goto yy3; } } }yy11: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if(yych == '-') goto yy1176; if(yych <= '0') goto yy12; if(yych <= '9') goto yy1177;yy12:#line 1406 "parse_date.b.re" {/* printf("unexpected character: #%d, %c ", *s->tok, *s->tok); */ s->errors++; goto std; }#line 1147 "<stdout>"yy13: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch(yych) { case ' ': case '!': case '"': case '#': case '$': case '%': case '&': case '\'': case '(': case ')': case '*': case '+': case ',': case 'A': case 'D': case 'F': case 'H': case 'I': case 'J': case 'M': case 'N': case 'O': case 'S': case 'T': case 'V': case 'W': case 'X': case 'Y': case 'a': case 'd': case 'f': case 'h': case 'j': case 'm': case 'o': case 'w': case 'y': goto yy1140; case '-': goto yy615; case '.': goto yy1142; case '/': goto yy614; case '0': goto yy1175; case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': goto yy1174; case ':': goto yy1143; case 'n': goto yy612; case 'r': goto yy613; case 's': goto yy606; case 't': goto yy610; default: goto yy12; }yy14: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch(yych) { case ' ': case '!': case '"': case '#': case '$': case '%': case '&': case '\'': case '(': case ')': case '*': case '+': case ',': case 'A': case 'D': case 'F': case 'H': case 'I': case 'J': case 'M': case 'N': case 'O': case 'P': case 'S': case 'T': case 'V': case 'W': case 'X': case 'Y': case 'a': case 'd': case 'f': case 'h': case 'j': case 'm': case 'o': case 'p': case 'w': case 'y': goto yy604; case '-': goto yy615; case '.': goto yy618; case '/': goto yy614; case '0': case '1': case '2': goto yy1174; case '3': case '4': case '5': case '6': case '7': case '8': case '9': goto yy1141; case ':': goto yy627; case 'n': goto yy612; case 'r': goto yy613; case 's': goto yy606; case 't': goto yy610; default: goto yy12; }yy15: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch(yych) { case ' ': case '!': case '"': case '#': case '$': case '%': case '&': case '\'': case '(': case ')': case '*': case '+': case ',': case 'A': case 'D': case 'F': case 'H': case 'I': case 'J': case 'M': case 'N': case 'O': case 'P': case 'S': case 'T': case 'V': case 'W': case 'X': case 'Y': case 'a':
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -