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

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

?? regexp.cpp

?? FastCopy 利用緩沖技術加快文件拷貝
?? CPP
字號:
static char *regexp_id = 	"@(#)Copyright (C) H.Shirouzu 2005-2006   regexp.cpp	ver1.31";/* ========================================================================	Project  Name			: Regular Expression / Wild Card Match Library	Create					: 2005-11-03(The)	Update					: 2006-01-31(Tue)	Copyright				: H.Shirouzu	Reference				: 	======================================================================== */#include "tlib.h"#include "regexp.h"RegExp::RegExp(){	memset(states_tbl, 0, sizeof(states_tbl));	epsilon_tbl = NULL;	end_states = 0;	max_state = 0;}RegExp::~RegExp(){	Init();}void RegExp::Init(){	for (int type=NORMAL_TBL; type < MAX_STATES_TBL; type++) {		if (states_tbl[type]) {			for (int i=0; i < BYTE_NUM; i++) {				if (states_tbl[type][i])					delete states_tbl[type][i];			}			delete [] states_tbl[type];			states_tbl[type] = NULL;		}	}	if (epsilon_tbl) {		delete [] epsilon_tbl;		epsilon_tbl = NULL;	}	max_state = 0;	end_states = 0;}void RegExp::AddRegStates(StatesType type, WCHAR ch, const RegStates &state_pattern){	int	idx = ch >> BITS_OF_BYTE;	RegStates	**&tbl = states_tbl[type];	if (!tbl) {		tbl = new RegStates *[BYTE_NUM];		memset(tbl, 0, sizeof(RegStates *) * BYTE_NUM);	}	RegStates	*&sub_tbl = tbl[idx];	if (!sub_tbl) {		sub_tbl = new RegStates [BYTE_NUM];		memset(sub_tbl, 0, sizeof(RegStates) * BYTE_NUM);	}	sub_tbl[(u_char)ch] |= state_pattern;}RegStates RegExp::GetRegStates(StatesType type, WCHAR ch){	RegStates	**&tbl = states_tbl[type];	RegStates *sub_tbl = tbl ? tbl[ch >> BITS_OF_BYTE] : NULL;	return	sub_tbl ? sub_tbl[(u_char)ch] : 0;}void RegExp::AddEpStates(int state, const RegStates &add_states){	if (!epsilon_tbl) {		epsilon_tbl = new RegStates [sizeof(RegStates)][BYTE_NUM];		memset(epsilon_tbl, 0, sizeof(RegStates) * sizeof(RegStates) * BYTE_NUM);	}	RegStates	*tbl = epsilon_tbl[state / BITS_OF_BYTE];	int			bit = 1 << (state % BITS_OF_BYTE);	for (int i=0; i < BYTE_NUM; i++) {		if (i & bit)			tbl[i] |= add_states;	}}RegStates RegExp::GetEpStates(RegStates cur_states){	RegStates	ret_states = 0;	for (int i=0; cur_states; i++) {		ret_states |= epsilon_tbl[i][cur_states & 0xff];		cur_states >>= BITS_OF_BYTE;	}	return	ret_states;}void RegExp::AddRegStatesEx(StatesType type, WCHAR ch, RegExp::CaseSense cs){	if (cs == CASE_SENSE)		AddRegStates(type, ch, (RegStates)1 << (max_state + 1));	else {		AddRegStates(type, (WCHAR)CharLowerV((void *)ch), (RegStates)1 << (max_state + 1));		AddRegStates(type, (WCHAR)CharUpperV((void *)ch), (RegStates)1 << (max_state + 1));	}}BOOL RegExp::RegisterWildCard(const void *wild_str, RegExp::CaseSense cs){	if (max_state + lstrlenV(wild_str) > sizeof(RegStates) * BITS_OF_BYTE - 2)		return	FALSE;		// start & end 偺俀忬懺傪彍偄偨巆傝	AddEpStates(0, (RegStates)1 << ++max_state);	enum Mode { NORMAL, CHARCLASS } mode = NORMAL;	enum SubMode { DEFAULT, CC_START, CC_NORMAL, CC_RANGE } submode = DEFAULT;	int			start_state = max_state, escape = 0;	StatesType	type = NORMAL_TBL;	WCHAR		ch = 0, last_ch, start_ch, end_ch;	do {		last_ch = ch;		ch = lGetCharIncV(&wild_str);	// 0 傕暥枛敾掕暥帤偲偟偰搊榐		switch (escape) {		case 1:  escape = 2; break;		case 2:  escape = 0; break;		default: if (ch == '\\') { escape = 1; continue; }		}		if (mode == NORMAL) {			if (!escape) {				switch (ch) {				case '[':					mode = CHARCLASS;					submode = CC_START;					continue;				case '?':					AddEpStates(max_state, (RegStates)1 << (max_state + 1));					max_state++;					continue;				case '*':					AddEpStates(max_state, (RegStates)1 << (max_state + 0));					continue;				}			}			if (ch || escape || last_ch != '*') {	// '*' 偱廔椆偟偨応崌偼 '\0'				AddRegStatesEx(type, ch, cs);		// 傑偱妋擣偣偢偵敾掕廔椆偝偣傞				max_state++;			}		}		else {	// CHARCLASS mode			if (submode == CC_START) {				submode = CC_NORMAL;				end_ch = 0;				if ((ch == '^' || ch == '!') && !escape) {					type = REV_TBL;					continue;				}			}			else if (submode == CC_RANGE) {				while (start_ch <= ch) {					AddRegStatesEx(type, start_ch, cs);					start_ch++;				}				if (type == REV_TBL)					AddEpStates(max_state, (RegStates)1 << (max_state + 1));				submode = CC_NORMAL;				continue;			}			if (ch == ']' && !escape) {				mode = NORMAL;				type = NORMAL_TBL;				max_state++;				continue;			}			if (ch == '-' && !escape) {				submode = CC_RANGE;				start_ch = end_ch;				continue;			}			AddRegStatesEx(type, end_ch = ch, cs);			if (type == REV_TBL)				AddEpStates(max_state, (RegStates)1 << (max_state + 1));		}	} while (ch);	end_states |= (RegStates)1 << max_state;	return	TRUE;}BOOL RegExp::IsMatch(const void *target){	if (!epsilon_tbl)		return	FALSE;	RegStates	total_states = GetEpStates(1);	while ((total_states & end_states) == 0 && total_states) {		WCHAR	ch = lGetCharIncV(&target);		// 0 偼暥枛敾掕暥帤偲偟偰棙梡		total_states = ((total_states << 1) & GetRegStates(NORMAL_TBL, ch)) | (GetEpStates(total_states) & ~GetRegStates(REV_TBL, ch));		if (!ch)			break;	}	return	(total_states & end_states) ? TRUE : FALSE;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人深夜在线观看| 欧美三级蜜桃2在线观看| 91免费版pro下载短视频| 7777精品久久久大香线蕉| 国产亚洲精品免费| 亚洲成av人**亚洲成av**| 国产精品一二三区在线| 日韩午夜av一区| 一区二区三区在线播放| 福利电影一区二区| 欧美本精品男人aⅴ天堂| 亚洲男帅同性gay1069| 国产福利一区在线| 7777精品伊人久久久大香线蕉完整版 | 一区二区三区精品| 从欧美一区二区三区| 欧美mv日韩mv国产网站app| 婷婷中文字幕综合| 色综合天天综合网国产成人综合天| 欧美一级xxx| 国产成人a级片| 欧美日韩国产小视频在线观看| 国产精品欧美久久久久无广告 | 欧美性猛片aaaaaaa做受| 国产精品色哟哟| 国产成人啪午夜精品网站男同| 日韩网站在线看片你懂的| 亚洲成人手机在线| 欧美日韩国产综合一区二区三区| 亚洲精品美国一| 91美女片黄在线| 亚洲嫩草精品久久| 色综合色狠狠综合色| 成人免费在线播放视频| 99视频一区二区| 国产精品成人在线观看| 成人永久看片免费视频天堂| 欧美国产日产图区| 91在线视频播放| 一卡二卡三卡日韩欧美| 欧美日韩亚洲综合在线 欧美亚洲特黄一级 | 夜夜亚洲天天久久| 欧美性猛交xxxxxx富婆| 亚洲成人综合网站| 91精品国产综合久久久蜜臀粉嫩| 亚洲成人在线免费| 欧美电影免费观看高清完整版在线观看| 偷偷要91色婷婷| 日韩精品一区二区三区视频在线观看| 免费成人小视频| 国产偷国产偷亚洲高清人白洁 | 国产欧美中文在线| 97se亚洲国产综合自在线不卡| 亚洲视频综合在线| 欧美性生活久久| 日本欧美肥老太交大片| 欧美大度的电影原声| 国产精品自拍av| 伊人开心综合网| 欧美一区二区三区啪啪| 激情偷乱视频一区二区三区| 中文字幕二三区不卡| 91国模大尺度私拍在线视频| 日本不卡视频在线观看| 国产清纯美女被跳蛋高潮一区二区久久w | 国产精品美女一区二区三区| 色诱视频网站一区| 麻豆精品蜜桃视频网站| 中文字幕制服丝袜一区二区三区| 欧美性受xxxx黑人xyx性爽| 美国三级日本三级久久99| 国产亚洲精品aa午夜观看| 在线精品视频一区二区三四| 国产一区二区三区四区五区美女 | 五月婷婷激情综合| 久久久久久久综合色一本| 日本久久精品电影| 激情亚洲综合在线| 亚洲一区二区精品久久av| 久久久久久久免费视频了| 欧美午夜宅男影院| 成人午夜激情在线| 久久99久久99精品免视看婷婷| 亚洲欧洲成人精品av97| 日韩欧美一区二区在线视频| 99综合电影在线视频| 黄色成人免费在线| 日韩极品在线观看| 亚洲精品五月天| 国产精品视频免费看| 日韩一区二区三区观看| 欧美视频日韩视频在线观看| 国产69精品久久99不卡| 美女国产一区二区| 视频在线在亚洲| 亚洲女人的天堂| 欧美国产综合色视频| 精品欧美久久久| 欧美一区二区视频在线观看2020| 色婷婷综合久色| 波多野结衣在线aⅴ中文字幕不卡 波多野结衣在线一区 | 亚洲成人动漫在线观看| 国产欧美日韩在线观看| 精品久久久三级丝袜| 日韩欧美在线一区二区三区| 欧美精品三级日韩久久| 欧美在线不卡一区| 日本丰满少妇一区二区三区| 成人午夜在线播放| 国产激情一区二区三区四区| 久久精工是国产品牌吗| 久久激情五月婷婷| 美国毛片一区二区三区| 男人的j进女人的j一区| 奇米精品一区二区三区在线观看 | 一区二区高清视频在线观看| 亚洲情趣在线观看| 亚洲日本欧美天堂| 亚洲黄色性网站| 亚洲自拍偷拍麻豆| 亚洲成va人在线观看| 亚洲va韩国va欧美va精品| 亚洲va国产va欧美va观看| 日韩激情一二三区| 狠狠色丁香久久婷婷综合丁香| 国内精品写真在线观看| 国产精品18久久久久久久久 | 欧美综合亚洲图片综合区| 一本色道久久综合亚洲91| 91久久精品午夜一区二区| 欧美揉bbbbb揉bbbbb| 6080日韩午夜伦伦午夜伦| 日韩欧美www| 久久综合久久久久88| 中文字幕国产一区| 亚洲午夜久久久久| 久久精品国产一区二区| 国产精品原创巨作av| av一区二区三区四区| 欧美色老头old∨ideo| 欧美videos大乳护士334| 国产亚洲精品bt天堂精选| 日韩毛片精品高清免费| 污片在线观看一区二区| 国产一区二区三区四区在线观看| 成人激情免费视频| 欧美日韩极品在线观看一区| 日韩免费成人网| 国产精品成人免费精品自在线观看 | youjizz久久| 欧美日韩精品一二三区| 精品粉嫩超白一线天av| 亚洲欧美一区二区三区极速播放| 亚洲线精品一区二区三区| 国产曰批免费观看久久久| 日本电影欧美片| 久久久久久免费网| 午夜电影久久久| 懂色一区二区三区免费观看| 日本高清不卡在线观看| 久久精品人人爽人人爽| 亚洲aⅴ怡春院| 成人黄色小视频| 日韩一区二区三| 亚洲欧美偷拍另类a∨色屁股| 日韩和欧美一区二区三区| 波多野结衣亚洲一区| 精品久久久久久久久久久久久久久| 亚洲精品自拍动漫在线| 国产一区二区三区免费在线观看| 色94色欧美sute亚洲线路一久| 精品国产sm最大网站免费看| 亚洲va在线va天堂| 99视频在线精品| 久久久精品综合| 久久丁香综合五月国产三级网站 | 国产激情一区二区三区| 4438x成人网最大色成网站| 亚洲理论在线观看| 成人一级片在线观看| 欧美精品一区二区三区在线 | 亚洲色图视频免费播放| 激情成人综合网| 欧美一级一级性生活免费录像| 一区二区三区日韩欧美| 国产一级精品在线| 精品毛片乱码1区2区3区| 亚洲aaa精品| 欧美日本国产视频| 夜夜嗨av一区二区三区中文字幕 | 欧美国产精品一区二区| 免费高清在线一区| 91精品黄色片免费大全| 一区二区三区国产| 欧美天堂一区二区三区| 一区二区三区影院| 色婷婷国产精品久久包臀| 日韩理论电影院| 一本大道久久a久久综合| 亚洲图片欧美激情|