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

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

?? code.c

?? 小型編譯器,可以用于測試使用
?? C
字號:
/****************************************************/
/* File: code.c                                     */
/* TM Code emitting utilities                       */
/* implementation for the TINY compiler             */
/* Compiler Construction: Principles and Practice   */
/* Kenneth C. Louden                                */
/****************************************************/

#include <ctype.h>
#include "globals.h"
#include "code.h"

/* TM location number for current instruction emission */
static int emitLoc = 0 ;

/* Highest TM location emitted so far
   For use in conjunction with emitSkip,
   emitBackup, and emitRestore */
static int highEmitLoc = 0;

//中間代碼
struct{
	char *op;
	char *a;
	char *b;
	char *c;
}mcode[512];			//四元式

//生成3地址中間代碼
void emit( char * op, char * a, char * b, char * c )
{
	mcode[emitLoc].op = (char *)malloc(sizeof(char)*(strlen(op)+1));
	mcode[emitLoc].a = (char *)malloc(sizeof(char)*(strlen(a)+1));
	mcode[emitLoc].b = (char *)malloc(sizeof(char)*(strlen(b)+1));
	mcode[emitLoc].c = (char *)malloc(sizeof(char)*(strlen(c)+1));
	strcpy(mcode[emitLoc].op, op);
	strcpy(mcode[emitLoc].a, a);
	strcpy(mcode[emitLoc].b, b);
	strcpy(mcode[emitLoc].c, c);
	emitLoc++;
	if (highEmitLoc < emitLoc)
		highEmitLoc = emitLoc;
}

void output()
{
	int i;
	for(i=0;i<highEmitLoc;i++)
	{
		if(strcmp(mcode[i].op, "+")==0 ||
			strcmp(mcode[i].op, "-")==0 ||
			strcmp(mcode[i].op, "*")==0 ||
			strcmp(mcode[i].op, "/")==0 ||
			strcmp(mcode[i].op, "and")==0 ||
			strcmp(mcode[i].op, "or")==0 ||
			strcmp(mcode[i].op, "<")==0 ||
			strcmp(mcode[i].op, "<=")==0 ||
			strcmp(mcode[i].op, ">")==0 ||
			strcmp(mcode[i].op, ">=")==0 ||
			strcmp(mcode[i].op, "=")==0)
			fprintf(code,"%5d)  %s := %s %s %s\n",i,mcode[i].c,mcode[i].a,mcode[i].op,mcode[i].b);
		else if(strcmp(mcode[i].op, "read")==0)
			fprintf(code,"%5d)  %s %s\n",i,mcode[i].op,mcode[i].c);
		else if(strcmp(mcode[i].op, "write")==0)
			fprintf(code,"%5d)  %s %s\n",i,mcode[i].op,mcode[i].a);
		else if(strcmp(mcode[i].op, ":=")==0)
			fprintf(code,"%5d)  %s %s %s\n",i,mcode[i].c,mcode[i].op,mcode[i].a);
		else if(strcmp(mcode[i].op, "label")==0 ||
			strcmp(mcode[i].op, "goto")==0)
			fprintf(code,"%5d)  %s %s\n",i,mcode[i].op,mcode[i].c);
		else if(strcmp(mcode[i].op, "j=")==0)
			fprintf(code,"%5d)  if %s = %s goto %s\n",i,mcode[i].a,mcode[i].b,mcode[i].c);
	}
}

//生成臨時變量
char * newtemp()
{
	static n = 0;
	char tmpn[3]={'\0'};		//臨時變量編號
	char * temp = (char *)malloc(sizeof(char)*6);		//臨時變量名
	itoa(n++,tmpn,10);
	strcpy(temp,"t");
	strcat(temp,tmpn);
	return temp;
}

//生成新標簽
char * newlabel()
{
	static n = 1;
	char * temp = (char *)malloc(sizeof(char)*4);
	char tmpn[3]={'\0'};
	strcpy(temp,"L");
	itoa(n++,tmpn,10);
	strcat(temp,tmpn);
	return temp;
}

/* Function emitSkip skips "howMany" code
 * locations for later backpatch. It also
 * returns the current code position
 */
int emitSkip( int howMany)
{  int i = emitLoc;
   emitLoc += howMany ;
   if (highEmitLoc < emitLoc)  highEmitLoc = emitLoc ;
   return i;
} /* emitSkip */

/* Procedure emitBackup backs up to 
 * loc = a previously skipped location
 */
void emitBackup( int loc)
{ //if (loc > highEmitLoc) emitComment("BUG in emitBackup");
  emitLoc = loc ;
} /* emitBackup */

/* Procedure emitRestore restores the current 
 * code position to the highest previously
 * unemitted position
 */
