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

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

?? spinlex.c

?? 對軟件進行可達性測試的軟件
?? C
?? 第 1 頁 / 共 3 頁
字號:
/***** spin: spinlex.c *****//* Copyright (c) 1989-2003 by Lucent Technologies, Bell Laboratories.     *//* All Rights Reserved.  This software is for educational purposes only.  *//* No guarantee whatsoever is expressed or implied by the distribution of *//* this code.  Permission is given to distribute this code provided that  *//* this introductory message is not removed and no monies are exchanged.  *//* Software written by Gerard J. Holzmann.  For tool documentation see:   *//*             http://spinroot.com/                                       *//* Send all bug-reports and/or questions to: bugs@spinroot.com            */#include <stdlib.h>#include "spin.h"#include "y.tab.h"#define MAXINL	16	/* max recursion depth inline fcts */#define MAXPAR	32	/* max params to an inline call */#define MAXLEN	512	/* max len of an actual parameter text */typedef struct IType {	Symbol *nm;		/* name of the type */	Lextok *cn;		/* contents */	Lextok *params;		/* formal pars if any */	char   **anms;		/* literal text for actual pars */	char   *prec;		/* precondition for c_code or c_expr */	int    dln, cln;	/* def and call linenr */	Symbol *dfn, *cfn;	/* def and call filename */	struct IType *nxt;	/* linked list */} IType;typedef struct C_Added {	Symbol *s;	Symbol *t;	Symbol *ival;	struct C_Added *nxt;} C_Added;extern RunList	*X;extern ProcList	*rdy;extern Symbol	*Fname;extern Symbol	*context, *owner;extern YYSTYPE	yylval;extern short	has_last, has_code;extern int	verbose, IArgs, hastrack, separate;short	has_stack = 0;int	lineno  = 1;char	yytext[2048];FILE	*yyin, *yyout;static C_Added	*c_added, *c_tracked;static IType	*Inline_stub[MAXINL];static char	*ReDiRect;static char	*Inliner[MAXINL], IArg_cont[MAXPAR][MAXLEN];static unsigned char	in_comment=0;static int	IArgno = 0, Inlining = -1;static int	check_name(char *);#if 1#define Token(y)	{ if (in_comment) goto again; \			yylval = nn(ZN,0,ZN,ZN); return y; }#define ValToken(x, y)	{ if (in_comment) goto again; \			yylval = nn(ZN,0,ZN,ZN); yylval->val = x; return y; }#define SymToken(x, y)	{ if (in_comment) goto again; \			yylval = nn(ZN,0,ZN,ZN); yylval->sym = x; return y; }#else#define Token(y)	{ yylval = nn(ZN,0,ZN,ZN); \			if (!in_comment) return y; else goto again; }#define ValToken(x, y)	{ yylval = nn(ZN,0,ZN,ZN); yylval->val = x; \			if (!in_comment) return y; else goto again; }#define SymToken(x, y)	{ yylval = nn(ZN,0,ZN,ZN); yylval->sym = x; \			if (!in_comment) return y; else goto again; }#endifstatic int	getinline(void);static void	uninline(void);#if 1#define Getchar()	((Inlining<0)?getc(yyin):getinline())#define Ungetch(c)	{if (Inlining<0) ungetc(c,yyin); else uninline(); }#elsestatic intGetchar(void){	int c;	if (Inlining<0)		c = getc(yyin);	else		c = getinline();#if 1	printf("<%c>", c);#endif	return c;}static voidUngetch(int c){	if (Inlining<0)		ungetc(c,yyin);	else		uninline();#if 1	printf("<bs>");#endif}#endifstatic intnotquote(int c){	return (c != '\"' && c != '\n');}intisalnum_(int c){	return (isalnum(c) || c == '_');}static intisalpha_(int c){	return isalpha(c);	/* could be macro */}       static intisdigit_(int c){	return isdigit(c);	/* could be macro */}static voidgetword(int first, int (*tst)(int)){	int i=0, c;	yytext[i++]= (char) first;	while (tst(c = Getchar()))	{	yytext[i++] = (char) c;		if (c == '\\')		{	c = Getchar();			yytext[i++] = (char) c;	/* no tst */	}	}	yytext[i] = '\0';	Ungetch(c);}static intfollow(int tok, int ifyes, int ifno){	int c;	if ((c = Getchar()) == tok)		return ifyes;	Ungetch(c);	return ifno;}static IType *seqnames;static voiddef_inline(Symbol *s, int ln, char *ptr, char *prc, Lextok *nms){	IType *tmp;	char *nw = (char *) emalloc(strlen(ptr)+1);	strcpy(nw, ptr);	for (tmp = seqnames; tmp; tmp = tmp->nxt)		if (!strcmp(s->name, tmp->nm->name))		{	non_fatal("procedure name %s redefined",				tmp->nm->name);			tmp->cn = (Lextok *) nw;			tmp->params = nms;			tmp->dln = ln;			tmp->dfn = Fname;			return;		}	tmp = (IType *) emalloc(sizeof(IType));	tmp->nm = s;	tmp->cn = (Lextok *) nw;	tmp->params = nms;	if (strlen(prc) > 0)	{	tmp->prec = (char *) emalloc(strlen(prc)+1);		strcpy(tmp->prec, prc);	}	tmp->dln = ln;	tmp->dfn = Fname;	tmp->nxt = seqnames;	seqnames = tmp;}voidgencodetable(FILE *fd){	IType *tmp;	char *q;	int cnt;	if (separate == 2) return;	fprintf(fd, "struct {\n");	fprintf(fd, "	char *c; char *t;\n");	fprintf(fd, "} code_lookup[] = {\n");	if (has_code)	for (tmp = seqnames; tmp; tmp = tmp->nxt)		if (tmp->nm->type == CODE_FRAG		||  tmp->nm->type == CODE_DECL)		{	fprintf(fd, "\t{ \"%s\", ",				tmp->nm->name);			q = (char *) tmp->cn;			while (*q == '\n' || *q == '\r' || *q == '\\')				q++;			fprintf(fd, "\"");			cnt = 0;			while (*q && cnt < 1024) /* pangen1.h allows 2048 */			{	switch (*q) {				case '"':					fprintf(fd, "\\\"");					break;				case '%':					fprintf(fd, "%%");					break;				case '\n':					fprintf(fd, "\\n");					break;				default:					putc(*q, fd);					break;				}				q++; cnt++;			}			if (*q) fprintf(fd, "...");			fprintf(fd, "\"");			fprintf(fd, " },\n");		}	fprintf(fd, "	{ (char *) 0, \"\" }\n");	fprintf(fd, "};\n");}static intiseqname(char *t){	IType *tmp;	for (tmp = seqnames; tmp; tmp = tmp->nxt)	{	if (!strcmp(t, tmp->nm->name))			return 1;	}	return 0;}static intgetinline(void){	int c;	if (ReDiRect)	{	c = *ReDiRect++;		if (c == '\0')		{	ReDiRect = (char *) 0;			c = *Inliner[Inlining]++;		}	} else		c = *Inliner[Inlining]++;	if (c == '\0')	{	lineno = Inline_stub[Inlining]->cln;		Fname  = Inline_stub[Inlining]->cfn;		Inlining--;#if 0		if (verbose&32)		printf("spin: line %d, done inlining %s\n",			lineno, Inline_stub[Inlining+1]->nm->name);#endif		return Getchar();	}	return c;}static voiduninline(void){	if (ReDiRect)		ReDiRect--;	else		Inliner[Inlining]--;}IType *find_inline(char *s){	IType *tmp;	for (tmp = seqnames; tmp; tmp = tmp->nxt)		if (!strcmp(s, tmp->nm->name))			break;	if (!tmp)		fatal("cannot happen, missing inline def %s", s);	return tmp;}voidc_state(Symbol *s, Symbol *t, Symbol *ival)	/* name, scope, ival */{	C_Added *r;	r = (C_Added *) emalloc(sizeof(C_Added));	r->s = s;	/* pointer to a data object */	r->t = t;	/* size of object, or "global", or "local proctype_name"  */	r->ival = ival;	r->nxt = c_added;	c_added = r;}voidc_track(Symbol *s, Symbol *t, Symbol *stackonly)	/* name, size */{	C_Added *r;	r = (C_Added *) emalloc(sizeof(C_Added));	r->s = s;	r->t = t;	r->ival = stackonly;	/* abuse of name */	r->nxt = c_tracked;	c_tracked = r;	if (stackonly != ZS)	{	if (strcmp(stackonly->name, "\"Matched\"") == 0)			r->ival = ZS;	/* the default */		else if (strcmp(stackonly->name, "\"UnMatched\"") != 0		     &&  strcmp(stackonly->name, "\"unMatched\"") != 0		     &&  strcmp(stackonly->name, "\"StackOnly\"") != 0)			non_fatal("expecting '[Un]Matched', saw %s", stackonly->name);		else			has_stack = 1;	/* unmatched stack */	}}char *jump_etc(char *op){	char *p = op;	/* kludgy - try to get the type separated from the name */	while (*p == ' ' || *p == '\t')		p++;	/* initial white space */	while (*p != ' ' && *p != '\t')		p++;	/* type name */	while (*p == ' ' || *p == '\t')		p++;	/* white space */	while (*p == '*')		p++;	/* decorations */	while (*p == ' ' || *p == '\t')		p++;	/* white space */	if (*p == '\0')		fatal("c_state format (%s)", op);	if (strchr(p, '[')	&&  !strchr(p, '{'))	{	non_fatal("array initialization error, c_state (%s)", p);		return (char *) 0;	}	return p;}voidc_add_globinit(FILE *fd){	C_Added *r;	char *p, *q;	fprintf(fd, "void\nglobinit(void)\n{\n");	for (r = c_added; r; r = r->nxt)	{	if (r->ival == ZS)			continue;		if (strncmp(r->t->name, " Global ", strlen(" Global ")) == 0)		{	for (q = r->ival->name; *q; q++)			{	if (*q == '\"')					*q = ' ';				if (*q == '\\')					*q++ = ' '; /* skip over the next */			}			p = jump_etc(r->s->name);	/* e.g., "int **q" */			if (p)			fprintf(fd, "	now.%s = %s;\n", p, r->ival->name);		} else		if (strncmp(r->t->name, " Hidden ", strlen(" Hidden ")) == 0)		{	for (q = r->ival->name; *q; q++)			{	if (*q == '\"')					*q = ' ';				if (*q == '\\')					*q++ = ' '; /* skip over the next */			}			p = jump_etc(r->s->name);	/* e.g., "int **q" */			if (p)			fprintf(fd, "	%s = %s;\n", p, r->ival->name);	/* no now. prefix */	}	}	fprintf(fd, "}\n");}voidc_add_locinit(FILE *fd, int tpnr, char *pnm){	C_Added *r;	char *p, *q, *s;	int frst = 1;	fprintf(fd, "void\nlocinit%d(int h)\n{\n", tpnr);	for (r = c_added; r; r = r->nxt)		if (r->ival != ZS		&&  strncmp(r->t->name, " Local", strlen(" Local")) == 0)		{	for (q = r->ival->name; *q; q++)				if (*q == '\"')					*q = ' ';						p = jump_etc(r->s->name);	/* e.g., "int **q" */			q = r->t->name + strlen(" Local");			while (*q == ' ' || *q == '\t')				q++;			/* process name */			s = (char *) emalloc(strlen(q)+1);			strcpy(s, q);			q = &s[strlen(s)-1];			while (*q == ' ' || *q == '\t')				*q-- = '\0';			if (strcmp(pnm, s) != 0)				continue;			if (frst)			{	fprintf(fd, "\tuchar *this = pptr(h);\n");				frst = 0;			}			if (p)			fprintf(fd, "		((P%d *)this)->%s = %s;\n",				tpnr, p, r->ival->name);		}	fprintf(fd, "}\n");}/* tracking:	1. for non-global and non-local c_state decls: add up all the sizes in c_added	2. add a global char array of that size into now	3. generate a routine that memcpy's the required values into that array	4. generate a call to that routine */voidc_preview(void){	C_Added *r;	hastrack = 0;	if (c_tracked)		hastrack = 1;	else	for (r = c_added; r; r = r->nxt)		if (strncmp(r->t->name, " Global ", strlen(" Global ")) != 0		&&  strncmp(r->t->name, " Hidden ", strlen(" Hidden ")) != 0		&&  strncmp(r->t->name, " Local",  strlen(" Local"))  != 0)		{	hastrack = 1;	/* c_state variant now obsolete */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久夜色精品国产噜噜av| 日韩一区二区三区观看| 91麻豆.com| 欧美日韩国产精品自在自线| 5566中文字幕一区二区电影| 久久综合九色综合欧美98| 7777精品伊人久久久大香线蕉| 久久久亚洲欧洲日产国码αv| 国产精品福利av| 人人爽香蕉精品| 97久久精品人人爽人人爽蜜臀| 欧美日韩1234| 中文一区二区在线观看| 亚洲444eee在线观看| 国产一区二区在线观看视频| 在线亚洲免费视频| 中文字幕一区二区三区色视频| 精品一区二区三区不卡| 欧美美女视频在线观看| 国产精品久久久一本精品| 日韩av一区二区三区四区| 成人三级伦理片| 日韩欧美中文字幕一区| 亚洲乱码国产乱码精品精小说| 久久精品国产在热久久| 91福利视频在线| 国产婷婷一区二区| 日本不卡123| 在线一区二区三区四区五区| 久久精品人人做人人爽97 | 99久久精品免费观看| 91精品免费观看| 亚洲一二三四在线观看| eeuss鲁片一区二区三区| 26uuu久久综合| 日本va欧美va欧美va精品| 99国产精品国产精品久久| 欧美激情一区二区在线| 国产精品一区二区不卡| 欧美成人官网二区| 五月婷婷激情综合| 欧美色精品天天在线观看视频| 综合久久国产九一剧情麻豆| 国产一区二区三区蝌蚪| 日韩精品最新网址| 美女一区二区三区| 日韩一本二本av| 免费在线观看一区| 91精品久久久久久蜜臀| 香蕉久久夜色精品国产使用方法| 91久久免费观看| 国产精品久久久久aaaa| 成人av集中营| 国产精品久久二区二区| 成人午夜视频在线| 国产日韩欧美a| 国产高清成人在线| 日韩欧美电影在线| 看电影不卡的网站| 国产视频一区二区在线| 天天综合色天天综合色h| 欧美丰满高潮xxxx喷水动漫| 香港成人在线视频| 26uuu亚洲综合色| 国产高清一区日本| 亚洲天堂av老司机| 在线免费观看日本欧美| 亚洲国产精品一区二区www| 欧美日韩国产精品自在自线| 亚洲高清在线视频| 91.xcao| 麻豆91免费看| 国产日韩欧美一区二区三区综合| 成人国产免费视频| 亚洲毛片av在线| 欧美三级视频在线| 视频精品一区二区| 日韩三级视频在线看| 国产91富婆露脸刺激对白| 最新欧美精品一区二区三区| 欧美性猛交一区二区三区精品 | 欧美自拍偷拍一区| aa级大片欧美| 88在线观看91蜜桃国自产| 久久综合九色综合欧美98| 日韩一区二区三区视频在线| 国产成人精品一区二区三区网站观看| 亚洲天天做日日做天天谢日日欢| 精品亚洲免费视频| 亚洲蜜臀av乱码久久精品蜜桃| 91精品国产综合久久香蕉麻豆| 国产精品一区二区在线观看网站| 国产日韩精品久久久| 精品成人一区二区三区| 欧美日韩精品一区二区在线播放| thepron国产精品| 丝袜亚洲另类欧美| 亚洲777理论| 午夜精品久久久久久久久久久| 亚洲伊人伊色伊影伊综合网| 一区二区在线免费观看| 一区二区久久久久久| 亚洲一区二区精品视频| 亚洲第一综合色| 日本特黄久久久高潮| 日日夜夜精品免费视频| 日韩不卡一区二区| 免费在线观看视频一区| 美美哒免费高清在线观看视频一区二区| 亚洲成人自拍一区| 麻豆国产精品官网| 国产黄色精品视频| 99久久国产综合精品色伊 | 久久综合狠狠综合久久综合88| 欧美tk—视频vk| 国产肉丝袜一区二区| 中文字幕免费不卡在线| 亚洲欧美日韩国产另类专区| 亚洲精品视频免费观看| 亚瑟在线精品视频| 美女免费视频一区二区| 国产黄人亚洲片| av在线不卡观看免费观看| 欧美午夜精品免费| 日韩欧美视频一区| 久久精品欧美一区二区三区麻豆| 国产亚洲综合av| 亚洲日本丝袜连裤袜办公室| 亚洲香肠在线观看| 久久99精品久久久久久动态图| 国产一区二区日韩精品| 99天天综合性| 欧美精品 国产精品| www国产成人| 自拍视频在线观看一区二区| 亚洲天堂网中文字| 国内欧美视频一区二区| 91久久精品国产91性色tv| 精品一区二区三区香蕉蜜桃| 国产精品一区二区在线观看网站| 色综合久久88色综合天天| 日韩欧美久久久| 亚洲免费电影在线| 日韩黄色免费网站| 在线区一区二视频| 伊人开心综合网| 美女在线视频一区| 欧美日韩一级二级| 青青国产91久久久久久| 午夜精品久久一牛影视| 成人一区二区三区视频| 69久久夜色精品国产69蝌蚪网| 亚洲国产精品精华液ab| 日韩成人午夜电影| 色播五月激情综合网| 久久久国产精华| 日本中文一区二区三区| 91美女片黄在线| 久久久国产精品麻豆| 日本不卡1234视频| 在线观看不卡一区| 中文字幕免费在线观看视频一区| 青娱乐精品视频在线| 在线观看av不卡| 最新热久久免费视频| 国产福利精品一区| 日韩区在线观看| 亚洲成人在线网站| 在线观看亚洲专区| 亚洲图片激情小说| 国产xxx精品视频大全| 欧美哺乳videos| 天天综合网天天综合色| 欧美曰成人黄网| 国产精品久久久一本精品| 国产成人精品aa毛片| 欧美变态口味重另类| 免费在线观看一区| 91麻豆精品国产自产在线 | 国产一区二区不卡老阿姨| 91精品国产综合久久婷婷香蕉| 亚洲香肠在线观看| 日本高清不卡视频| 一区二区成人在线视频| 91在线看国产| 最新国产の精品合集bt伙计| 高清不卡一区二区| 国产日韩亚洲欧美综合| 国产九九视频一区二区三区| 久久久久国产精品厨房| 91美女蜜桃在线| 肉色丝袜一区二区| 久久综合一区二区| 岛国精品在线播放| 一区二区三国产精华液| 欧美高清性hdvideosex| 国产一区视频网站| 亚洲品质自拍视频| 欧美一区二区三区喷汁尤物| 国产精品 日产精品 欧美精品|