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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? stmt.c

?? 非常好的源碼
?? C
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
#include "c.h"

#define SWSIZE 512

#define den(i,j) ((j-buckets[i]+1.0)/(v[j]-v[buckets[i]]+1))

struct swtch {
	Symbol sym;
	int lab;
	Symbol deflab;
	int ncases;
	int size;
	int *values;
	Symbol *labels;
};
struct code codehead = { Start };
Code codelist = &codehead;
float density = (float)0.5;
Table stmtlabs;

static int foldcond (Tree e1, Tree e2,Symbol *psimpleIndex);
static void branch ARGS((int));
static void caselabel ARGS((Swtch, int, int));
static Tree cmp ARGS((int, Symbol, int, int));
static Tree conditional ARGS((int));
static void dostmt ARGS((int, Swtch, int));
static int equal ARGS((Symbol, Symbol));
static void forstmt ARGS((int, Swtch, int));
static void ifstmt ARGS((int, int, Swtch, int));
static Symbol localaddr ARGS((Tree));
static void stmtlabel ARGS((void));
static void swcode ARGS((Swtch, int *, int, int));
static void swgen ARGS((Swtch));
static void swstmt ARGS((int, int, int));
static void whilestmt ARGS((int, Swtch, int));
Code code(int kind)
{
	Code cp;

	if (kind > Start) {
		for (cp = codelist; cp->kind < Label; )
			cp = cp->prev;
		if (cp->kind == Jump || cp->kind == Switch)
			warning(StrTab[57]);// <unreachable code\n>
	}
	NEW(cp, FUNC);
	cp->kind = kind;
	cp->prev = codelist;
	cp->next = NULL;
	codelist->next = cp;
	codelist = cp;
	return cp;
}
void addlocal(Symbol p)
{
	if (!p->defined) {
		code(Local)->u.var = p;
		p->defined = 1;
		p->scope = level;
	}
}
Code definept(Coordinate *p,int type)
{
	Code cp = code(Defpoint);

	cp->u.point.statement = StatementCount++;
	cp->u.point.src = p ? *p : src;
	cp->u.point.point = npoints;
	cp->u.point.type = type;
	if (ncalled > 0) {
		int n = findcount(cp->u.point.src.file,
			cp->u.point.src.x, cp->u.point.src.y);
		if (n >= 0)
			refinc = (float)n/ncalled;
	}
	if (events.points)
		{
			Tree e = NULL;
			apply(events.points, &cp->u.point.src, &e);
			if (e)
				listnodes(e, 0, 0);
		}
	if (glevel > 2)	locus(identifiers, &cp->u.point.src);
	return cp;
}
void statement(int loop,Swtch swp,int lev)
{
	float ref = refinc;

	if (Aflag >= 2 && lev == 15)
		warning(StrTab[58]);// <more than 15 levels of nested statements\n>
	switch (t) {
	case IF:       ifstmt(genlabel(2), loop, swp, lev + 1);
 break;
	case WHILE:    whilestmt(genlabel(3), swp, lev + 1); break;
	case DO:       dostmt(genlabel(3), swp, lev + 1); expect(';');
					break;

	case FOR:      forstmt(genlabel(4), swp, lev + 1);
 break;
	case BREAK:    walk(NULL, 0, 0);
		       definept(NULL,POINT_BREAK);
		       if (swp && swp->lab > loop)
		       	branch(swp->lab + 1);
		       else if (loop)
		       	branch(loop + 2);
		       else
		       	error(StrTab[59]);// <illegal break statement\n>
		       t = gettok(); expect(';');
					   break;

	case CONTINUE: walk(NULL, 0, 0);
		       definept(NULL,POINT_GOTO);
		       if (loop)
		       	branch(loop + 1);
		       else
		       	error(StrTab[60]);// <illegal continue statement\n>
		       t = gettok(); expect(';');
					      break;

	case SWITCH:   swstmt(loop, genlabel(2), lev + 1);
 break;
	case CASE:     {
		       	int lab = genlabel(1);
		       	if (swp == NULL)
		       		error(StrTab[61]);// <illegal case label\n>
		       	definelab(lab);
		       	while (t == CASE) {
		       		static char stop[] = { IF, ID, 0 };
		       		Tree p;
		       		t = gettok();
		       		p = constexpr(0);
		       		if (generic(p->op) == CNST && isint(p->type)) {
		       			if (swp) {
		       				needconst++;
		       				p = cast(p, swp->sym->type);
		       				needconst--;
		       				caselabel(swp, p->u.v.i, lab);
		       			}
		       		} else
		       			error(StrTab[62]);// <case label must be a constant integer expression\n>

		       		test(':', stop);
		       	}
				definept(NULL,POINT_CASE);
		       	statement(loop, swp, lev);
		       } break;
	case DEFAULT:  if (swp == NULL)
		       	error(StrTab[63]);// <illegal default label\n>
		       else if (swp->deflab)
		       	error(StrTab[64]);// <extra default label\n>
		       else {
		       	swp->deflab = findlabel(swp->lab);
		       	definelab(swp->deflab->u.l.label);
		       }
		       t = gettok();
		       expect(':');
		       statement(loop, swp, lev); break;
	case RETURN:   {
		       	Type rty = freturn(cfunc->type);
		       	t = gettok();
		       	definept(NULL,POINT_RETURN);
		       	if (t != ';')
		       		if (rty == voidtype) {
		       			error(StrTab[65]);// <extraneous return value\n>
		       			expr(0);
		       			retcode(NULL);
		       		} else
		       			retcode(expr(0));
		       	else {
		       		if (rty != voidtype
		       		&& (rty != inttype || Aflag >= 1))
		       			warning(StrTab[66]);// <missing return value\n>
		       		retcode(NULL);
		       	}
		       	branch(cfunc->u.f.label);
		       } expect(';');
					    break;

	case '{':
	      	compound(loop, swp, lev + 1);
	      break;
	case ';':      definept(NULL,0); t = gettok(); break;
	case GOTO:     walk(NULL, 0, 0);
		       definept(NULL,POINT_GOTO);
			   FunctionInfo.hasgotos = 1;
		       t = gettok();
		       if (t == ID) {
		       	Symbol p = lookup(token, stmtlabs);
		       	if (p == NULL) {
				p = install(token, &stmtlabs, 0, FUNC);
				p->scope = LABELS;
				p->u.l.label = genlabel(1);
				p->src = src;
			}
		       	use(p, src);
		       	branch(p->u.l.label);
		       	t = gettok();
		       } else
		       	error(StrTab[67]); expect(';');// <missing label in goto\n>
					  break;

	case ID:       if (getchr() == ':') {
		       	stmtlabel();
		       	statement(loop, swp, lev);
		       	break;
		       }
	default:       definept(NULL,0);
		       if (kind[t] != ID) {
		       	error(StrTab[68]);// <unrecognized statement\n>
		       	t = gettok();
		       } else {
		       	Tree e = expr0(0);
		       	listnodes(e, 0, 0);
//		       	if (nodecount == 0 || nodecount > 2000)
//		       		walk(NULL, 0, 0);
//		       	else if (glevel)
				walk(NULL, 0, 0);
		       	deallocate(STMT);
		       } expect(';');
						break;

	}
	if (kind[t] != IF && kind[t] != ID
	&& t != '}' && t != EOI) {
		static char stop[] = { IF, ID, '}', 0 };
		error(StrTab[69]);// <illegal statement termination\n>
		skipto(0, stop);
	}
	refinc = ref;
}

