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

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

?? research.cxx

?? porting scintilla to qt
?? CXX
?? 第 1 頁 / 共 2 頁
字號:
			i++;			if (*++p == '^') {				mask = '\377';				i++;				p++;			} else				mask = 0;			if (*p == '-') {	/* real dash */				i++;				prevChar = *p;				ChSet(*p++);			}			if (*p == ']') {	/* real brace */				i++;				prevChar = *p;				ChSet(*p++);			}			while (*p && *p != ']') {				if (*p == '-') {					if (prevChar < 0) {						// Previous def. was a char class like \d, take dash literally						prevChar = *p;						ChSet(*p);					} else if (*(p+1)) {						if (*(p+1) != ']') {							c1 = prevChar + 1;							i++;							c2 = *++p;							if (c2 == '\\') {								if (!*(p+1))	// End of RE									return badpat("Missing ]");								else {									i++;									p++;									int incr;									c2 = GetBackslashExpression(p, incr);									i += incr;									p += incr;									if (c2 >= 0) {										// Convention: \c (c is any char) is case sensitive, whatever the option										ChSet(static_cast<unsigned char>(c2));										prevChar = c2;									} else {										// bittab is already changed										prevChar = -1;									}								}							}							if (prevChar < 0) {								// Char after dash is char class like \d, take dash literally								prevChar = '-';								ChSet('-');							} else {								// Put all chars between c1 and c2 included in the char set								while (c1 <= c2) {									ChSetWithCase(static_cast<unsigned char>(c1++), caseSensitive);								}							}						} else {							// Dash before the ], take it literally							prevChar = *p;							ChSet(*p);						}					} else {						return badpat("Missing ]");					}				} else if (*p == '\\' && *(p+1)) {					i++;					p++;					int incr;					int c = GetBackslashExpression(p, incr);					i += incr;					p += incr;					if (c >= 0) {						// Convention: \c (c is any char) is case sensitive, whatever the option						ChSet(static_cast<unsigned char>(c));						prevChar = c;					} else {						// bittab is already changed						prevChar = -1;					}				} else {					prevChar = *p;					ChSetWithCase(*p, caseSensitive);				}				i++;				p++;			}			if (!*p)				return badpat("Missing ]");			for (n = 0; n < BITBLK; bittab[n++] = 0)				*mp++ = static_cast<char>(mask ^ bittab[n]);			break;		case '*':               /* match 0 or more... */		case '+':               /* match 1 or more... */			if (p == pat)				return badpat("Empty closure");			lp = sp;		/* previous opcode */			if (*lp == CLO)		/* equivalence... */				break;			switch (*lp) {			case BOL:			case BOT:			case EOT:			case BOW:			case EOW:			case REF:				return badpat("Illegal closure");			default:				break;			}			if (*p == '+')				for (sp = mp; lp < sp; lp++)					*mp++ = *lp;			*mp++ = END;			*mp++ = END;			sp = mp;			while (--mp > lp)				*mp = mp[-1];			*mp = CLO;			mp = sp;			break;		case '\\':              /* tags, backrefs... */			i++;			switch (*++p) {			case '<':				*mp++ = BOW;				break;			case '>':				if (*sp == BOW)					return badpat("Null pattern inside \\<\\>");				*mp++ = EOW;				break;			case '1':			case '2':			case '3':			case '4':			case '5':			case '6':			case '7':			case '8':			case '9':				n = *p-'0';				if (tagi > 0 && tagstk[tagi] == n)					return badpat("Cyclical reference");				if (tagc > n) {					*mp++ = static_cast<char>(REF);					*mp++ = static_cast<char>(n);				} else					return badpat("Undetermined reference");				break;			default:				if (!posix && *p == '(') {					if (tagc < MAXTAG) {						tagstk[++tagi] = tagc;						*mp++ = BOT;						*mp++ = static_cast<char>(tagc++);					} else						return badpat("Too many \\(\\) pairs");				} else if (!posix && *p == ')') {					if (*sp == BOT)						return badpat("Null pattern inside \\(\\)");					if (tagi > 0) {						*mp++ = static_cast<char>(EOT);						*mp++ = static_cast<char>(tagstk[tagi--]);					} else						return badpat("Unmatched \\)");				} else {					int incr;					int c = GetBackslashExpression(p, incr);					i += incr;					p += incr;					if (c >= 0) {						*mp++ = CHR;						*mp++ = static_cast<unsigned char>(c);					} else {						*mp++ = CCL;						mask = 0;						for (n = 0; n < BITBLK; bittab[n++] = 0)							*mp++ = static_cast<char>(mask ^ bittab[n]);					}				}			}			break;		default :               /* an ordinary char */			if (posix && *p == '(') {				if (tagc < MAXTAG) {					tagstk[++tagi] = tagc;					*mp++ = BOT;					*mp++ = static_cast<char>(tagc++);				} else					return badpat("Too many () pairs");			} else if (posix && *p == ')') {				if (*sp == BOT)					return badpat("Null pattern inside ()");				if (tagi > 0) {					*mp++ = static_cast<char>(EOT);					*mp++ = static_cast<char>(tagstk[tagi--]);				} else					return badpat("Unmatched )");			} else {				unsigned char c = *p;				if (!c)	// End of RE					c = '\\';	// We take it as raw backslash				if (caseSensitive || !iswordc(c)) {					*mp++ = CHR;					*mp++ = c;				} else {					*mp++ = CCL;					mask = 0;					ChSetWithCase(c, false);					for (n = 0; n < BITBLK; bittab[n++] = 0)						*mp++ = static_cast<char>(mask ^ bittab[n]);				}			}			break;		}		sp = lp;	}	if (tagi > 0)		return badpat((posix ? "Unmatched (" : "Unmatched \\("));	*mp = END;	sta = OKP;	return 0;}/* * RESearch::Execute: *   execute nfa to find a match. * *  special cases: (nfa[0]) *      BOL *          Match only once, starting from the *          beginning. *      CHR *          First locate the character without *          calling PMatch, and if found, call *          PMatch for the remaining string. *      END *          RESearch::Compile failed, poor luser did not *          check for it. Fail fast. * *  If a match is found, bopat[0] and eopat[0] are set *  to the beginning and the end of the matched fragment, *  respectively. * */int RESearch::Execute(CharacterIndexer &ci, int lp, int endp) {	unsigned char c;	int ep = NOTFOUND;	char *ap = nfa;	bol = lp;	failure = 0;	Clear();	switch (*ap) {	case BOL:			/* anchored: match from BOL only */		ep = PMatch(ci, lp, endp, ap);		break;	case EOL:			/* just searching for end of line normal path doesn't work */		if (*(ap+1) == END) {			lp = endp;			ep = lp;			break;		} else {			return 0;		}	case CHR:			/* ordinary char: locate it fast */		c = *(ap+1);		while ((lp < endp) && (ci.CharAt(lp) != c))			lp++;		if (lp >= endp)	/* if EOS, fail, else fall thru. */			return 0;	default:			/* regular matching all the way. */		while (lp < endp) {			ep = PMatch(ci, lp, endp, ap);			if (ep != NOTFOUND)				break;			lp++;		}		break;	case END:			/* munged automaton. fail always */		return 0;	}	if (ep == NOTFOUND)		return 0;	bopat[0] = lp;	eopat[0] = ep;	return 1;}/* * PMatch: internal routine for the hard part * *  This code is partly snarfed from an early grep written by *  David Conroy. The backref and tag stuff, and various other *  innovations are by oz. * *  special case optimizations: (nfa[n], nfa[n+1]) *      CLO ANY *          We KNOW .* will match everything upto the *          end of line. Thus, directly go to the end of *          line, without recursive PMatch calls. As in *          the other closure cases, the remaining pattern *          must be matched by moving backwards on the *          string recursively, to find a match for xy *          (x is ".*" and y is the remaining pattern) *          where the match satisfies the LONGEST match for *          x followed by a match for y. *      CLO CHR *          We can again scan the string forward for the *          single char and at the point of failure, we *          execute the remaining nfa recursively, same as *          above. * *  At the end of a successful match, bopat[n] and eopat[n] *  are set to the beginning and end of subpatterns matched *  by tagged expressions (n = 1 to 9). */extern void re_fail(char *,char);#define isinset(x,y)	((x)[((y)&BLKIND)>>3] & bitarr[(y)&BITIND])/* * skip values for CLO XXX to skip past the closure */#define ANYSKIP 2 	/* [CLO] ANY END          */#define CHRSKIP 3	/* [CLO] CHR chr END      */#define CCLSKIP 34	/* [CLO] CCL 32 bytes END */int RESearch::PMatch(CharacterIndexer &ci, int lp, int endp, char *ap) {	int op, c, n;	int e;		/* extra pointer for CLO  */	int bp;		/* beginning of subpat... */	int ep;		/* ending of subpat...    */	int are;	/* to save the line ptr.  */	while ((op = *ap++) != END)		switch (op) {		case CHR:			if (ci.CharAt(lp++) != *ap++)				return NOTFOUND;			break;		case ANY:			if (lp++ >= endp)				return NOTFOUND;			break;		case CCL:			c = ci.CharAt(lp++);			if (!isinset(ap,c))				return NOTFOUND;			ap += BITBLK;			break;		case BOL:			if (lp != bol)				return NOTFOUND;			break;		case EOL:			if (lp < endp)				return NOTFOUND;			break;		case BOT:			bopat[*ap++] = lp;			break;		case EOT:			eopat[*ap++] = lp;			break; 		case BOW:			if (lp!=bol && iswordc(ci.CharAt(lp-1)) || !iswordc(ci.CharAt(lp)))				return NOTFOUND;			break;		case EOW:			if (lp==bol || !iswordc(ci.CharAt(lp-1)) || iswordc(ci.CharAt(lp)))				return NOTFOUND;			break;		case REF:			n = *ap++;			bp = bopat[n];			ep = eopat[n];			while (bp < ep)				if (ci.CharAt(bp++) != ci.CharAt(lp++))					return NOTFOUND;			break;		case CLO:			are = lp;			switch (*ap) {			case ANY:				while (lp < endp)					lp++;				n = ANYSKIP;				break;			case CHR:				c = *(ap+1);				while ((lp < endp) && (c == ci.CharAt(lp)))					lp++;				n = CHRSKIP;				break;			case CCL:				while ((lp < endp) && isinset(ap+1,ci.CharAt(lp)))					lp++;				n = CCLSKIP;				break;			default:				failure = true;				//re_fail("closure: bad nfa.", *ap);				return NOTFOUND;			}			ap += n;			while (lp >= are) {				if ((e = PMatch(ci, lp, endp, ap)) != NOTFOUND)					return e;				--lp;			}			return NOTFOUND;		default:			//re_fail("RESearch::Execute: bad nfa.", static_cast<char>(op));			return NOTFOUND;		}	return lp;}/* * RESearch::Substitute: *  substitute the matched portions of the src in dst. * *  &    substitute the entire matched pattern. * *  \digit  substitute a subpattern, with the given tag number. *      Tags are numbered from 1 to 9. If the particular *      tagged subpattern does not exist, null is substituted. */int RESearch::Substitute(CharacterIndexer &ci, char *src, char *dst) {	unsigned char c;	int  pin;	int bp;	int ep;	if (!*src || !bopat[0])		return 0;	while ((c = *src++) != 0) {		switch (c) {		case '&':			pin = 0;			break;		case '\\':			c = *src++;			if (c >= '0' && c <= '9') {				pin = c - '0';				break;			}		default:			*dst++ = c;			continue;		}		if ((bp = bopat[pin]) != 0 && (ep = eopat[pin]) != 0) {			while (ci.CharAt(bp) && bp < ep)				*dst++ = ci.CharAt(bp++);			if (bp < ep)				return 0;		}	}	*dst = '\0';	return 1;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91美女福利视频| 色老头久久综合| 99久久精品国产导航| 欧美视频在线一区二区三区| www国产精品av| 亚洲一区二区三区四区在线免费观看 | 夜夜夜精品看看| 久久成人精品无人区| 97久久超碰国产精品电影| 欧美一区二区精美| 中文字幕中文在线不卡住| 日韩中文字幕亚洲一区二区va在线 | 亚洲国产sm捆绑调教视频| 国产一区二区视频在线| 欧美日本一道本| 国产精品久久久99| 国产乱人伦精品一区二区在线观看| 色婷婷久久久综合中文字幕 | 欧美大片国产精品| 中文字幕中文乱码欧美一区二区| 久久福利视频一区二区| 这里只有精品免费| 天天色天天操综合| 欧洲色大大久久| 综合电影一区二区三区 | 国产美女在线观看一区| 777奇米成人网| 亚洲无线码一区二区三区| 成人h动漫精品一区二区 | 欧美图片一区二区三区| 国产精品萝li| 成人午夜av在线| 国产欧美一区二区三区鸳鸯浴| 蜜桃久久久久久久| 欧美一区二区三区啪啪| 日韩和欧美的一区| 91精品国产品国语在线不卡| 首页欧美精品中文字幕| 欧美精品tushy高清| 亚洲123区在线观看| 欧洲一区二区av| 午夜精品成人在线视频| 欧美三级韩国三级日本三斤| 亚洲高清免费视频| 51久久夜色精品国产麻豆| 天天操天天干天天综合网| 欧美群妇大交群中文字幕| 午夜精品久久久久久久久| 在线成人小视频| 日韩精品一卡二卡三卡四卡无卡| 欧美一区二区三区视频免费播放| 日韩成人午夜电影| xnxx国产精品| 成人性视频免费网站| 亚洲视频在线观看三级| 在线免费观看成人短视频| 亚洲成人资源在线| 精品精品国产高清一毛片一天堂| 国产大陆精品国产| 国产精品成人一区二区三区夜夜夜| 色综合天天性综合| 国产一区激情在线| 国产精品久久久久久久久图文区| 91亚洲精品久久久蜜桃网站| 亚洲第一搞黄网站| 久久日韩粉嫩一区二区三区 | www.日韩av| 亚洲成人激情自拍| 久久久精品国产免大香伊 | 国产精品无遮挡| 欧美日韩视频在线第一区| 久久er精品视频| 中文字幕日韩一区二区| 欧美电影在线免费观看| 国产精品 欧美精品| 亚洲高清在线视频| 国产丝袜美腿一区二区三区| 欧美无乱码久久久免费午夜一区| 精品亚洲aⅴ乱码一区二区三区| 亚洲欧美在线视频| 欧美大片一区二区| 欧美亚洲国产一区二区三区| 国产一区二区精品久久| 一区二区成人在线观看| 久久日韩粉嫩一区二区三区| 欧美吞精做爰啪啪高潮| 成人激情动漫在线观看| 日韩国产精品久久| 亚洲少妇最新在线视频| 久久综合五月天婷婷伊人| 欧美在线看片a免费观看| 国产不卡视频在线观看| 日韩电影在线一区二区| 综合网在线视频| 久久久久国色av免费看影院| 欧美乱妇20p| 色乱码一区二区三区88| 国内精品国产三级国产a久久| 依依成人精品视频| 国产精品传媒入口麻豆| 国产午夜亚洲精品理论片色戒| 91精品国产一区二区三区| 在线观看中文字幕不卡| 成人av免费在线播放| 韩国成人在线视频| 视频一区在线播放| 亚洲一区二区三区四区五区中文| 欧美激情综合五月色丁香小说| 日韩精品一区二区三区中文不卡 | 欧美日韩国产天堂| 色综合久久综合网97色综合| 成人成人成人在线视频| 国产suv精品一区二区6| 韩国精品主播一区二区在线观看 | 亚洲日本va在线观看| 中文一区二区在线观看| 久久精品视频免费观看| 精品福利一二区| 日韩欧美成人激情| 欧美大胆人体bbbb| 欧美一级免费观看| 日韩一区二区在线观看视频| 欧美日韩dvd在线观看| 欧美伦理影视网| 日韩一级大片在线观看| 日韩一区二区精品在线观看| 日韩一区二区三区视频在线 | 国产精品综合av一区二区国产馆| 免费观看在线色综合| 麻豆成人久久精品二区三区红| 奇米一区二区三区| 久久av资源站| 国产风韵犹存在线视精品| 成人在线综合网站| 99免费精品视频| 91成人在线观看喷潮| 欧美另类z0zxhd电影| 日韩一区二区在线观看视频播放| 欧美电影精品一区二区| 国产女主播在线一区二区| 中文字幕一区二区三区乱码在线| 亚洲免费观看高清完整| 亚洲福利一区二区| 九九九久久久精品| 成年人网站91| 欧美男女性生活在线直播观看 | 欧美主播一区二区三区| 欧美老女人第四色| 久久久精品黄色| 亚洲伦在线观看| 日韩在线一区二区| 国产成人午夜高潮毛片| 91行情网站电视在线观看高清版| 制服丝袜一区二区三区| 国产欧美久久久精品影院| 亚洲一区自拍偷拍| 久久精品二区亚洲w码| 99久久婷婷国产综合精品电影| 欧美日韩激情一区二区三区| 精品国产伦一区二区三区观看体验 | 久久综合久久99| 亚洲精品少妇30p| 九九视频精品免费| 91国内精品野花午夜精品| 日韩欧美一级在线播放| 亚洲视频一区在线观看| 激情综合网av| 欧美日韩精品一区二区在线播放| 久久影院电视剧免费观看| 亚洲一区二区五区| 成人免费毛片a| 欧美一区二区久久久| 亚洲欧美视频在线观看视频| 久久99精品国产.久久久久久| 91久久精品日日躁夜夜躁欧美| 久久免费国产精品| 天堂一区二区在线免费观看| 99久久精品国产一区二区三区| 精品国产a毛片| 亚洲成av人片www| 99久久婷婷国产| 亚洲国产激情av| 国内一区二区在线| 91精品国产综合久久久久| 亚洲猫色日本管| 成人激情黄色小说| 国产亚洲欧美日韩在线一区| 视频一区国产视频| 在线精品视频一区二区三四 | 一区二区在线观看不卡| 国产91露脸合集magnet| 久久午夜羞羞影院免费观看| 免费成人在线观看视频| 在线不卡a资源高清| 一区二区三区波多野结衣在线观看 | 亚洲一级片在线观看| av亚洲精华国产精华精华| 久久精品在线免费观看| 国产精品一区二区黑丝| 久久久亚洲高清|