亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? uri.l

?? Linux TSE 源代碼! 保貴十分
?? L
?? 第 1 頁 / 共 2 頁
字號:
/** * uri.l -- Routines dealing with URI, mainly parsing and merging. * Created: Xie Han, net lab of Peking University. <e@pku.edu.cn> * * This is the first module of the web crawler. Used widely. * Created: Sep 25 04:15am 2003. version 0.1.1 * Last updated: Oct 13 04:15am 2005. version 1.6.3 *//* The followings are BNFs generating URI-refernce, taken from RFC 2396. */URI-reference	({absoluteURI}|{relativeURI})?("#"{fragment})?absoluteURI		{scheme}":"({hier_part}|{opaque_part})relativeURI		({net_path}|{abs_path}|{rel_path})("?"{query})?hier_part		({net_path}|{abs_path})("?"{query})?opaque_part		{uric_no_slash}{uric}*uric_no_slash	{unreserved}|{escaped}|";"|"?"|":"|"@"|"&"|"="|"+"|"$"|","net_path		"//"{authority}{abs_path}?abs_path		"/"{path_segments}rel_path		{rel_segment}{abs_path}?rel_segment		({unreserved}|{escaped}|";"|"@"|"&"|"="|"+"|"$"|",")+scheme			{alpha}({alpha}|{digit}|"+"|"-"|".")*authority		{server}|{reg_name}reg_name		({unreserved}|{escaped}|"$"|","|";"|":"|"@"|"&"|"="|"+")+server			(({userinfo}"@")?{hostport})?userinfo		({unreserved}|{escaped}|";"|":"|"&"|"="|"+"|"$"|",")*hostport		{host}(":"{port})?host			{hostname}|{IPv4address}hostname		({domainlabel}".")*{toplabel}"."?domainlabel		{alphanum}|{alphanum}({alphanum}|"-")*{alphanum}toplabel		{alpha}|{alpha}({alphanum}|"-")*{alphanum}IPv4address		{digit}+"."{digit}+"."{digit}+"."{digit}+port			{digit}*path			({abs_path}|{opaque_part})?path_segments	{segment}("/"{segment})*segment			{pchar}*(";"{param})*param			{pchar}*pchar			{unreserved}|{escaped}|":"|"@"|"&"|"="|"+"|"$"|","query			{uric}*fragment		{uric}*uric			{reserved}|{unreserved}|{escaped}reserved		";"|"/"|"?"|":"|"@"|"&"|"="|"+"|"$"|","unreserved		{alphanum}|{mark}mark			"-"|"_"|"."|"!"|"~"|"*"|"'"|"("|")"escaped			"%"{hex}{hex}hex				{digit}|[A-Fa-f]alphanum		{alpha}|{digit}alpha			{lowalpha}|{upalpha}lowalpha		[a-z]upalpha			[A-Z]digit			[0-9]%option stack%s SCHEME REL_PATH AUTHORITY USERINFO HOST PORT REG_NAME ABS_PATH%s OPAQUE_PART QUERY FRAGMENT ACCEPT%{#include <errno.h>#include <stdlib.h>#include <stdio.h>#include <string.h>#include <ctype.h>#include <stack.h>#include "uri.h"#define URI_INIT(uri) \do {											\	(uri)->scheme = NULL;						\	(uri)->authority = NULL;					\	(uri)->path = NULL;							\	(uri)->query = NULL;						\	(uri)->fragment = NULL;						\} while (0)#define AUTH_INIT(auth, at) \do {											\	if (((auth)->type = (at)) == AT_SERVER)		\	{											\		(auth)->userinfo = NULL;				\		(auth)->host = NULL;					\		(auth)->port = NULL;					\	}											\	else										\		(auth)->reg_name = NULL;				\} while (0)#define AUTH_DESTROY(auth) \do {											\	if ((auth)->type == AT_SERVER)				\	{											\		free((auth)->userinfo);					\		free((auth)->host);						\		free((auth)->port);						\	}											\	else										\		free((auth)->reg_name);					\} while (0)static int __length;static struct uri *__uri;char *__memtostr(const void *s, int n){	char *str = (char *)malloc((n + 1) * sizeof (char));	if (str)	{		memcpy(str, s, n);		*(str + n) = '\0';	}	return str;}%}%%<SCHEME>{scheme}":"		{	if (__uri->scheme = __memtostr(yytext, yyleng - 1))	{		__length += yyleng;		yy_push_state(AUTHORITY);	}	else	{		uri_destroy(__uri);		return -1;	}}<SCHEME>.|\n		{	yyless(0);	BEGIN REL_PATH;}<SCHEME><<EOF>>		BEGIN REL_PATH;<REL_PATH>{rel_path}	{	if (__uri->path = __memtostr(yytext, yyleng))	{		__length += yyleng;		BEGIN QUERY;	}	else	{		uri_destroy(__uri);		return -1;	}}<REL_PATH>.|\n		{	yyless(0);	yy_push_state(AUTHORITY);}<REL_PATH><<EOF>>	yy_push_state(AUTHORITY);	/* Authority and abs_path have conflict! If the following is "//",	 * we assume that it's an authority; if the following is "/", it's	 * an abs_path. */<AUTHORITY>"//"		{	yy_pop_state();	__uri->authority = (struct authority *)malloc(sizeof (struct authority));	if (__uri->authority)	{		AUTH_INIT(__uri->authority, AT_SERVER);		__length += yyleng;		BEGIN USERINFO;	}	else	{		uri_destroy(__uri);		return -1;	}}<AUTHORITY>.|\n		{	yyless(0);	yy_push_state(ABS_PATH);}<AUTHORITY><<EOF>>	yy_push_state(ABS_PATH);<USERINFO>{userinfo}"@"		{	if (__uri->authority->userinfo = __memtostr(yytext, yyleng - 1))	{		__length += yyleng;		BEGIN HOST;	}	else	{		uri_destroy(__uri);		return -1;	}}<USERINFO>.|\n		{	yyless(0);	BEGIN HOST;}<USERINFO><<EOF>>	BEGIN HOST;<HOST>{host}		{	if (__uri->authority->host = __memtostr(yytext, yyleng))	{		__length += yyleng;		BEGIN PORT;	}	else	{		uri_destroy(__uri);		return -1;	}}<HOST>.|\n			{	yyless(0);	BEGIN REG_NAME;}<HOST><<EOF>>		BEGIN REG_NAME;<PORT>":"{port}		{	if (__uri->authority->port = __memtostr(yytext + 1, yyleng - 1))	{		__length += yyleng;		BEGIN REG_NAME;	}	else	{		uri_destroy(__uri);		return -1;	}}<PORT>.|\n			{	yyless(0);	BEGIN REG_NAME;}<PORT><<EOF>>		BEGIN REG_NAME;<REG_NAME>{reg_name}	{	/* We have assumed that the authority is a server, but it seems that	 * we are wrong: it's a reg_name. We should join the userinfo, host	 * and the port together with this yytext into a reg_name. */	char *reg_name;	int len = yyleng;	char *curpos;	if (__uri->authority->userinfo)		len += strlen(__uri->authority->userinfo) + 1;	if (__uri->authority->host)		len += strlen(__uri->authority->host);	if (__uri->authority->port)		len += strlen(__uri->authority->port) + 1;	if (reg_name = (char *)malloc((len + 1) * sizeof (char)))	{		curpos = reg_name;		if (__uri->authority->userinfo)		{			len = strlen(__uri->authority->userinfo);			memcpy(curpos, __uri->authority->userinfo, len);			curpos += len;			*curpos++ = '@';		}		if (__uri->authority->host)		{			len = strlen(__uri->authority->host);			memcpy(curpos, __uri->authority->host, len);			curpos += len;		}		if (__uri->authority->port)		{			*curpos++ = ':';			len = strlen(__uri->authority->port);			memcpy(curpos, __uri->authority->port, len);			curpos += len;		}		len = strlen(yytext);		memcpy(curpos, yytext, len);		curpos += len;		*curpos = '\0';		AUTH_DESTROY(__uri->authority);		AUTH_INIT(__uri->authority, AT_REG_NAME);		__uri->authority->reg_name = reg_name;		__length += yyleng;		yy_push_state(ABS_PATH);	}	else	{		uri_destroy(__uri);		return -1;	}}<REG_NAME>.|\n		{	yyless(0);	yy_push_state(ABS_PATH);}<REG_NAME><<EOF>>	yy_push_state(ABS_PATH);<ABS_PATH>{abs_path}	{	yy_pop_state();	if (YY_START == AUTHORITY)		yy_pop_state();	if (__uri->path = __memtostr(yytext, yyleng))	{		__length += yyleng;		BEGIN QUERY;	}	else	{		uri_destroy(__uri);		return -1;	}}<ABS_PATH>.|\n		|<ABS_PATH><<EOF>>	{	/* When encountered an EOF we can not yyless. */	if (yyleng == 1)		yyless(0);	yy_pop_state();	/* The previous state is "AUTHORITY" indicates the URI	 * has NO authority. */	if (YY_START == AUTHORITY)	{		yy_pop_state();		/* The previous state is "SCHEME" indicates the URI		 * HAS a scheme. It's a little confusing. */		if (YY_START == SCHEME)			BEGIN OPAQUE_PART;		else			BEGIN FRAGMENT;	}	else		BEGIN QUERY;}<OPAQUE_PART>{opaque_part}	{	if (__uri->path = __memtostr(yytext, yyleng))	{		__length += yyleng;		BEGIN FRAGMENT;	}	else	{		uri_destroy(__uri);		return -1;	}}<OPAQUE_PART>.|\n		{	yyless(0);	BEGIN FRAGMENT;}<OPAQUE_PART><<EOF>>	BEGIN FRAGMENT;<QUERY>"?"{query}	{	if (__uri->query = __memtostr(yytext + 1, yyleng - 1))	{		__length += yyleng;		BEGIN FRAGMENT;	}	else	{		uri_destroy(__uri);		return -1;	}}<QUERY>.|\n			{	yyless(0);	BEGIN FRAGMENT;}<QUERY><<EOF>>		BEGIN FRAGMENT;<FRAGMENT>"#"{fragment}		{	if (__uri->fragment = __memtostr(yytext + 1, yyleng - 1))	{		__length += yyleng;		BEGIN ACCEPT;	}	else	{		uri_destroy(__uri);		return -1;	}}<FRAGMENT>.|\n		{	yyless(0);	BEGIN ACCEPT;}<FRAGMENT><<EOF>>	BEGIN ACCEPT;<ACCEPT>.|\n		{	yyless(0);	return __length;}<ACCEPT><<EOF>>		return __length;<INITIAL>{URI-reference}	return yyleng;<INITIAL>.|\n		{	yyless(0);	return 0;}<INITIAL><<EOF>>	return 0;%%int yywrap(void){	return 1;}char __hex2char[] = {/*  00 nul  01 soh   02 stx  03 etx   04 eot  05 enq   06 ack  07 bel   */    '\0',   '\0',    '\0',   '\0',    '\0',   '\0',    '\0',   '\0',    /*  08 bs   09 ht    0a nl   0b vt    0c np   0d cr    0e so   0f si    */    '\0',   '\0',    '\0',   '\0',    '\0',   '\0',    '\0',   '\0',    /*  10 dle  11 dc1   12 dc2  13 dc3   14 dc4  15 nak   16 syn  17 etb   */    '\0',   '\0',    '\0',   '\0',    '\0',   '\0',    '\0',   '\0',    /*  18 can  19 em    1a sub  1b esc   1c fs   1d gs    1e rs   1f us    */    '\0',   '\0',    '\0',   '\0',    '\0',   '\0',    '\0',   '\0',    /*  20 sp   21 !     22 "    23 #     24 $    25 %     26 &    27 '     */    '\0',   '\0',    '\0',   '\0',    '\0',   '\0',    '\0',   '\0',    /*  28 (    29 )     2a *    2b +     2c ,    2d -     2e .    2f /     */    '\0',   '\0',    '\0',   '\0',    '\0',   '\0',    '\0',   '\0',    /*  30 0    31 1     32 2    33 3     34 4    35 5     36 6    37 7     */    0,      1,       2,      3,       4,      5,       6,      7,    /*  38 8    39 9     3a :    3b ;     3c <    3d =     3e >    3f ?     */    8,      9,       '\0',   '\0',    '\0',   '\0',    '\0',   '\0',    /*  40 @    41 A     42 B    43 C     44 D    45 E     46 F    47 G     */    '\0',   10,      11,     12,      13,     14,      15,     '\0',    /*  48 H    49 I     4a J    4b K     4c L    4d M     4e N    4f O     */    '\0',   '\0',    '\0',   '\0',    '\0',   '\0',    '\0',   '\0',    /*  50 P    51 Q     52 R    53 S     54 T    55 U     56 V    57 W     */    '\0',   '\0',    '\0',   '\0',    '\0',   '\0',    '\0',   '\0',    /*  58 X    59 Y     5a Z    5b [     5c \    5d ]     5e ^    5f _     */    '\0',   '\0',    '\0',   '\0',    '\0',   '\0',    '\0',   '\0',    /*  60 `    61 a     62 b    63 c     64 d    65 e     66 f    67 g     */    '\0',   10,      11,     12,      13,     14,      15,     '\0',    /*  68 h    69 i     6a j    6b k     6c l    6d m     6e n    6f o     */    '\0',   '\0',    '\0',   '\0',    '\0',   '\0',    '\0',   '\0',    /*  70 p    71 q     72 r    73 s     74 t    75 u     76 v    77 w     */    '\0',   '\0',    '\0',   '\0',    '\0',   '\0',    '\0',   '\0',    /*  78 x    79 y     7a z    7b {     7c |    7d }     7e ~    7f del   */    '\0',   '\0',    '\0',   '\0',    '\0',   '\0',    '\0',   '\0',    };char __char2hex[] = "0123456789ABCDEF";char __uri_chr[] = {	0x00, 0x00, 0x00, 0x00,	0x5b, 0xff, 0xff, 0xf5,	0xff, 0xff, 0xff, 0xe1,	0x7f, 0xff, 0xff, 0xe2};static int __uri_parse(struct uri *uri){	__uri = uri;	__length = 0;	URI_INIT(__uri);	BEGIN SCHEME;	return yylex();}/* Scan a string ('\0' terminated) and return the length of the uri. * Return negative number when and only when failed to allocate memory. */int uri_parse_string(const char *string, struct uri *uri){	YY_BUFFER_STATE buf;	int n = -1;	if (buf = yy_scan_string(string))	{		yy_switch_to_buffer(buf);		n = __uri_parse(uri);		yy_delete_buffer(buf);	}	return n;}/* Scan some memory bytes. */int uri_parse_bytes(const char *bytes, int len, struct uri *uri){	YY_BUFFER_STATE buf;	int n = -1;	if (buf = yy_scan_bytes(bytes, len))	{		yy_switch_to_buffer(buf);		n = __uri_parse(uri);

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩在线a电影| 欧美色涩在线第一页| 色av一区二区| 精品久久久久久久久久久久久久久| 久久精品欧美一区二区三区不卡 | 亚洲毛片av在线| 蜜臀va亚洲va欧美va天堂 | 国产综合色在线| 欧美日韩精品综合在线| 国产精品久久久久久久久免费丝袜 | 久久久蜜臀国产一区二区| 亚洲国产成人高清精品| 暴力调教一区二区三区| 精品国产精品一区二区夜夜嗨| 亚洲精品视频观看| a亚洲天堂av| 中文av字幕一区| 国产乱码精品一区二区三区av | 午夜精品久久久久久久99水蜜桃| 成人免费观看视频| 久久久午夜精品理论片中文字幕| 人人超碰91尤物精品国产| 欧美色老头old∨ideo| 亚洲精品高清在线| 色猫猫国产区一区二在线视频| 国产精品丝袜一区| 成人晚上爱看视频| 日本一区二区三区免费乱视频| 国产精品99久久久久久宅男| 精品国产乱码久久久久久夜甘婷婷| 日韩高清电影一区| 欧美一区三区四区| 国产一区二区在线影院| 亚洲精品在线观| 国产精品一线二线三线精华| 久久精品人人做人人爽人人| 风间由美性色一区二区三区| 最新欧美精品一区二区三区| 国产成人鲁色资源国产91色综 | 欧美一区日韩一区| 美国毛片一区二区三区| www欧美成人18+| 丁香桃色午夜亚洲一区二区三区| 国产精品素人一区二区| 色综合天天狠狠| 五月婷婷另类国产| 久久综合网色—综合色88| 国产一区二区伦理| 国产精品久久久久aaaa樱花| jiyouzz国产精品久久| 夜色激情一区二区| 日韩午夜在线播放| 大胆亚洲人体视频| 亚洲视频在线一区观看| 欧美日韩一区二区三区免费看| 五月婷婷久久丁香| 久久久不卡网国产精品一区| 99久久99久久精品免费观看| 亚洲观看高清完整版在线观看| 日韩欧美专区在线| 成人精品免费视频| 亚洲超碰精品一区二区| 精品国产乱码久久久久久1区2区 | 中文字幕一区二区视频| 日本精品一区二区三区四区的功能| 亚洲福利视频导航| 国产亚洲综合性久久久影院| 91蜜桃在线观看| 蜜桃视频免费观看一区| 国产精品久久久久久久久晋中| 在线91免费看| 成人动漫中文字幕| 奇米在线7777在线精品| 日韩毛片在线免费观看| 日韩精品专区在线影院重磅| 色老汉一区二区三区| 国产激情视频一区二区在线观看| 亚洲综合在线电影| 久久精品视频在线免费观看| 在线播放日韩导航| 91一区二区在线| 国产精品原创巨作av| 亚洲成av人影院| 亚洲天天做日日做天天谢日日欢| 欧美mv日韩mv| 欧美日韩成人一区二区| 99久久精品免费观看| 国产激情偷乱视频一区二区三区| 天天综合日日夜夜精品| 中文字幕亚洲在| 亚洲国产成人午夜在线一区| 91精品欧美久久久久久动漫| 日本丶国产丶欧美色综合| 成人免费毛片片v| 国产在线精品不卡| 奇米影视在线99精品| 亚洲大片精品永久免费| 一区二区欧美在线观看| 日韩伦理电影网| 中文字幕一区二区三区视频| 久久影视一区二区| 欧美xxxx老人做受| 欧美videos中文字幕| 9191精品国产综合久久久久久| 在线观看三级视频欧美| 色婷婷香蕉在线一区二区| 成人av网站在线观看免费| 国产精品一区二区久久不卡| 蜜桃视频在线观看一区| 日本一不卡视频| 日韩电影在线观看电影| 日韩综合小视频| 婷婷国产在线综合| 视频在线观看91| 蜜桃免费网站一区二区三区| 日韩激情在线观看| 免费高清在线视频一区·| 美日韩黄色大片| 美女脱光内衣内裤视频久久网站 | 精品对白一区国产伦| 精品人伦一区二区色婷婷| 久久丝袜美腿综合| 欧美国产成人在线| 亚洲欧美自拍偷拍色图| 一区二区三区四区激情| 尤物视频一区二区| 亚洲国产综合91精品麻豆| 青娱乐精品视频| 精品一区二区三区久久久| 成人一二三区视频| 91丨九色丨黑人外教| 欧美在线三级电影| 制服.丝袜.亚洲.中文.综合| 精品粉嫩超白一线天av| 欧美韩国日本不卡| 亚洲精品久久久蜜桃| 亚洲国产日韩av| 久久99精品久久久久久国产越南| 国产一区二区三区美女| 成人国产精品免费网站| 欧美性猛片aaaaaaa做受| 欧美不卡一区二区三区| 中文字幕一区二区三区精华液| 亚洲一区二区黄色| 精品一区二区免费在线观看| 99精品视频在线观看| 欧美伦理视频网站| 欧美国产精品一区| 日韩高清不卡一区二区三区| 国产精品 日产精品 欧美精品| 99久久精品久久久久久清纯| 91精品国产综合久久久久久漫画| 国产亚洲一二三区| 午夜精品视频一区| 成人av电影在线网| 777xxx欧美| 国产精品久久毛片av大全日韩| 亚洲二区视频在线| 成人免费视频一区| 日韩一区二区三区三四区视频在线观看| 日本一区二区综合亚洲| 日本美女视频一区二区| av中文字幕不卡| 精品国产一区二区三区忘忧草 | 欧美丰满高潮xxxx喷水动漫| 日本一区二区三区视频视频| 日韩在线一区二区| 在线一区二区三区四区| 久久精品欧美一区二区三区麻豆| 午夜精品aaa| 91在线视频免费91| 欧美精品一区二区在线播放| 亚洲成人在线网站| 97精品超碰一区二区三区| 精品人伦一区二区色婷婷| 午夜精品免费在线| 在线观看一区不卡| 亚洲天堂成人在线观看| 国产福利一区二区三区视频在线 | 国产精品欧美一级免费| 蜜桃视频在线观看一区二区| 欧美日韩三级一区二区| 国产精品成人在线观看| 国产91高潮流白浆在线麻豆| 欧美一区二区三区视频免费| 日韩综合小视频| 欧美人与禽zozo性伦| 亚洲午夜在线视频| 欧美色手机在线观看| 亚洲午夜视频在线观看| 91麻豆免费观看| 最新国产の精品合集bt伙计| 粉嫩av一区二区三区粉嫩| 精品国产1区二区| 精品一区二区免费看| 久久影院电视剧免费观看| 国产精品影视网| 国产精品毛片久久久久久久| 成人午夜又粗又硬又大| 国产精品免费视频一区|