static void ifstmt(int lab,int loop,Swtch swp,int lev)
{
	Tree condTree;
	t = gettok();
	expect('(');
	definept(NULL,POINT_STARTIF);
	condTree = conditional(')');
	walk(condTree, 0, lab);
	refinc /= (float)2.0;
	statement(loop, swp, lev);
	if (t == ELSE) {
		branch(lab + 1);
		t = gettok();
		definelab(lab);
		definept(NULL,POINT_ELSE);
		statement(loop, swp, lev);
		if (findlabel(lab + 1)->ref)
			definelab(lab + 1);
	} else
		definelab(lab);
	definept(NULL,POINT_ENDIF);
}
static Tree conditional(int tok)
{
	Tree p = expr(tok);

	if (Aflag > 1 && isfunc(p->type))
		warning(StrTab[70],// <%s used in a conditional expression\n>
			funcname(p));
	return cond(p);
}
static void stmtlabel(void)
{
	Symbol p = lookup(token, stmtlabs);

	if (p == NULL) {
		p = install(token, &stmtlabs, 0, FUNC);
		p->scope = LABELS;
		p->u.l.label = genlabel(1);
		p->src = src;
	}
	if (p->defined)
		error(StrTab[71], p->name, &p->src);// <redefinition of label `%s' previously defined at %w\n>

	p->defined = 1;
	definelab(p->u.l.label);
	t = gettok();
	expect(':');
}