void emitRestore(void)
{ emitLoc = highEmitLoc;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91免费版在线| 国产福利精品导航| 在线播放日韩导航| 亚洲国产精品影院| 欧美精品少妇一区二区三区| 五月天欧美精品| 日韩区在线观看| 国产乱子轮精品视频| 欧美国产欧美亚州国产日韩mv天天看完整 | 天天免费综合色| 日韩欧美专区在线| 国产福利一区二区三区| 最新国产精品久久精品| 欧美在线一区二区| 青草av.久久免费一区| 久久久五月婷婷| 色综合夜色一区| 日韩电影在线观看网站| 国产日韩精品一区二区三区在线| av一二三不卡影片| 日韩 欧美一区二区三区| 欧美精品一区二| 成人av影院在线| 日韩二区三区在线观看| 国产精品女主播av| 欧美精品一二三| 成人的网站免费观看| 午夜久久久久久久久久一区二区| 久久久久久综合| 欧美日韩色一区| 国产成人av一区| 午夜精品久久久久久久久久| 精品免费国产二区三区| 成人丝袜18视频在线观看| 午夜精品久久久久久久| 欧美国产丝袜视频| 日韩免费高清电影| 色欧美88888久久久久久影院| 精东粉嫩av免费一区二区三区| 亚洲视频在线观看三级| 26uuu精品一区二区| 欧美视频一区二区三区| 成年人国产精品| 国精产品一区一区三区mba桃花 | 欧美最猛性xxxxx直播| 国产美女在线精品| 日本不卡视频一二三区| 亚洲国产精品视频| 亚洲图片你懂的| 久久久亚洲精品石原莉奈 | 国产自产v一区二区三区c| 一区二区三区国产精品| 国产日韩视频一区二区三区| 91精品国产综合久久精品性色| 99久久久国产精品免费蜜臀| 国产麻豆成人精品| 精品一区二区成人精品| 视频一区视频二区中文字幕| 一区二区三区四区乱视频| 国产精品看片你懂得| 国产三区在线成人av| 日韩欧美一区二区不卡| 91精品国产aⅴ一区二区| 在线免费观看日本一区| 91视频精品在这里| 色综合视频在线观看| 91在线播放网址| 成人激情免费电影网址| 成+人+亚洲+综合天堂| 成人黄色综合网站| www.爱久久.com| 成人激情动漫在线观看| 国产成人精品免费视频网站| 国产成人午夜视频| 成人动漫一区二区| 国产91高潮流白浆在线麻豆| 黑人巨大精品欧美一区| 国产一区二区三区观看| 国产成人一区在线| 成人高清免费观看| 91视频一区二区三区| 欧美日韩国产在线观看| 在线电影院国产精品| 欧美一级欧美一级在线播放| 日韩欧美色综合| 久久久久久久久久美女| 国产亚洲视频系列| 日韩美女啊v在线免费观看| 亚洲天堂福利av| 亚洲综合在线第一页| 日日骚欧美日韩| 捆绑紧缚一区二区三区视频| 国产一区二区三区在线观看免费| 国产高清久久久| 97精品久久久久中文字幕 | 不卡一卡二卡三乱码免费网站| av网站一区二区三区| 色综合中文综合网| 欧美伊人久久久久久久久影院 | jlzzjlzz亚洲女人18| 欧美性猛交xxxx乱大交退制版 | 激情欧美一区二区| 高清在线观看日韩| 91免费国产视频网站| 7777精品伊人久久久大香线蕉最新版| 日韩欧美国产高清| 日韩理论片网站| 午夜精品爽啪视频| 国产91精品一区二区麻豆网站| 91国产丝袜在线播放| 日韩理论在线观看| 免费高清在线视频一区·| 成人精品电影在线观看| 欧美高清视频一二三区 | 日韩精品最新网址| 国产精品水嫩水嫩| 舔着乳尖日韩一区| 国产99久久久精品| 欧美调教femdomvk| 久久精品网站免费观看| 亚洲影院在线观看| 国产成人午夜视频| 欧美一区二区大片| 亚洲欧美另类在线| 国产一区二区美女诱惑| 精品视频在线免费| 中文在线一区二区| 日韩av成人高清| 在线精品视频免费观看| 中文字幕av一区二区三区免费看| 亚洲一二三四区不卡| 成人黄色国产精品网站大全在线免费观看| 欧美在线观看18| 欧美国产日本韩| 久久99精品国产麻豆不卡| 欧美三级乱人伦电影| 中文字幕在线一区二区三区| 麻豆成人av在线| 在线欧美小视频| 中文幕一区二区三区久久蜜桃| 日韩不卡一二三区| 欧美午夜不卡在线观看免费| 国产精品三级在线观看| 精久久久久久久久久久| 欧美一区二区精品在线| 亚洲资源中文字幕| 欧洲国内综合视频| 国产欧美日韩三区| 狠狠网亚洲精品| 日韩免费看的电影| 日日摸夜夜添夜夜添精品视频| 91国偷自产一区二区开放时间 | 亚洲综合一区二区精品导航| 粉嫩在线一区二区三区视频| 久久综合狠狠综合久久激情 | 九一久久久久久| 欧美一区二区三区免费观看视频| 亚洲综合免费观看高清完整版在线| 成人精品小蝌蚪| 国产欧美日韩另类视频免费观看| 狠狠色丁香婷综合久久| 欧美一级高清大全免费观看| 五月天亚洲婷婷| 91精品国产综合久久精品图片| 午夜欧美在线一二页| 欧美日韩国产a| 亚洲电影中文字幕在线观看| 色婷婷av一区二区三区gif| 樱花影视一区二区| 91高清视频免费看| 亚洲第一激情av| 91精品国产综合久久精品麻豆| 日韩av在线发布| 日韩欧美激情一区| 国产原创一区二区三区| 国产无一区二区| av一二三不卡影片| 亚洲黄色小说网站| 欧美天堂亚洲电影院在线播放| 亚洲综合视频在线观看| 3d动漫精品啪啪1区2区免费 | 欧美日韩在线观看一区二区| 亚洲第四色夜色| 欧美一级高清片在线观看| 久久99精品国产麻豆不卡| 久久久亚洲精华液精华液精华液| 国产精品中文字幕日韩精品 | 9191国产精品| 国产综合色在线| 国产精品美女久久久久久久| 91黄色在线观看| 日本亚洲免费观看| www国产成人| 91在线观看污| 亚洲成人激情社区| 久久一夜天堂av一区二区三区| jiyouzz国产精品久久| 亚洲小说春色综合另类电影| 欧美成人女星排行榜| www.欧美.com|