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

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

?? b.c

?? unix v7是最后一個廣泛發布的研究型UNIX版本
?? C
字號:
#include "awk.def"#include "stdio.h"#include "awk.h"extern node *op2();extern struct fa *cgotofn();#define MAXLIN 256#define NCHARS 128#define NSTATES 256#define type(v)	v->nobj#define left(v)	v->narg[0]#define right(v)	v->narg[1]#define parent(v)	v->nnext#define LEAF	case CCL: case NCCL: case CHAR: case DOT:#define UNARY	case FINAL: case STAR: case PLUS: case QUEST:/* encoding in tree nodes:	leaf (CCL, NCCL, CHAR, DOT): left is index, right contains value or pointer to value	unary (FINAL, STAR, PLUS, QUEST): left is child, right is null	binary (CAT, OR): left and right are children	parent contains pointer to parent*/struct fa {	int cch;	struct fa *st;};int	*state[NSTATES];int	*foll[MAXLIN];char	chars[MAXLIN];int	setvec[MAXLIN];node	*point[MAXLIN];int	setcnt;int	line;struct fa *makedfa(p)	/* returns dfa for tree pointed to by p */node *p;{	node *p1;	struct fa *fap;	p1 = op2(CAT, op2(STAR, op2(DOT, (node *) 0, (node *) 0), (node *) 0), p);		/* put DOT STAR in front of reg. exp. */	p1 = op2(FINAL, p1, (node *) 0);		/* install FINAL node */	line = 0;	penter(p1);	/* enter parent pointers and leaf indices */	point[line] = p1;	/* FINAL node */	setvec[0] = 1;		/* for initial DOT STAR */	cfoll(p1);	/* set up follow sets */	fap = cgotofn();	freetr(p1);	/* add this when alloc works */	return(fap);}penter(p)	/* set up parent pointers and leaf indices */node *p;{	switch(type(p)) {		LEAF			left(p) = (node *) line;			point[line++] = p;			break;		UNARY			penter(left(p));			parent(left(p)) = p;			break;		case CAT:		case OR:			penter(left(p));			penter(right(p));			parent(left(p)) = p;			parent(right(p)) = p;			break;		default:			error(FATAL, "unknown type %d in penter\n", type(p));			break;	}}freetr(p)	/* free parse tree and follow sets */node *p;{	switch(type(p)) {		LEAF			xfree(foll[(int) left(p)]);			xfree(p);			break;		UNARY			freetr(left(p));			xfree(p);			break;		case CAT:		case OR:			freetr(left(p));			freetr(right(p));			xfree(p);			break;		default:			error(FATAL, "unknown type %d in freetr", type(p));			break;	}}char *cclenter(p)register char *p;{	register i, c;	char *op;	op = p;	i = 0;	while ((c = *p++) != 0) {		if (c == '-' && i > 0 && chars[i-1] != 0) {			if (*p != 0) {				c = chars[i-1];				while (c < *p) {					if (i >= MAXLIN)						overflo();					chars[i++] = ++c;				}				p++;				continue;			}		}		if (i >= MAXLIN)			overflo();		chars[i++] = c;	}	chars[i++] = '\0';	dprintf("cclenter: in = |%s|, out = |%s|\n", op, chars, NULL);	xfree(op);	return(tostring(chars));}overflo(){	error(FATAL, "regular expression too long\n");}cfoll(v)		/* enter follow set of each leaf of vertex v into foll[leaf] */register node *v;{	register i;	int prev;	int *add();	switch(type(v)) {		LEAF			setcnt = 0;			for (i=1; i<=line; i++)				setvec[i] = 0;			follow(v);			if (notin(foll, ( (int) left(v))-1, &prev)) {				foll[(int) left(v)] = add(setcnt);			}			else				foll[ (int) left(v)] = foll[prev];			break;		UNARY			cfoll(left(v));			break;		case CAT:		case OR:			cfoll(left(v));			cfoll(right(v));			break;		default:			error(FATAL, "unknown type %d in cfoll", type(v));	}}first(p)			/* collects initially active leaves of p into setvec */register node *p;		/* returns 0 or 1 depending on whether p matches empty string */{	register b;	switch(type(p)) {		LEAF			if (setvec[(int) left(p)] != 1) {				setvec[(int) left(p)] = 1;				setcnt++;			}			if (type(p) == CCL && (*(char *) right(p)) == '\0')				return(0);		/* empty CCL */			else return(1);		case FINAL:		case PLUS:			if (first(left(p)) == 0) return(0);			return(1);		case STAR:		case QUEST:			first(left(p));			return(0);		case CAT:			if (first(left(p)) == 0 && first(right(p)) == 0) return(0);			return(1);		case OR:			b = first(right(p));			if (first(left(p)) == 0 || b == 0) return(0);			return(1);	}	error(FATAL, "unknown type %d in first\n", type(p));	return(-1);}follow(v)node *v;		/* collects leaves that can follow v into setvec */{	node *p;	if (type(v) == FINAL)		return;	p = parent(v);	switch (type(p)) {		case STAR:		case PLUS:	first(v);				follow(p);				return;		case OR:		case QUEST:	follow(p);				return;		case CAT:	if (v == left(p)) {	/* v is left child of p */					if (first(right(p)) == 0) {						follow(p);						return;					}				}				else		/* v is right child */					follow(p);				return;		case FINAL:	if (setvec[line] != 1) {					setvec[line] = 1;					setcnt++;				}				return;	}}member(c, s)	/* is c in s? */register char c, *s;{	while (*s)		if (c == *s++)			return(1);	return(0);}notin(array, n, prev)		/* is setvec in array[0] thru array[n]? */int **array;int *prev; {	register i, j;	int *ptr;	for (i=0; i<=n; i++) {		ptr = array[i];		if (*ptr == setcnt) {			for (j=0; j < setcnt; j++)				if (setvec[*(++ptr)] != 1) goto nxt;			*prev = i;			return(0);		}		nxt: ;	}	return(1);}int *add(n) {		/* remember setvec */	int *ptr, *p;	register i;	if ((p = ptr = (int *) malloc((n+1)*sizeof(int))) == NULL)		overflo();	*ptr = n;	dprintf("add(%d)\n", n, NULL, NULL);	for (i=1; i <= line; i++)		if (setvec[i] == 1) {			*(++ptr) = i;			dprintf("  ptr = %o, *ptr = %d, i = %d\n", ptr, *ptr, i);		}	dprintf("\n", NULL, NULL, NULL);	return(p);}struct fa *cgotofn(){	register i, k;	register int *ptr;	char c;	char *p;	node *cp;	int j, n, s, ind, numtrans;	int finflg;	int curpos, num, prev;	struct fa *where[NSTATES];	int fatab[257];	struct fa *pfa;	char index[MAXLIN];	char iposns[MAXLIN];	int sposns[MAXLIN];	int spmax, spinit;	char symbol[NCHARS];	char isyms[NCHARS];	char ssyms[NCHARS];	int ssmax, ssinit;	for (i=0; i<=line; i++) index[i] = iposns[i] = setvec[i] = 0;	for (i=0; i<NCHARS; i++)  isyms[i] = symbol[i] = 0;	setcnt = 0;	/* compute initial positions and symbols of state 0 */	ssmax = 0;	ptr = state[0] = foll[0];	spinit = *ptr;	for (i=0; i<spinit; i++) {		curpos = *(++ptr);		sposns[i] = curpos;		iposns[curpos] = 1;		cp = point[curpos];		dprintf("i = %d, spinit = %d, curpos = %d\n", i, spinit, curpos);		switch (type(cp)) {			case CHAR:				k = (int) right(cp);				if (isyms[k] != 1) {					isyms[k] = 1;					ssyms[ssmax++] = k;				}				break;			case DOT:				for (k=1; k<NCHARS; k++) {					if (k != HAT) {						if (isyms[k] != 1) {							isyms[k] = 1;							ssyms[ssmax++] = k;						}					}				}				break;			case CCL:				for (p = (char *) right(cp); *p; p++) {					if (*p != HAT) {						if (isyms[*p] != 1) {							isyms[*p] = 1;							ssyms[ssmax++] = *p;						}					}				}				break;			case NCCL:				for (k=1; k<NCHARS; k++) {					if (k != HAT && !member(k, (char *) right(cp))) {						if (isyms[k] != 1) {							isyms[k] = 1;							ssyms[ssmax++] = k;						}					}				}		}	}	ssinit = ssmax;	n = 0;	for (s=0; s<=n; s++)  {	dprintf("s = %d\n", s, NULL, NULL);		ind = 0;		numtrans = 0;		finflg = 0;		if (*(state[s] + *state[s]) == line) {		/* s final? */			finflg = 1;			goto tenter;		}		spmax = spinit;		ssmax = ssinit;		ptr = state[s];		num = *ptr;		for (i=0; i<num; i++) {			curpos = *(++ptr);			if (iposns[curpos] != 1 && index[curpos] != 1) {				index[curpos] = 1;				sposns[spmax++] = curpos;			}			cp = point[curpos];			switch (type(cp)) {				case CHAR:					k = (int) right(cp);					if (isyms[k] == 0 && symbol[k] == 0) {						symbol[k] = 1;						ssyms[ssmax++] = k;					}					break;				case DOT:					for (k=1; k<NCHARS; k++) {						if (k != HAT) {							if (isyms[k] == 0 && symbol[k] == 0) {								symbol[k] = 1;								ssyms[ssmax++] = k;							}						}					}					break;				case CCL:					for (p = (char *) right(cp); *p; p++) {						if (*p != HAT) {							if (isyms[*p] == 0 && symbol[*p] == 0) {								symbol[*p] = 1;								ssyms[ssmax++] = *p;							}						}					}					break;				case NCCL:					for (k=1; k<NCHARS; k++) {						if (k != HAT && !member(k, (char *) right(cp))) {							if (isyms[k] == 0 && symbol[k] == 0) {								symbol[k] = 1;								ssyms[ssmax++] = k;							}						}					}			}		}		for (j=0; j<ssmax; j++) {	/* nextstate(s, ssyms[j]) */			c = ssyms[j];			symbol[c] = 0;			setcnt = 0;			for (k=0; k<=line; k++) setvec[k] = 0;			for (i=0; i<spmax; i++) {				index[sposns[i]] = 0;				cp = point[sposns[i]];				if ((k = type(cp)) != FINAL)					if (k == CHAR && c == (int) right(cp)					 || k == DOT					 || k == CCL && member(c, (char *) right(cp))					 || k == NCCL && !member(c, (char *) right(cp))) {						ptr = foll[sposns[i]];						num = *ptr;						for (k=0; k<num; k++) {							if (setvec[*(++ptr)] != 1								&& iposns[*ptr] != 1) {								setvec[*ptr] = 1;								setcnt++;							}						}					}			} /* end nextstate */			if (notin(state, n, &prev)) {				if (n >= NSTATES) {					dprintf("cgotofn: notin; state = %d, n = %d\n", state, n, NULL);					overflo();				}				state[++n] = add(setcnt);				dprintf("	delta(%d,%o) = %d", s,c,n);				dprintf(", ind = %d\n", ind+1, NULL, NULL);				fatab[++ind] = c;				fatab[++ind] = n;				numtrans++;			}			else {				if (prev != 0) {					dprintf("	delta(%d,%o) = %d", s,c,prev);					dprintf(", ind = %d\n", ind+1, NULL, NULL);					fatab[++ind] = c;					fatab[++ind] = prev;					numtrans++;				}			}		}	tenter:		if ((pfa = (struct fa *) malloc((numtrans + 1) * sizeof(struct fa))) == NULL)			overflo();		where[s] = pfa;		if (finflg)			pfa->cch = -1;		/* s is a final state */		else			pfa->cch = numtrans;		pfa->st = 0;		for (i=1, pfa += 1; i<=numtrans; i++, pfa++) {			pfa->cch = fatab[2*i-1];			pfa->st = (struct fa *) fatab[2*i];		}	}	for (i=0; i<=n; i++) {		xfree(state[i]);	/* free state[i] */		pfa = where[i];		pfa->st = where[0];		dprintf("state %d: (%o)\n", i, pfa, NULL);		dprintf("	numtrans = %d,	default = %o\n", pfa->cch, pfa->st, NULL);		for (k=1; k<=pfa->cch; k++) {			(pfa+k)->st = where[ (int) (pfa+k)->st];			dprintf("	char = %o,	nextstate = %o\n",(pfa+k)->cch, (pfa+k)->st, NULL);		}	}	pfa = where[0];	if ((num = pfa->cch) < 0)		return(where[0]);	for (pfa += num; num; num--, pfa--)		if (pfa->cch == HAT) {			return(pfa->st);		}	return(where[0]);}match(pfa, p)register struct fa *pfa;register char *p;{	register count;	char c;	if (p == 0) return(0);	if (pfa->cch == 1) {		/* fast test for first character, if possible */		c = (++pfa)->cch;		do			if (c == *p) {				p++;				pfa = pfa->st;				goto adv;			}		while (*p++ != 0);		return(0);	}   adv: if ((count = pfa->cch) < 0) return(1);	do {		for (pfa += count; count; count--, pfa--)			if (pfa->cch == *p) {				break;			}		pfa = pfa->st;		if ((count = pfa->cch) < 0) return(1);	} while(*p++ != 0);	return(0);}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品成人在线观看| 精品国产91亚洲一区二区三区婷婷| 欧美日韩免费观看一区二区三区| 亚洲另类色综合网站| 一本色道久久综合亚洲aⅴ蜜桃| 亚洲视频一二三区| 色94色欧美sute亚洲13| 亚洲福利一区二区| 欧美一级欧美三级| 国产精品一级在线| 中文字幕一区免费在线观看| 色婷婷综合五月| 日韩国产欧美在线播放| 欧美电影免费观看高清完整版在| 国产精品一二三四区| 国产精品乱码一区二区三区软件| 色综合天天综合色综合av| 亚洲一区在线观看视频| 欧美一区欧美二区| 国产精品一区免费视频| 亚洲女人****多毛耸耸8| 欧美日韩国产免费一区二区| 久久99精品国产91久久来源| 国产精品毛片高清在线完整版| 欧美综合天天夜夜久久| 婷婷一区二区三区| 久久久精品天堂| 色婷婷综合久久久中文字幕| 奇米影视一区二区三区| 久久精品亚洲精品国产欧美kt∨| 91麻豆国产福利在线观看| 午夜精品免费在线观看| 久久久久久久综合日本| 91官网在线观看| 麻豆精品视频在线观看免费| 国产精品的网站| 制服丝袜在线91| 成人黄色av网站在线| 午夜免费欧美电影| 久久精品免费在线观看| 欧美中文一区二区三区| 韩国女主播一区| 一区二区成人在线| 26uuuu精品一区二区| 欧美做爰猛烈大尺度电影无法无天| 国产一区二区三区蝌蚪| 亚洲永久免费av| www国产成人| 欧美亚洲动漫制服丝袜| 国产精品一区二区免费不卡| 亚洲国产精品久久一线不卡| 久久久99精品免费观看不卡| 欧美在线一区二区| 成人综合在线观看| 调教+趴+乳夹+国产+精品| 国产精品热久久久久夜色精品三区 | 欧美成人艳星乳罩| 91免费视频大全| 国产一区二区视频在线播放| 亚洲成人免费看| 国产精品免费久久| 精品少妇一区二区三区免费观看| 日本乱码高清不卡字幕| 国产成人在线免费| 免费成人在线网站| 亚洲综合一区二区精品导航| 久久精品视频一区二区三区| 制服视频三区第一页精品| 一本大道av伊人久久综合| 国内精品在线播放| 视频一区二区不卡| 一区二区三区在线看| 国产女人aaa级久久久级| 日韩女同互慰一区二区| 欧美视频在线一区| 91免费国产在线| 国产成人av电影| 久久99精品视频| 视频一区二区欧美| 香港成人在线视频| 夜夜亚洲天天久久| 亚洲手机成人高清视频| 精品国产乱码久久久久久夜甘婷婷| 欧美日韩一卡二卡| 99re成人精品视频| 成人综合婷婷国产精品久久蜜臀| 久久99精品国产91久久来源| 免费在线看一区| 亚洲成人自拍一区| 亚洲精品高清在线观看| 亚洲欧美一区二区视频| 欧美国产日韩精品免费观看| 精品日韩一区二区三区免费视频| 欧美一区二视频| 欧美视频一区在线| 在线观看不卡视频| 欧亚洲嫩模精品一区三区| 色狠狠色狠狠综合| 91浏览器入口在线观看| 99久久亚洲一区二区三区青草| 粉嫩久久99精品久久久久久夜| 国产一区二区免费看| 国产自产高清不卡| 国内精品国产成人国产三级粉色| 久久爱另类一区二区小说| 日本不卡一区二区三区 | 久久精品99国产精品| 青椒成人免费视频| 久久精品72免费观看| 日韩va亚洲va欧美va久久| 日本伊人精品一区二区三区观看方式| 亚洲国产一二三| 亚洲一区二区在线免费观看视频| 亚洲最大的成人av| 亚洲一区二区三区在线播放| 亚洲国产日产av| 午夜视频久久久久久| 青青草精品视频| 精品亚洲porn| 国产成人精品免费一区二区| 国产69精品久久777的优势| 国产成人精品一区二区三区四区| 成人性生交大片免费看在线播放| 国产ts人妖一区二区| jiyouzz国产精品久久| 97成人超碰视| 色悠悠亚洲一区二区| 在线观看国产91| 日韩一区二区精品在线观看| 2023国产精品自拍| 中文在线资源观看网站视频免费不卡| 国产精品国产成人国产三级| 一区二区三区中文在线| 日韩经典中文字幕一区| 精彩视频一区二区三区| 国产91在线观看| 色婷婷综合久色| 日韩写真欧美这视频| 久久精品视频一区二区| 亚洲日本电影在线| 天天综合色天天| 日本人妖一区二区| 国产高清久久久| 91国产精品成人| 日韩美女在线视频| 国产精品欧美一级免费| 亚洲香蕉伊在人在线观| 美女视频一区二区| 国产精品一区二区无线| 91丨九色丨国产丨porny| 在线观看欧美精品| 欧美成人猛片aaaaaaa| 国产亚洲精品aa午夜观看| 中文字幕视频一区二区三区久| 亚洲sss视频在线视频| 美女视频黄 久久| 国产成人自拍高清视频在线免费播放| 99久久综合精品| 91精品欧美福利在线观看| 精品国产1区二区| 成人欧美一区二区三区1314| 亚洲综合小说图片| 亚洲国产成人av| 另类专区欧美蜜桃臀第一页| 成人中文字幕在线| 欧美在线影院一区二区| 国产午夜精品久久| 亚洲综合在线五月| 老司机一区二区| 99在线精品观看| 欧美成人艳星乳罩| 亚洲男同性视频| 毛片av一区二区| 国产一本一道久久香蕉| 欧美日韩视频在线观看一区二区三区 | 国产成人在线网站| 欧美怡红院视频| 在线不卡免费欧美| 中文字幕在线免费不卡| 午夜精品福利一区二区三区av| 久久成人久久鬼色| 在线日韩国产精品| 国产人成亚洲第一网站在线播放| 亚洲一区二区高清| 国产激情精品久久久第一区二区| 一本色道综合亚洲| 2019国产精品| 亚洲一区二区黄色| 成人免费视频app| 91麻豆精品国产91久久久更新时间 | 亚洲欧美一区二区三区极速播放| 日韩中文字幕1| 99久久免费精品| 久久久综合激的五月天| 亚洲风情在线资源站| 国产成人自拍在线| 欧美一区二区精品久久911| 一区二区三区不卡在线观看| 国产九色精品成人porny| 欧美日韩免费不卡视频一区二区三区|