static void forstmt(int lab,Swtch swp,int lev)
{
	int once = 0;
	Tree e1 = NULL, e2 = NULL, e3 = NULL;
	Coordinate pt2, pt3;
	int start;
	Symbol simpleIndex=NULL;
	float indexUsage=0.0;
	Node n1=NULL;

	start = StatementCount;
	t = gettok();
	expect('(');
	definept(NULL,POINT_STARTFOR);
	if (kind[t] == ID)
		e1 = texpr(expr0, ';', FUNC);
	else
		expect(';');
	walk(e1, 0, 0);
	pt2 = src;
	refinc *= (float)10.0;
	if (kind[t] == ID)
		e2 = texpr(conditional, ';', FUNC);
	else
		expect(';');
	pt3 = src;
	if (kind[t] == ID)
		e3 = texpr(expr0, ')', FUNC);
	else {
		static char stop[] = { IF, ID, '}', 0 };
		test(')', stop);
	}
	if (e2) {
		once = foldcond(e1, e2,&simpleIndex);
		if (e1)
			n1 = e1->node;
		if (!once)
			branch(lab + 3);
	}
	definelab(lab);
	statement(lab, swp, lev);
	definelab(lab + 1);
	definept(&pt3,0);
	if (e3)
		walk(e3, 0, 0);
	if (e2) {
		if (!once)
			definelab(lab + 3);
		definept(&pt2,0);
		walk(e2, lab, 0);
	} else {
		definept(&pt2,0);
		branch(lab);
	}
	if (OptimizeFlag) {
		ExtendDomain(level,start);
	}
	if (findlabel(lab + 2)->ref)
		definelab(lab + 2);
	definept(NULL,POINT_ENDFOR);
}
static void swstmt(int loop,int lab,int lev)
{
	Tree e,exprTree;
	struct swtch sw;
	Code head, tail;

	t = gettok();
	expect('(');
	definept(NULL,POINT_STARTSWITCH);
	e = expr(')');
	if (!isint(e->type)) {
		error(StrTab[72],// <illegal type `%t' in switch expression\n>
			e->type);
		e = retype(e, inttype);
	}
	e = cast(e, promote(e->type));
	if (generic(e->op) == INDIR && isaddrop(e->kids[0]->op)
	&& (e->kids[0]->u.sym->type == e->type ||
		isenum(e->kids[0]->u.sym->type))
	&& !isvolatile(e->kids[0]->u.sym->type)) {
		if (OptimizeFlag) {
			sw.sym = genident(REGISTER, e->type, level);
			addlocal(sw.sym);
			exprTree = asgn(sw.sym,e);
			walk(exprTree, 0, 0);
		}
		else {
			sw.sym = e->kids[0]->u.sym;
			walk(NULL,0,0);
		}

	} else {
		sw.sym = genident(REGISTER, e->type, level);
		addlocal(sw.sym);
		exprTree = asgn(sw.sym,e);
		walk(exprTree, 0, 0);
	}
	if (OptimizeFlag)
		sw.sym->x.switchSymbol = 1;
	head = code(Switch);
	sw.lab = lab;
	sw.deflab = NULL;
	sw.ncases = 0;
	sw.size = SWSIZE;
	sw.values = newarray(SWSIZE, sizeof *sw.values, FUNC);
	sw.labels = newarray(SWSIZE, sizeof *sw.labels, FUNC);
	refinc /= (float)10.0;
	statement(loop, &sw, lev);
	if (sw.deflab == NULL) {
		sw.deflab = findlabel(lab);
		definelab(lab);
		if (sw.ncases == 0)
			warning(StrTab[73]);// <switch statement with no cases\n>

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91精品国产91久久综合桃花| 高清国产一区二区| 欧美性感一类影片在线播放| 亚洲精品视频一区| 色噜噜狠狠色综合中国| 亚洲一区二区五区| 欧美一区日韩一区| 国产精品一区二区三区四区| 国产日产欧美一区二区视频| 99精品视频一区| 亚洲成人高清在线| 91精品中文字幕一区二区三区| 日本欧美韩国一区三区| 欧美成人官网二区| 成人v精品蜜桃久久一区| 亚洲视频一区在线| 欧美高清视频在线高清观看mv色露露十八 | 国产日产欧美一区二区三区| www.99精品| 亚洲第一会所有码转帖| 精品捆绑美女sm三区| 懂色av一区二区三区免费观看| 中文字幕亚洲区| 欧美日韩色一区| 国产一区二区三区黄视频| ●精品国产综合乱码久久久久| 欧美视频精品在线观看| 黄色小说综合网站| 亚洲精品视频一区二区| 日韩写真欧美这视频| 国产99精品在线观看| 亚洲第一福利视频在线| 国产日韩欧美一区二区三区综合| 99久久久免费精品国产一区二区 | 五月天网站亚洲| 久久久久久久久一| 欧美在线视频日韩| 国产麻豆视频精品| 青青草国产成人av片免费| 久久亚洲欧美国产精品乐播| 91官网在线观看| 国产成人av自拍| 日日噜噜夜夜狠狠视频欧美人 | 一区二区三区四区不卡在线| 欧美va亚洲va在线观看蝴蝶网| 91亚洲精品一区二区乱码| 日韩高清一级片| 亚洲欧美另类久久久精品2019| 精品99一区二区三区| 在线视频国内自拍亚洲视频| 国产福利不卡视频| 美洲天堂一区二卡三卡四卡视频| 综合av第一页| 久久日一线二线三线suv| 欧美日韩国产在线播放网站| yourporn久久国产精品| 国产麻豆精品视频| 秋霞电影一区二区| 亚洲一区二区三区免费视频| 国产精品美女久久久久久久久| 精品国产欧美一区二区| 欧美顶级少妇做爰| 在线影视一区二区三区| aa级大片欧美| eeuss影院一区二区三区| 国产精品一区二区在线看| 麻豆精品在线播放| 日产国产欧美视频一区精品| 亚洲自拍都市欧美小说| 中文字幕在线观看不卡视频| 国产女人aaa级久久久级 | 亚洲精品久久久蜜桃| 国产精品久久久久久妇女6080| 久久夜色精品国产噜噜av| 精品久久久影院| 日韩欧美的一区| 日韩一卡二卡三卡| 91精品国产手机| 日韩无一区二区| 69精品人人人人| 91精品国产91久久综合桃花 | 日本成人中文字幕| 国模无码大尺度一区二区三区| 天堂精品中文字幕在线| 五月天网站亚洲| 老司机午夜精品| 精品无码三级在线观看视频| 国产一区二区三区视频在线播放 | 国产综合久久久久久鬼色| 国产一区二三区| 国产91丝袜在线播放九色| 不卡影院免费观看| 91蜜桃在线观看| 色素色在线综合| 欧美另类z0zxhd电影| 日韩欧美一二三区| 久久久精品综合| 亚洲视频免费在线观看| 亚洲午夜久久久久| 男女男精品视频| 国产老妇另类xxxxx| 99久久夜色精品国产网站| 色8久久人人97超碰香蕉987| 欧美人妇做爰xxxⅹ性高电影| 69堂国产成人免费视频| 久久久五月婷婷| 日韩毛片视频在线看| 香蕉影视欧美成人| 蓝色福利精品导航| 99精品偷自拍| 欧美日韩黄色一区二区| 26uuu精品一区二区三区四区在线| 欧美精彩视频一区二区三区| 一区二区三区日本| 激情六月婷婷久久| 波多野洁衣一区| 欧美日韩国产一二三| 久久一夜天堂av一区二区三区| 国产精品久久久久国产精品日日| 亚洲一二三四在线观看| 久久99蜜桃精品| 国产河南妇女毛片精品久久久 | 国产精品黄色在线观看| 亚洲成a天堂v人片| 丁香啪啪综合成人亚洲小说| 欧美系列一区二区| 日本一区二区三级电影在线观看| 亚洲第一搞黄网站| 成人激情文学综合网| 欧美夫妻性生活| 中文字幕色av一区二区三区| 男男gaygay亚洲| 91影视在线播放| 久久精品夜夜夜夜久久| 香蕉加勒比综合久久| 北条麻妃一区二区三区| 日韩精品一区二区三区swag| 一区二区国产盗摄色噜噜| 国产福利不卡视频| 欧美一区二区三区在线视频| 亚洲图片激情小说| 国产精品一区二区不卡| 欧美丰满少妇xxxbbb| 亚洲欧美日本韩国| 成人做爰69片免费看网站| 精品久久久久久最新网址| 亚洲国产精品综合小说图片区| 国产91综合一区在线观看| 欧美不卡视频一区| 午夜精品福利久久久| 在线一区二区三区四区五区| 中文字幕欧美一| 国产电影一区在线| 久久久国际精品| 久久精品国产77777蜜臀| 欧美精品黑人性xxxx| 洋洋成人永久网站入口| 99免费精品视频| 中文字幕欧美激情| 国产精品中文字幕日韩精品| 日韩精品在线一区二区| 日韩电影在线一区二区| 欧美日韩国产高清一区二区三区 | 日本欧美肥老太交大片| 欧美在线播放高清精品| 亚洲精品高清在线观看| 91官网在线观看| 亚洲国产日韩在线一区模特 | 欧美日韩一区二区在线观看视频| 亚洲婷婷综合色高清在线| 不卡电影免费在线播放一区| 欧美国产日韩a欧美在线观看| 国产一区二区三区最好精华液| 精品精品欲导航| 国产自产高清不卡| 欧美精品一区二区在线播放| 国内精品久久久久影院薰衣草| 精品国产乱码久久久久久老虎 | 亚洲一二三区不卡| 在线日韩国产精品| 亚洲丶国产丶欧美一区二区三区| 欧美日韩在线一区二区| 日韩国产欧美在线播放| 日韩精品一区二区在线| 国产精品一区在线| 日韩毛片在线免费观看| 欧美日韩不卡一区二区| 日韩福利视频导航| 久久亚洲精华国产精华液| 成人午夜激情在线| 亚洲精品成人在线| 欧美少妇bbb| 激情综合网av| 欧美激情综合五月色丁香小说| 不卡电影免费在线播放一区| 亚洲午夜久久久| 亚洲精品一区二区三区精华液 | 五月婷婷久久综合| 26uuu成人网一区二区三区| 成人丝袜高跟foot|