⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 parse_date.s.c

📁 a little DFA compiler.
💻 C
📖 第 1 页 / 共 5 页
字号:
	} 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.s.re"#line 743 "<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.s.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 854 "<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.s.re"	{/*		printf("unexpected character: #%d, %c ", *s->tok, *s->tok); */		s->errors++;		goto std;	}#line 1112 "<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':	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':	case '3':	goto yy1141;	case '4':	case '5':	case '6':	case '7':	case '8':	case '9':	goto yy1138;	case ':':	goto yy627;	case 'n':	goto yy612;	case 'r':	goto yy613;	case 's':	goto yy606;	case 't':	goto yy610;	default:	goto yy12;	}yy16:	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':	goto yy1138;	case '2':	case '3':	case '4':	case '5':	case '6':	case '7':	case '8':	case '9':	goto yy611;	case ':':	goto yy627;	case 'n':	goto yy612;	case 'r':	goto yy613;	case 's':	goto yy606;	case 't':	goto yy610;	default:	goto yy12;	}yy17:	yyaccept = 0;	yych = *(YYMARKER = ++YYCURSOR);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -