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

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

?? regcomp.c

?? vxworks的完整的源代碼
?? C
?? 第 1 頁 / 共 4 頁
字號:
/* regcomp.c - regular expression handling *//*modification history--------------------01e,13apr98,wmd   changed name of regcomp to wtxRegComp for HOSTs.01e,23mar98,fle  warnings eradication01d,30sep96,elp   put in share, adapted to be compiled on target side		  (SPR# 6775).01c,10jul96,pad   undefined redefinition of malloc (AIX specific).01b,20mar95,p_m   moved #include "host.h" on top of includes list, this is		  necessary on Windows platforms.		  changed #include <regex.h> to #include "regex.h".01a,10jan95,jcf   created.*//*DESCRIPTIONThis library is *not* the original BSD distribution.  Though the changeswere completely cosmetic (file naming, and such), the user of this libraryis forewarned.AUTHOR: Henry Spencer*//*- * Copyright (c) 1992, 1993, 1994 Henry Spencer. * Copyright (c) 1992, 1993, 1994 *	The Regents of the University of California.  All rights reserved. * * This code is derived from software contributed to Berkeley by * Henry Spencer. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright *    notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright *    notice, this list of conditions and the following disclaimer in the *    documentation and/or other materials provided with the distribution. * 3. All advertising materials mentioning features or use of this software *    must display the following acknowledgement: *	This product includes software developed by the University of *	California, Berkeley and its contributors. * 4. Neither the name of the University nor the names of its contributors *    may be used to endorse or promote products derived from this software *    without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * *	@(#)regcomp.c	8.5 (Berkeley) 3/20/94 */#if defined(LIBC_SCCS) && !defined(lint)static char sccsid[] = "@(#)regcomp.c	8.5 (Berkeley) 3/20/94";#endif /* LIBC_SCCS and not lint */#ifdef HOST#include "host.h"#if defined(RS6000_AIX4) || defined (RS6000_AIX3)#undef malloc#endif#include <sys/types.h>#include <stdio.h>#include <string.h>#include <ctype.h>#include <limits.h>#include <stdlib.h>#else#include "vxWorks.h"#include "stdio.h"#include "string.h"#include "ctype.h"#include "limits.h"#include "stdlib.h"#endif /* HOST */#include "regex.h"#include "regex2.h"/* character-class table */static struct cclass {	char *name;	char *chars;	char *multis;} cclasses[] = {	{"alnum",	"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\0123456789",				""},	{"alpha",	"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",					""},	{"blank",	" \t",		""},	{"cntrl",	"\007\b\t\n\v\f\r\1\2\3\4\5\6\16\17\20\21\22\23\24\\25\26\27\30\31\32\33\34\35\36\37\177",	""},	{"digit",	"0123456789",	""},	{"graph",	"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\0123456789!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~", ""},	{"lower",	"abcdefghijklmnopqrstuvwxyz", ""},	{"print",	"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\0123456789!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~ ", ""},	{"punct",	"!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~", ""},	{"space",	"\t\n\v\f\r ",	""},	{"upper",	"ABCDEFGHIJKLMNOPQRSTUVWXYZ", ""},	{"xdigit",	"0123456789ABCDEFabcdef", ""},	{NULL,		0,		""}};/* character-name table */static struct cname {	char *name;	char code;} cnames[] = {	{"NUL",	'\0'},	{"SOH",	'\001'},	{"STX",	'\002'},	{"ETX",	'\003'},	{"EOT",	'\004'},	{"ENQ",	'\005'},	{"ACK",	'\006'},	{"BEL",	'\007'},	{"alert",	'\007'},	{"BS",		'\010'},	{"backspace",	'\b'},	{"HT",		'\011'},	{"tab",		'\t'},	{"LF",		'\012'},	{"newline",	'\n'},	{"VT",		'\013'},	{"vertical-tab",	'\v'},	{"FF",		'\014'},	{"form-feed",	'\f'},	{"CR",		'\015'},	{"carriage-return",	'\r'},	{"SO",	'\016'},	{"SI",	'\017'},	{"DLE",	'\020'},	{"DC1",	'\021'},	{"DC2",	'\022'},	{"DC3",	'\023'},	{"DC4",	'\024'},	{"NAK",	'\025'},	{"SYN",	'\026'},	{"ETB",	'\027'},	{"CAN",	'\030'},	{"EM",	'\031'},	{"SUB",	'\032'},	{"ESC",	'\033'},	{"IS4",	'\034'},	{"FS",	'\034'},	{"IS3",	'\035'},	{"GS",	'\035'},	{"IS2",	'\036'},	{"RS",	'\036'},	{"IS1",	'\037'},	{"US",	'\037'},	{"space",		' '},	{"exclamation-mark",	'!'},	{"quotation-mark",	'"'},	{"number-sign",		'#'},	{"dollar-sign",		'$'},	{"percent-sign",		'%'},	{"ampersand",		'&'},	{"apostrophe",		'\''},	{"left-parenthesis",	'('},	{"right-parenthesis",	')'},	{"asterisk",	'*'},	{"plus-sign",	'+'},	{"comma",	','},	{"hyphen",	'-'},	{"hyphen-minus",	'-'},	{"period",	'.'},	{"full-stop",	'.'},	{"slash",	'/'},	{"solidus",	'/'},	{"zero",		'0'},	{"one",		'1'},	{"two",		'2'},	{"three",	'3'},	{"four",		'4'},	{"five",		'5'},	{"six",		'6'},	{"seven",	'7'},	{"eight",	'8'},	{"nine",		'9'},	{"colon",	':'},	{"semicolon",	';'},	{"less-than-sign",	'<'},	{"equals-sign",		'='},	{"greater-than-sign",	'>'},	{"question-mark",	'?'},	{"commercial-at",	'@'},	{"left-square-bracket",	'['},	{"backslash",		'\\'},	{"reverse-solidus",	'\\'},	{"right-square-bracket",	']'},	{"circumflex",		'^'},	{"circumflex-accent",	'^'},	{"underscore",		'_'},	{"low-line",		'_'},	{"grave-accent",		'`'},	{"left-brace",		'{'},	{"left-curly-bracket",	'{'},	{"vertical-line",	'|'},	{"right-brace",		'}'},	{"right-curly-bracket",	'}'},	{"tilde",		'~'},	{"DEL",	'\177'},	{NULL,	0}};/* * parse structure, passed up and down to avoid global variables and * other clumsinesses */struct parse {	char *next;		/* next character in RE */	char *end;		/* end of string (-> NUL normally) */	int error;		/* has an error been seen? */	sop *strip;		/* malloced strip */	sopno ssize;		/* malloced strip size (allocated) */	sopno slen;		/* malloced strip length (used) */	int ncsalloc;		/* number of csets allocated */	struct re_guts *g;#	define	NPAREN	10	/* we need to remember () 1-9 for back refs */	sopno pbegin[NPAREN];	/* -> ( ([0] unused) */	sopno pend[NPAREN];	/* -> ) ([0] unused) */};/* ========= begin header generated by ./mkh ========= */#ifdef __cplusplusextern "C" {#endif/* === regcomp.c === */static void p_ere __P((struct parse *p, int stop));static void p_ere_exp __P((struct parse *p));static void p_str __P((struct parse *p));static void p_bre __P((struct parse *p, int end1, int end2));static int p_simp_re __P((struct parse *p, int starordinary));static int p_count __P((struct parse *p));static void p_bracket __P((struct parse *p));static void p_b_term __P((struct parse *p, cset *cs));static void p_b_cclass __P((struct parse *p, cset *cs));static void p_b_eclass __P((struct parse *p, cset *cs));static char p_b_symbol __P((struct parse *p));static char p_b_coll_elem __P((struct parse *p, int endc));static char othercase __P((int ch));static void bothcases __P((struct parse *p, int ch));static void ordinary __P((struct parse *p, int ch));static void nonnewline __P((struct parse *p));static void repeat __P((struct parse *p, sopno start, int from, int to));static int seterr __P((struct parse *p, int e));static cset *allocset __P((struct parse *p));static void freeset __P((struct parse *p, cset *cs));static int freezeset __P((struct parse *p, cset *cs));static int firstch __P((struct parse *p, cset *cs));static int nch __P((struct parse *p, cset *cs));static void mcadd __P((struct parse *p, cset *cs, char *cp));#if 0 		/* XXX jcf: not used! */static void mcsub __P((cset *cs, char *cp));static int mcin __P((cset *cs, char *cp));static char *mcfind __P((cset *cs, char *cp));#endif 		/* XXX jcf: not used! */static void mcinvert __P((struct parse *p, cset *cs));static void mccase __P((struct parse *p, cset *cs));static int isinsets __P((struct re_guts *g, int c));static int samesets __P((struct re_guts *g, int c1, int c2));static void categorize __P((struct parse *p, struct re_guts *g));static sopno dupl __P((struct parse *p, sopno start, sopno finish));static void doemit __P((struct parse *p, sop op, size_t opnd));static void doinsert __P((struct parse *p, sop op, size_t opnd, sopno pos));static void dofwd __P((struct parse *p, sopno pos, sop value));static void enlarge __P((struct parse *p, sopno size));static void stripsnug __P((struct parse *p, struct re_guts *g));static void findmust __P((struct parse *p, struct re_guts *g));static sopno pluscount __P((struct parse *p, struct re_guts *g));#ifdef __cplusplus}#endif/* ========= end header generated by ./mkh ========= */static char nuls[10];		/* place to point scanner in event of error *//* * macros for use with parse structure * BEWARE:  these know that the parse structure is named `p' !!! */#define	PEEK()	(*p->next)#define	PEEK2()	(*(p->next+1))#define	MORE()	(p->next < p->end)#define	MORE2()	(p->next+1 < p->end)#define	SEE(c)	(MORE() && PEEK() == (c))#define	SEETWO(a, b)	(MORE() && MORE2() && PEEK() == (a) && PEEK2() == (b))#define	EAT(c)	((SEE(c)) ? (NEXT(), 1) : 0)#define	EATTWO(a, b)	((SEETWO(a, b)) ? (NEXT2(), 1) : 0)#define	NEXT()	(p->next++)#define	NEXT2()	(p->next += 2)#define	NEXTn(n)	(p->next += (n))#define	GETNEXT()	(*p->next++)#define	SETERROR(e)	seterr(p, (e))#define	REQUIRE(co, e)	(void)((co) || SETERROR(e))#define	MUSTSEE(c, e)	(REQUIRE(MORE() && PEEK() == (c), e))#define	MUSTEAT(c, e)	(REQUIRE(MORE() && GETNEXT() == (c), e))#define	MUSTNOTSEE(c, e)	(REQUIRE(!MORE() || PEEK() != (c), e))#define	EMIT(op, sopnd)	doemit(p, (sop)(op), (size_t)(sopnd))#define	INSERT(op, pos)	doinsert(p, (sop)(op), HERE()-(pos)+1, pos)#define	AHEAD(pos)		dofwd(p, pos, HERE()-(pos))#define	ASTERN(sop, pos)	EMIT(sop, HERE()-pos)#define	HERE()		(p->slen)#define	THERE()		(p->slen - 1)#define	THERETHERE()	(p->slen - 2)#define	DROP(n)	(p->slen -= (n))#ifndef NDEBUGstatic int never = 0;		/* for use in asserts; shuts lint up */#else#define	never	0		/* some <assert.h>s have bugs too */#endif/* - regcomp - interface for parser and compilation = extern int regcomp(regex_t *, const char *, int); = #define	REG_BASIC	0000 = #define	REG_EXTENDED	0001 = #define	REG_ICASE	0002 = #define	REG_NOSUB	0004 = #define	REG_NEWLINE	0010 = #define	REG_NOSPEC	0020 = #define	REG_PEND	0040 = #define	REG_DUMP	0200 */int				/* 0 success, otherwise REG_something */#ifdef HOSTwtxRegComp(preg, pattern, cflags)#elseregcomp(preg, pattern, cflags)#endifregex_t *preg;const char *pattern;int cflags;{	struct parse pa;	register struct re_guts *g;	register struct parse *p = &pa;	register int i;	register size_t len;#ifdef REDEBUG#	define	GOODFLAGS(f)	(f)#else#	define	GOODFLAGS(f)	((f)&~REG_DUMP)#endif	cflags = GOODFLAGS(cflags);	if ((cflags&REG_EXTENDED) && (cflags&REG_NOSPEC))		return(REG_INVARG);	if (cflags&REG_PEND) {		if (preg->re_endp < pattern)			return(REG_INVARG);		len = preg->re_endp - pattern;	} else		len = strlen((char *)pattern);	/* do the mallocs early so failure handling is easy */	g = (struct re_guts *)malloc(sizeof(struct re_guts) +							(NC-1)*sizeof(cat_t));	if (g == NULL)		return(REG_ESPACE);	p->ssize = len/(size_t)2*(size_t)3 + (size_t)1;	/* ugh */	p->strip = (sop *)malloc(p->ssize * sizeof(sop));	p->slen = 0;	if (p->strip == NULL) {		free((char *)g);		return(REG_ESPACE);	}	/* set things up */	p->g = g;	p->next = (char *)pattern;	/* convenience; we do not modify it */	p->end = p->next + len;	p->error = 0;	p->ncsalloc = 0;	for (i = 0; i < NPAREN; i++) {		p->pbegin[i] = 0;		p->pend[i] = 0;	}	g->csetsize = NC;	g->sets = NULL;	g->setbits = NULL;	g->ncsets = 0;	g->cflags = cflags;	g->iflags = 0;	g->nbol = 0;	g->neol = 0;	g->must = NULL;	g->mlen = 0;	g->nsub = 0;	g->ncategories = 1;	/* category 0 is "everything else" */	g->categories = &g->catspace[-(CHAR_MIN)];	(void) memset((char *)g->catspace, 0, NC*sizeof(cat_t));	g->backrefs = 0;	/* do it */	EMIT(OEND, 0);	g->firststate = THERE();	if (cflags&REG_EXTENDED)		p_ere(p, OUT);	else if (cflags&REG_NOSPEC)		p_str(p);	else		p_bre(p, OUT, OUT);	EMIT(OEND, 0);	g->laststate = THERE();	/* tidy up loose ends and fill things in */	categorize(p, g);	stripsnug(p, g);	findmust(p, g);	g->nplus = pluscount(p, g);	g->magic = MAGIC2;	preg->re_nsub = g->nsub;	preg->re_g = g;	preg->re_magic = MAGIC1;#ifndef REDEBUG	/* not debugging, so can't rely on the assert() in regexec() */	if (g->iflags&BAD)		SETERROR(REG_ASSERT);#endif	/* win or lose, we're done */	if (p->error != 0)	/* lose */#ifdef HOST		wtxRegFree (preg);#else		regfree(preg);#endif /* HOST */	return(p->error);}/* - p_ere - ERE parser top level, concatenation and alternation == static void p_ere(register struct parse *p, int stop); */static voidp_ere(p, stop)register struct parse *p;int stop;			/* character this ERE should end at */{	register char c;	register sopno prevback = 0;	register sopno prevfwd = 0;	register sopno conc;	register int first = 1;		/* is this the first alternative? */	for (;;) {

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲成人动漫精品| 国产精品久线在线观看| 视频一区二区欧美| 欧美久久久影院| 蜜臀久久99精品久久久久久9| 欧美一级理论性理论a| 久久精品久久久精品美女| 欧美成人乱码一区二区三区| 国产精品亚洲一区二区三区在线| 国产午夜精品一区二区三区视频| 成人av集中营| 亚洲国产aⅴ天堂久久| 日韩一区二区中文字幕| 狠狠v欧美v日韩v亚洲ⅴ| 国产精品色婷婷久久58| 欧美亚洲尤物久久| 精品一区二区在线视频| 国产精品久久久久久久岛一牛影视 | 精品国产伦一区二区三区免费| 捆绑紧缚一区二区三区视频| 国产亚洲成av人在线观看导航| 色一情一乱一乱一91av| 日本aⅴ亚洲精品中文乱码| 国产视频一区在线播放| 91亚洲精品久久久蜜桃网站 | 国产在线不卡一区| 1024成人网色www| 日韩写真欧美这视频| 不卡大黄网站免费看| 奇米影视在线99精品| 亚洲国产精品国自产拍av| 欧美日韩一区二区三区不卡| 国产一区啦啦啦在线观看| 亚洲人成精品久久久久| 精品国产亚洲一区二区三区在线观看| 91一区二区在线| 国产一区激情在线| 天天综合天天做天天综合| 中文字幕乱码亚洲精品一区| 欧美精品99久久久**| 91视频观看免费| 国产91色综合久久免费分享| 日韩国产一二三区| 中文字幕中文乱码欧美一区二区| 91精品国产手机| 欧美少妇性性性| 不卡影院免费观看| 裸体健美xxxx欧美裸体表演| 尤物在线观看一区| 国产精品视频在线看| 91精品在线免费| 欧美性猛交xxxx黑人交| 99re视频精品| av成人免费在线| 国产成a人亚洲精| 人人精品人人爱| 亚洲国产精品久久人人爱蜜臀| 国产蜜臀av在线一区二区三区| 在线成人免费视频| 欧美视频精品在线观看| 色94色欧美sute亚洲线路二| 波多野结衣视频一区| 国产精品一区二区在线观看不卡 | 国产成人亚洲综合色影视| 免费欧美日韩国产三级电影| 亚洲在线中文字幕| 一区二区三区小说| 亚洲男人电影天堂| 亚洲精品水蜜桃| 亚洲人吸女人奶水| 日韩毛片精品高清免费| 国产精品成人免费在线| 国产精品久久久久久久久动漫 | 久久精品噜噜噜成人av农村| 日韩在线一区二区三区| 日韩在线a电影| 日韩精品每日更新| 青青草一区二区三区| 奇米影视一区二区三区| 久久国产日韩欧美精品| 精品一二三四在线| 国产盗摄女厕一区二区三区| 国产精品18久久久久久久久 | 开心九九激情九九欧美日韩精美视频电影 | 欧美片在线播放| 91麻豆精品国产无毒不卡在线观看| 欧美亚洲国产怡红院影院| 欧美色图片你懂的| 91麻豆精品国产91久久久久| 日韩精品一区二区三区在线观看 | 亚洲gay无套男同| 亚洲成国产人片在线观看| 天堂蜜桃91精品| 久久国产麻豆精品| 国产99久久久精品| 色婷婷av一区二区三区大白胸| 在线亚洲欧美专区二区| 在线视频国产一区| 日韩精品一区在线| 中文字幕一区二区视频| 亚洲一本大道在线| 久久av资源站| 99热99精品| 这里只有精品免费| 国产精品麻豆久久久| 亚洲国产一区二区视频| 美女脱光内衣内裤视频久久网站| 国产一区二三区| 欧洲中文字幕精品| 精品日产卡一卡二卡麻豆| 亚洲国产成人午夜在线一区| 亚洲综合清纯丝袜自拍| 另类调教123区 | 日本vs亚洲vs韩国一区三区| 国产成人aaaa| 91精品国产综合久久国产大片| 亚洲精品在线观看网站| 亚洲欧美日韩久久| 韩国欧美国产一区| 在线免费亚洲电影| 欧美经典一区二区三区| 午夜视频一区二区| www.色综合.com| 91精品在线麻豆| 一区二区三区欧美日| 国产精品一区在线| 日韩亚洲电影在线| 一区二区三区在线视频观看 | 不卡影院免费观看| 欧美一区二区播放| 亚洲一区二区在线观看视频| 国产乱码一区二区三区| 51久久夜色精品国产麻豆| 国产精品热久久久久夜色精品三区| 日本成人在线看| 日本高清成人免费播放| 久久久久久9999| 免费成人深夜小野草| 欧美偷拍一区二区| 亚洲欧美日韩小说| 成人h动漫精品一区二| 欧美大片拔萝卜| 亚洲国产精品欧美一二99| 91小视频在线| 国产精品毛片久久久久久| 国产乱码精品1区2区3区| 91精品国产欧美一区二区成人| 亚洲九九爱视频| 成人精品国产福利| 久久精品水蜜桃av综合天堂| 久久国产精品色| 日韩女优毛片在线| 日韩精品每日更新| 欧美日本乱大交xxxxx| 夜夜揉揉日日人人青青一国产精品| 豆国产96在线|亚洲| 久久久亚洲精品一区二区三区| 秋霞午夜av一区二区三区| 欧美日韩免费观看一区二区三区 | 99久久婷婷国产| 欧美国产成人在线| 成人高清在线视频| 国产精品初高中害羞小美女文| 国产a区久久久| 中文字幕中文字幕一区二区| 不卡视频在线看| 1024成人网| 在线观看91精品国产入口| 亚洲高清一区二区三区| 欧美精品色一区二区三区| 婷婷成人激情在线网| 91麻豆精品国产自产在线观看一区 | 91玉足脚交白嫩脚丫在线播放| 1000精品久久久久久久久| 色欧美乱欧美15图片| 亚洲一区在线观看视频| 欧美三级一区二区| 麻豆精品一区二区| 久久综合九色综合97_久久久| 精品一区二区三区免费观看| 久久女同互慰一区二区三区| 国产成人免费xxxxxxxx| 国产精品美女一区二区| 色婷婷激情综合| 欧美aaaaaa午夜精品| 久久精品一区四区| 99精品一区二区| 亚洲成人福利片| 久久综合久久鬼色中文字| 99这里只有精品| 日韩专区欧美专区| 久久久久久久久久电影| 91麻豆免费看片| 六月丁香婷婷色狠狠久久| 国产精品丝袜久久久久久app| 欧美在线看片a免费观看| 卡一卡二国产精品| 亚洲精品亚洲人成人网| 日韩欧美成人一区| 99re热视频这里只精品|