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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? 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);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
中文字幕一区二区日韩精品绯色| 成人性生交大合| 色狠狠桃花综合| 日本一区二区三区国色天香| 成人午夜精品在线| 中文字幕一区二区三区视频| 91在线播放网址| 亚洲自拍偷拍综合| 欧美午夜理伦三级在线观看| 日韩综合在线视频| 欧美大度的电影原声| 国产成人8x视频一区二区| 亚洲国产精品精华液2区45| aaa亚洲精品| 在线一区二区视频| 日本不卡的三区四区五区| 精品捆绑美女sm三区| 成人小视频免费在线观看| 亚洲欧美日韩国产一区二区三区 | 青青草原综合久久大伊人精品优势 | 欧美精品一区二区在线播放| 国产麻豆欧美日韩一区| 国产精品理论在线观看| 亚洲成人资源在线| 日韩一区二区免费高清| 成人一级片网址| 丝袜美腿一区二区三区| 久久人人97超碰com| eeuss国产一区二区三区| 亚洲国产日韩av| 精品99999| 色综合天天天天做夜夜夜夜做| 水蜜桃久久夜色精品一区的特点 | 成人av在线电影| 亚洲成av人片一区二区三区| 欧美mv日韩mv国产| 91丨国产丨九色丨pron| 九九九久久久精品| 亚洲综合色视频| 国产欧美日韩视频在线观看| 欧美猛男男办公室激情| 波多野结衣精品在线| 午夜精品久久久| 国产精品婷婷午夜在线观看| 欧美一区二区三区色| eeuss影院一区二区三区| 久久精品国产第一区二区三区| 一色桃子久久精品亚洲| 欧美大片在线观看一区二区| 在线视频你懂得一区| 国产成人在线观看| 久久99最新地址| 午夜激情一区二区| 中文字幕在线观看不卡视频| 精品久久人人做人人爰| 欧美午夜片在线看| 91日韩在线专区| 国产一区二区三区美女| 日韩高清电影一区| 亚洲一区在线观看网站| 一区免费观看视频| 中文字幕一区二区三区色视频| 亚洲精品一区二区三区四区高清| 51精品国自产在线| 欧美在线综合视频| 91在线精品一区二区三区| 国产东北露脸精品视频| 激情深爱一区二区| 婷婷一区二区三区| 日韩一级黄色大片| 欧美日本乱大交xxxxx| 色爱区综合激月婷婷| 99riav久久精品riav| 国产成人高清视频| 国产成人综合网站| 国产一二三精品| 国产九九视频一区二区三区| 国产在线不卡视频| 激情综合色综合久久| 久久精品免费看| 久久电影网站中文字幕| 玖玖九九国产精品| 国产福利一区在线| 成人污视频在线观看| 国产传媒日韩欧美成人| 国产成人免费视| 成人av在线资源| 91免费观看视频| 91黄色免费看| 欧美电影一区二区三区| 日韩一区二区在线播放| 精品久久久久久亚洲综合网| 2021久久国产精品不只是精品| 欧美成人伊人久久综合网| 久久综合九色综合97婷婷| 亚洲国产精品av| 中文字幕在线不卡视频| 亚洲一区二区三区视频在线播放 | 夜夜嗨av一区二区三区| 夜夜亚洲天天久久| 日韩精品亚洲一区| 激情另类小说区图片区视频区| 国产激情一区二区三区四区| 国产.欧美.日韩| www.成人网.com| 在线视频一区二区免费| 5566中文字幕一区二区电影 | 国产精品沙发午睡系列990531| wwwwxxxxx欧美| 日韩理论片网站| 视频一区二区中文字幕| 国产欧美一区二区精品性| 亚洲男人天堂av网| 日本最新不卡在线| 国产91精品入口| xnxx国产精品| 97久久精品人人做人人爽50路 | 亚洲午夜羞羞片| 久久国产生活片100| 91在线免费看| 日韩女优视频免费观看| 亚洲视频免费观看| 免费高清在线视频一区·| 波多野结衣的一区二区三区| 欧美日韩mp4| 日本一区二区久久| 日韩成人一区二区三区在线观看| 国产精品一区免费在线观看| 精品视频在线免费观看| 久久精品一区二区三区不卡牛牛 | 丝袜亚洲另类丝袜在线| 国产成人av一区二区三区在线观看| 在线免费精品视频| 欧美国产亚洲另类动漫| 日本亚洲免费观看| 91在线视频18| 国产免费成人在线视频| 青青草视频一区| 色婷婷狠狠综合| 国产欧美一区二区精品秋霞影院| 亚洲国产欧美另类丝袜| 不卡影院免费观看| 日韩欧美美女一区二区三区| 亚洲午夜精品在线| 9久草视频在线视频精品| xvideos.蜜桃一区二区| 青青国产91久久久久久| 欧美日韩国产首页| 一区二区三区国产精华| 成人动漫一区二区在线| 丁香另类激情小说| 日韩欧美高清一区| 午夜激情一区二区| 欧美色图天堂网| 亚洲激情欧美激情| 99热在这里有精品免费| 国产日韩精品一区二区三区 | 国产精品萝li| 激情六月婷婷久久| 精品久久一区二区| 激情av综合网| 日韩小视频在线观看专区| 日韩精品欧美精品| 久久精品国产秦先生| 91精品国产色综合久久不卡电影 | 精品第一国产综合精品aⅴ| 亚洲电影中文字幕在线观看| 色吊一区二区三区| ...xxx性欧美| 99精品国产热久久91蜜凸| 国产精品国产三级国产aⅴ无密码| 粗大黑人巨茎大战欧美成人| 日本一区二区成人| 99久久精品国产毛片| 亚洲欧美激情插 | 欧美日韩免费电影| 欧美乱熟臀69xxxxxx| 亚洲h在线观看| 欧美一区二区视频观看视频| 美女网站视频久久| 精品成人在线观看| 国产精品亚洲第一| 国产精品美女视频| 一本在线高清不卡dvd| 亚洲第一狼人社区| 欧美女孩性生活视频| 久久av中文字幕片| 欧美激情一区二区三区蜜桃视频 | 国产精一品亚洲二区在线视频| 国产日产欧美精品一区二区三区| 一区二区三区精品视频| 欧美日韩国产在线观看| 麻豆国产精品777777在线| 久久网这里都是精品| 99久久精品免费看国产 | 欧美一级片在线看| 国产一区中文字幕| 亚洲女爱视频在线| 日韩欧美在线不卡| av午夜精品一区二区三区|