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

📄 parse_date.g.c

📁 a little DFA compiler.
💻 C
📖 第 1 页 / 共 5 页
字号:
		if ((fmp->gmtoffset * 3600) == gmtoffset && fmp->type == isdst) {			return fmp;		}	}	return NULL;}static long timelib_lookup_zone(char **ptr, int *dst, char **tz_abbr, int *found){	char *word;	char *begin = *ptr, *end;	long  value = 0;	timelib_tz_lookup_table *tp;	while (**ptr != '\0' && **ptr != ')') {		++*ptr;	}	end = *ptr;	word = calloc(1, end - begin + 1);	memcpy(word, begin, end - begin);	if ((tp = zone_search(word, -1, 0))) {		value = -tp->gmtoffset / 60;		*dst = tp->type;		value += tp->type * 60;		*found = 1;	} else {		*found = 0;	}	*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.g.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;		{			static void *yytarget[256] = {				&&yy48,   &&yy50,   &&yy50,   &&yy50,   &&yy50,   &&yy50,   &&yy50,   &&yy50,				&&yy50,   &&yy50,   &&yy48,   &&yy50,   &&yy50,   &&yy50,   &&yy50,   &&yy50,				&&yy50,   &&yy50,   &&yy50,   &&yy50,   &&yy50,   &&yy50,   &&yy50,   &&yy50,				&&yy50,   &&yy50,   &&yy50,   &&yy50,   &&yy50,   &&yy50,   &&yy50,   &&yy50,				&&yy45,   &&yy50,   &&yy50,   &&yy50,   &&yy50,   &&yy50,   &&yy50,   &&yy50,				&&yy42,   &&yy50,   &&yy50,   &&yy41,   &&yy47,   &&yy41,   &&yy47,   &&yy50,				&&yy13,   &&yy14,   &&yy15,   &&yy16,   &&yy17,   &&yy17,   &&yy17,   &&yy17,				&&yy17,   &&yy17,   &&yy50,   &&yy50,   &&yy50,   &&yy50,   &&yy50,   &&yy50,				&&yy11,   &&yy25,   &&yy43,   &&yy43,   &&yy31,   &&yy35,   &&yy23,   &&yy43,				&&yy43,   &&yy18,   &&yy21,   &&yy43,   &&yy37,   &&yy7,    &&yy5,    &&yy29,				&&yy39,   &&yy43,   &&yy43,   &&yy27,   &&yy9,    &&yy43,   &&yy19,   &&yy33,				&&yy20,   &&yy2,    &&yy43,   &&yy50,   &&yy50,   &&yy50,   &&yy50,   &&yy50,				&&yy50,   &&yy26,   &&yy44,   &&yy44,   &&yy32,   &&yy36,   &&yy24,   &&yy44,				&&yy44,   &&yy44,   &&yy22,   &&yy44,   &&yy38,   &&yy8,    &&yy6,    &&yy30,				&&yy40,   &&yy44,   &&yy44,   &&yy28,   &&yy10,   &&yy44,   &&yy44,   &&yy34,				&&yy44,   &&yy4,    &&yy44,   &&yy50,   &&yy50,   &&yy50,   &&yy50,   &&yy50,				&&yy50,   &&yy50,   &&yy50,   &&yy50,   &&yy50,   &&yy50,   &&yy50,   &&yy50,				&&yy50,   &&yy50,   &&yy50,   &&yy50,   &&yy50,   &&yy50,   &&yy50,   &&yy50,				&&yy50,   &&yy50,   &&yy50,   &&yy50,   &&yy50,   &&yy50,   &&yy50,   &&yy50,				&&yy50,   &&yy50,   &&yy50,   &&yy50,   &&yy50,   &&yy50,   &&yy50,   &&yy50,				&&yy50,   &&yy50,   &&yy50,   &&yy50,   &&yy50,   &&yy50,   &&yy50,   &&yy50,				&&yy50,   &&yy50,   &&yy50,   &&yy50,   &&yy50,   &&yy50,   &&yy50,   &&yy50,				&&yy50,   &&yy50,   &&yy50,   &&yy50,   &&yy50,   &&yy50,   &&yy50,   &&yy50,				&&yy50,   &&yy50,   &&yy50,   &&yy50,   &&yy50,   &&yy50,   &&yy50,   &&yy50,				&&yy50,   &&yy50,   &&yy50,   &&yy50,   &&yy50,   &&yy50,   &&yy50,   &&yy50,				&&yy50,   &&yy50,   &&yy50,   &&yy50,   &&yy50,   &&yy50,   &&yy50,   &&yy50,				&&yy50,   &&yy50,   &&yy50,   &&yy50,   &&yy50,   &&yy50,   &&yy50,   &&yy50,				&&yy50,   &&yy50,   &&yy50,   &&yy50,   &&yy50,   &&yy50,   &&yy50,   &&yy50,				&&yy50,   &&yy50,   &&yy50,   &&yy50,   &&yy50,   &&yy50,   &&yy50,   &&yy50,				&&yy50,   &&yy50,   &&yy50,   &&yy50,   &&yy50,   &&yy50,   &&yy50,   &&yy50,				&&yy50,   &&yy50,   &&yy50,   &&yy50,   &&yy50,   &&yy50,   &&yy50,   &&yy50,				&&yy50,   &&yy50,   &&yy50,   &&yy50,   &&yy50,   &&yy50,   &&yy50,   &&yy50			};			goto *yytarget[yych];		}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.g.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 852 "<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;		{			static void *yytarget[256] = {				&&yy3,    &&yy3,    &&yy3,    &&yy3,    &&yy3,    &&yy3,    &&yy3,    &&yy3,				&&yy3,    &&yy3,    &&yy3,    &&yy3,    &&yy3,    &&yy3,    &&yy3,    &&yy3,				&&yy3,    &&yy3,    &&yy3,    &&yy3,    &&yy3,    &&yy3,    &&yy3,    &&yy3,				&&yy3,    &&yy3,    &&yy3,    &&yy3,    &&yy3,    &&yy3,    &&yy3,    &&yy3,				&&yy3,    &&yy3,    &&yy3,    &&yy3,    &&yy3,    &&yy3,    &&yy3,    &&yy3,				&&yy3,    &&yy132,  &&yy3,    &&yy3,    &&yy3,    &&yy3,    &&yy3,    &&yy3,				&&yy3,    &&yy3,    &&yy3,    &&yy3,    &&yy3,    &&yy3,    &&yy3,    &&yy3,				&&yy3,    &&yy3,    &&yy3,    &&yy3,    &&yy3,    &&yy3,    &&yy3,    &&yy3,				&&yy3,    &&yy133,  &&yy133,  &&yy133,  &&yy133,  &&yy1273, &&yy133,  &&yy133,				&&yy133,  &&yy1274, &&yy133,  &&yy133,  &&yy133,  &&yy133,  &&yy133,  &&yy1272,				&&yy133,  &&yy133,  &&yy133,  &&yy133,  &&yy133,  &&yy133,  &&yy133,  &&yy133,				&&yy133,  &&yy133,  &&yy133,  &&yy3,    &&yy3,    &&yy3,    &&yy3,    &&yy3,				&&yy3,    &&yy136,  &&yy136,  &&yy136,  &&yy136,  &&yy1289, &&yy136,  &&yy136,				&&yy136,  &&yy1290, &&yy136,  &&yy136,  &&yy136,  &&yy136,  &&yy136,  &&yy1288,				&&yy136,  &&yy136,  &&yy136,  &&yy136,  &&yy136,  &&yy136,  &&yy136,  &&yy136,				&&yy136,  &&yy136,  &&yy136,  &&yy3,    &&yy3,    &&yy3,    &&yy3,    &&yy3,				&&yy3,    &&yy3,    &&yy3,    &&yy3,    &&yy3,    &&yy3,    &&yy3,    &&yy3,				&&yy3,    &&yy3,    &&yy3,    &&yy3,    &&yy3,    &&yy3,    &&yy3,    &&yy3,				&&yy3,    &&yy3,    &&yy3,    &&yy3,    &&yy3,    &&yy3,    &&yy3,    &&yy3,				&&yy3,    &&yy3,    &&yy3,    &&yy3,    &&yy3,    &&yy3,    &&yy3,    &&yy3,				&&yy3,    &&yy3,    &&yy3,    &&yy3,    &&yy3,    &&yy3,    &&yy3,    &&yy3,				&&yy3,    &&yy3,    &&yy3,    &&yy3,    &&yy3,    &&yy3,    &&yy3,    &&yy3,				&&yy3,    &&yy3,    &&yy3,    &&yy3,    &&yy3,    &&yy3,    &&yy3,    &&yy3,				&&yy3,    &&yy3,    &&yy3,    &&yy3,    &&yy3,    &&yy3,    &&yy3,    &&yy3,				&&yy3,    &&yy3,    &&yy3,    &&yy3,    &&yy3,    &&yy3,    &&yy3,    &&yy3,				&&yy3,    &&yy3,    &&yy3,    &&yy3,    &&yy3,    &&yy3,    &&yy3,    &&yy3,				&&yy3,    &&yy3,    &&yy3,    &&yy3,    &&yy3,    &&yy3,    &&yy3,    &&yy3,				&&yy3,    &&yy3,    &&yy3,    &&yy3,    &&yy3,    &&yy3,    &&yy3,    &&yy3,				&&yy3,    &&yy3,    &&yy3,    &&yy3,    &&yy3,    &&yy3,    &&yy3,    &&yy3,				&&yy3,    &&yy3,    &&yy3,    &&yy3,    &&yy3,    &&yy3,    &&yy3,    &&yy3,				&&yy3,    &&yy3,    &&yy3,    &&yy3,    &&yy3,    &&yy3,    &&yy3,    &&yy3,				&&yy3,    &&yy3,    &&yy3,    &&yy3,    &&yy3,    &&yy3,    &&yy3,    &&yy3			};			goto *yytarget[yych];		}yy6:		yych = *++YYCURSOR;		{			static void *yytarget[256] = {				&&yy3,    &&yy3,    &&yy3,    &&yy3,    &&yy3,    &&yy3,    &&yy3,    &&yy3,				&&yy3,    &&yy3,    &&yy3,    &&yy3,    &&yy3,    &&yy3,    &&yy3,    &&yy3,				&&yy3,    &&yy3,    &&yy3,    &&yy3,    &&yy3,    &&yy3,    &&yy3,    &&yy3,				&&yy3,    &&yy3,    &&yy3,    &&yy3,    &&yy3,    &&yy3,    &&yy3,    &&yy3,				&&yy3,    &&yy3,    &&yy3,    &&yy3,    &&yy3,    &&yy3,    &&yy3,    &&yy3,				&&yy3,    &&yy132,  &&yy3,    &&yy3,    &&yy3,    &&yy3,    &&yy3,    &&yy3,				&&yy3,    &&yy3,    &&yy3,    &&yy3,    &&yy3,    &&yy3,    &&yy3,    &&yy3,				&&yy3,    &&yy3,    &&yy3,    &&yy3,    &&yy3,    &&yy3,    &&yy3,    &&yy3,				&&yy3,    &&yy133,  &&yy133,  &&yy133,  &&yy133,  &&yy1273, &&yy133,  &&yy133,				&&yy133,  &&yy1274, &&yy133,  &&yy133,  &&yy133,  &&yy133,  &&yy133,  &&yy1272,				&&yy133,  &&yy133,  &&yy133,  &&yy133,  &&yy133,  &&yy133,  &&yy133,  &&yy133,				&&yy133,  &&yy133,  &&yy133,  &&yy3,    &&yy3,    &&yy3,    &&yy3,    &&yy3,				&&yy3,    &&yy133,  &&yy133,  &&yy133,  &&yy133,  &&yy1273, &&yy133,  &&yy133,				&&yy133,  &&yy1274, &&yy133,  &&yy133,  &&yy133,  &&yy133,  &&yy133,  &&yy1272,				&&yy133,  &&yy133,  &&yy133,  &&yy133,  &&yy133,  &&yy133,  &&yy133,  &&yy133,				&&yy133,  &&yy133,  &&yy133,  &&yy3,    &&yy3,    &&yy3,    &&yy3,    &&yy3,				&&yy3,    &&yy3,    &&yy3,    &&yy3,    &&yy3,    &&yy3,    &&yy3,    &&yy3,

⌨️ 快捷键说明

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