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

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

?? interpret.h

?? 該程序是一個MiniPascal語言的編譯器
?? H
字號:
#ifndef _TRANS_H
#define _TRANS_H
//----------------------------------------------------------------------------------------------//

//							解釋程序,仿照老師提供的解釋程序完成

//----------------------------------------------------------------------------------------------//

#include<iostream.h>
//interpret;
#define min 0
#define max 8192
int st[max];
int p,s,b;
int stackbottom;
char filename[80];
bool running;
//
fstream outfile("outfile.obj",ios::trunc|ios::in|ios::out);//用于輸入和輸出的文件,每次打開時都清空。
//
void Error(int lineno,char info[SIZE]){
	cout<<"line:"<<lineno<<"s="<<info<<endl;
	running=false;
}
void programx(int varlength,int templength,int displ,int lineno)
{//功能描述:程序開始,棧頂延伸VarLength+2位
	b=stackbottom;
	s=b+2+varlength;
	if((s+templength)>max){
		Error(lineno,"stack limit");
	}
	else{
		p=p+displ;
	}
}
void endprog(){//功能描述:程序結束,一切OK
	running=false;
}
void procedurex(int varlength,int templength,int displ,int lineno)
{//功能描述:過程頭,棧頂延伸VarLength位
	s=s+varlength;
	if((s+templength)>max){
		Error(lineno,"stack limit");
	}
	else{
		p=p+displ;
	}
}
void endproc(int paramlength){//功能描述:過程結束,棧頂后退ParamLength-1位
	s=b-paramlength-1;
	p=st[b+2];
	b=st[b+1];
}
void dox(int displ){//功能描述:棧頂為真則繼續執行,棧頂為假則跳轉,棧頂后退一位
	if(st[s]==1)
		p=p+2;
	else
		p=p+displ;
}
void gotox(int displ){//功能描述:無條件跳轉,棧頂位置不變
	p=p+displ;
}
void proccall(int level,int displ){//功能描述:過程調用,建立靜態鏈、建立動態鏈、填寫返回地址、
//			將控制轉移到被調用過程的開始,棧頂延伸三位
	int x=b;
	s++;
	while(level>0){
		x=st[x];
		level--;
	}
	st[s]=x;
	st[s+1]=b;
	st[s+2]=p+3;
	b=s;
	s=b+2;
	p=p+displ;
}
void assign(int length){//功能描述:根據棧頂預先放置的地址和若干個數值,
//			將這些數值賦給此地址開始的一串地址空間中,棧頂后退 length-1 位;
	int x,y,i;
	s=s-length-1;
	x=st[s+1];
	y=s+2;
	i=0;
	while(i<length){
		st[x+i]=st[y+i];
		i++;
	}
	p=p+2;
}
void readx(){//功能描述:讀入一個數,置于棧頂存放的地址處,棧頂后退一位
	cin>>st[st[s]];
	s--;
	p++;
}
void writeintx(){//功能描述:將棧頂元素的值輸出,棧頂后退一位
	cout<<st[s]<<setw(6)<<endl;
	s--;
	p++;
}
void writebooleanx(){//功能描述:將棧頂元素的值以布爾型輸出,棧頂后退一位
	if(st[s]==1)
		cout<<"true"<<endl;
	else cout<<"false"<<endl;
	s--;
	p++;
}
void notequal(){//功能描述:判斷棧頂依次存放的兩個值的不等關系,將布爾型的結果置于棧頂
//			棧頂后退一位
	s--;
	if(st[s]!=st[s+1])
		st[s]=1;
	else st[s]=0;
	p++;
}
void notless(){//功能描述:判斷棧頂依次存放的兩個值的大于等于關系,將布爾型的結果置于棧頂
//棧頂后退一位
	s--;
	if(st[s]>=st[s+1])
		st[s]=1;
	else st[s]=0;
	p++;
}
void notgreater(){//功能描述:判斷棧頂依次存放的兩個值的小于等于關系,將布爾型的結果置于棧頂
//			棧頂后退一位
	s--;
	if(st[s]<=st[s+1])
		st[s]=1;
	else 
		st[s]=0;
	p++;
}
void greater(){//功能描述:判斷棧頂依次存放的兩個值的大于關系,將布爾型的結果置于棧頂
//			棧頂后退一位
	s--;
	if(st[s]>st[s+1])
		st[s]=1;
	else 
		st[s]=0;
	p++;
}
void Equal(){//功能描述:判斷棧頂依次存放的兩個值的是否相等,將布爾型的結果置于棧頂
//			棧頂后退一位
	s--;
	if(st[s]==st[s+1])
		st[s]=1;
	else
		st[s]=0;
	p++;
}
void less(){//功能描述:判斷棧頂依次存放的兩個值的小于關系,將布爾型的結果置于棧頂
//			棧頂后退一位
	s--;
	if(st[s]<st[s+1])
		st[s]=1;
	else
		st[s]=0;
	p++;
}
void orx(){//功能描述:將棧頂依次存放的兩個值相或的結果置于棧頂,棧頂后退一位
	s--;
	if(st[s]==0)
		st[s]=st[s+1];
	p++;
}
void subtract(){//功能描述:將棧頂依次存放的兩個值相減的結果置于棧頂,棧頂后退一位
	s--;
	st[s]=st[s]-st[s+1];
	p++;
}
void minus(){//功能描述:將棧頂值取相反數,棧頂位置不變
	st[s]=-st[s];
	p++;
}
void add(){//功能描述:將棧頂依次存放的兩個值相加的結果置于棧頂,棧頂后退一位
	s--;
	st[s]=st[s]+st[s+1];
	p++;
}
void andx(){//功能描述:將棧頂依次存放的兩個值相與的結果置于棧頂,棧頂后退一位
	s--;
	if(st[s]==1)
		st[s]=st[s+1];
	p++;
}
void modulo(){//功能描述:將棧頂依次存放的兩個值取模的結果置于棧頂,棧頂后退一位
	s--;
//	if(st[s+1]==0){
//		Error(
	st[s]=st[s]%st[s+1];
	p++;
}
void divide(){//功能描述:將棧頂依次存放的兩個值之商置于棧頂,棧頂后退一位
	s--;
	st[s]=st[s]/st[s+1];
	p++;
}
void multiply(){//功能描述:將棧頂依次存放的兩個值之積置于棧頂,棧頂后退一位
	s--;
	st[s]=st[s]*st[s+1];
	p++;
}
void notx(){//功能描述:將棧頂值取反,棧頂位置不變
	if(st[s]==1)
		st[s]=0;
	else
		st[s]=1;
	p++;
}
void value(int length){//功能描述:根據棧頂地址,把自該地址開始的若干個變量的值推到棧頂
//棧頂延伸length-1位
	int x,i;
	x=st[s];
	i=0;
	while(i<length){
		st[s+i]=st[x+i];
		i++;
	}
	s=s+length-1;
	p=p+2;
}
void constant(int value){//功能描述:將常數值置于棧頂,棧頂延伸一位
	s++;
	st[s]=value;
	p+=2;
}
void Field(int displ){//功能描述:求記錄中域名的地址,棧頂位置不變
	st[s]=st[s]+displ;
	p+=2;
}
void index(int lower,int upper,int length,int lineno)
{//功能描述:求下標變量地址于棧頂,棧頂后退一位
	//if(flag==1)
	//	st[s]=-st[s];
	int i=st[s];
	s--;
	if((i<lower)||(i>upper))
	{
		Error(lineno,"Array range error");
		errorcount++;
		cout<<progname<<".obj- "<<errorcount<<" error(s)"<<endl;
	}
	else st[s]=st[s]+(i-lower)*length;
	p=p+5;
}
void varparam(int level,int displ){//功能描述:求變量的值于棧頂,棧頂延伸一位
	int x=b;
	s++;
	while(level>0){
		x=st[x];
		level--;
	}
	st[s]=st[x+displ];
	p=p+3;
}
void variable(int level,int displ){//功能描述:求變量的地址于棧頂,棧頂延伸一位
	int x=b;
	s++;
	while(level>0){
		x=st[x];
		level--;
	}
	st[s]=x+displ;
	p=p+3;
}
void runprogram(){//功能描述:運行目標代碼
	running=true;
	p=min;
	while(running){
		switch(st[p]){
		case 0:add();break;
		case 1:andx();break;
		case 2:assign(st[p+1]);break;
		case 3:constant(st[p+1]);break;
		case 4:divide();break;
		case 5:dox(st[p+1]);break;
		case 6:endproc(st[p+1]);break;
		case 7:endprog();break;
		case 8:endproc(st[p+1]);break;
		case 9:Equal();break;
		case 10:Field(st[p+1]);break;
		case 11:greater();break;
		case 12:gotox(st[p+1]);break;
		case 13:index(st[p+1],st[p+2],st[p+3],st[p+4]);break;
		case 14:less();break;
		case 15:minus();break;
		case 16:modulo();break;
		case 17:multiply();break;
		case 18:notequal();break;
		case 19:notgreater();break;
		case 20:notless();break;
		case 21:notx();break;
		case 22:orx();break;
		case 23:proccall(st[p+1],st[p+2]);break;
		case 24:procedurex(st[p+1],st[p+2],st[p+3],st[p+4]);break;
		case 25:programx(st[p+1],st[p+2],st[p+3],st[p+4]);break;
		case 26:readx();break;
		case 27:subtract();break;
		case 28:value(st[p+1]);break;
		case 29:variable(st[p+1],st[p+2]);break;
		case 30:varparam(st[p+1],st[p+2]);break;
		case 31:writeintx();break;
		case 32:writebooleanx();
		}//switch
	}//while
}
void loadprogram(){//功能描述:載入目標代碼(數字串)
	int x=min;
	int ch;
    outfile.seekp(0);
	while(!outfile.eof()){
		outfile>>ch;//跳過任何文件中的空白字符
		st[x]=ch;
		x++;
	}
	stackbottom=x;
	runprogram();
}
#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久一区二区三区四区| 一本大道久久a久久综合| 亚洲在线视频网站| 一区二区三区自拍| 亚洲视频一区在线| 国产精品成人一区二区三区夜夜夜| www精品美女久久久tv| 久久日韩精品一区二区五区| 精品免费国产一区二区三区四区| 日韩视频中午一区| 欧美不卡一区二区| 国产亚洲污的网站| 国产农村妇女精品| 亚洲精品精品亚洲| 午夜国产不卡在线观看视频| 午夜精品福利一区二区蜜股av| 视频在线观看91| 精品亚洲免费视频| 成人福利视频网站| 欧美性猛片aaaaaaa做受| 欧美日韩成人综合在线一区二区| 欧美理论在线播放| 久久久亚洲欧洲日产国码αv| 国产精品午夜在线观看| 亚洲黄色在线视频| 另类调教123区| 成人av免费网站| 欧美美女一区二区三区| 精品少妇一区二区三区视频免付费| 久久影视一区二区| 一区二区国产盗摄色噜噜| 日韩高清不卡一区二区三区| 国产精品正在播放| 欧美亚洲综合一区| 久久一区二区视频| 亚洲一区二区在线观看视频| 免费成人av在线播放| av在线一区二区三区| 欧美精品久久久久久久久老牛影院| 久久综合九色综合久久久精品综合| 亚洲天堂2016| 国内精品伊人久久久久av影院 | 国产高清不卡二三区| 色综合天天性综合| 久久综合色8888| 日韩精品欧美成人高清一区二区| 成人免费视频caoporn| 91精品国产入口在线| 亚洲男人都懂的| 成人h动漫精品一区二区| 欧美精品第1页| 有码一区二区三区| 风间由美性色一区二区三区| 日韩一区二区在线播放| 亚洲夂夂婷婷色拍ww47| 波多野结衣视频一区| 精品欧美乱码久久久久久| 亚洲午夜精品在线| 91麻豆高清视频| 国产精品福利一区二区| 国产一区二区福利| 欧美成人艳星乳罩| 污片在线观看一区二区| 欧美日韩国产区一| 五月婷婷另类国产| 欧美日韩一区小说| 亚洲成av人片在www色猫咪| 91在线免费播放| 1000精品久久久久久久久| 国产成人在线看| 国产日韩欧美不卡在线| 国产在线一区观看| 久久天天做天天爱综合色| 美女视频第一区二区三区免费观看网站| 在线影院国内精品| 亚洲制服丝袜av| 在线成人午夜影院| 日韩av一区二区三区四区| 88在线观看91蜜桃国自产| 午夜精品一区二区三区电影天堂 | 久久er99精品| 欧美成人高清电影在线| 国产在线播放一区二区三区| 2023国产精品| 不卡的电影网站| 自拍偷拍亚洲综合| 欧美性生交片4| 麻豆91精品视频| 国产三级精品三级| 99久久综合狠狠综合久久| 一区二区三区四区国产精品| 欧美日韩亚洲丝袜制服| 久久精品噜噜噜成人88aⅴ| 久久午夜老司机| 色噜噜狠狠一区二区三区果冻| 亚洲一卡二卡三卡四卡| 欧美一级搡bbbb搡bbbb| 国产黄色精品网站| 亚洲免费资源在线播放| 在线不卡欧美精品一区二区三区| 美女www一区二区| 中文久久乱码一区二区| 91成人在线观看喷潮| 极品少妇一区二区| 亚洲精品免费在线| 日韩欧美成人一区| 成a人片亚洲日本久久| 亚洲线精品一区二区三区八戒| 制服视频三区第一页精品| 国产成人av一区| 亚洲第一福利一区| 久久久久亚洲蜜桃| 欧美亚洲精品一区| 国产一区二区视频在线播放| 亚洲视频一二三区| 日韩精品一区在线观看| 99re成人在线| 久久99国产精品久久| 悠悠色在线精品| 久久免费看少妇高潮| 欧美色图一区二区三区| 国产河南妇女毛片精品久久久| 亚洲乱码国产乱码精品精的特点 | 国产高清精品在线| 亚洲午夜精品17c| 欧美经典三级视频一区二区三区| 欧美午夜精品一区二区蜜桃| 国产大陆精品国产| 视频在线观看一区二区三区| 亚洲日本丝袜连裤袜办公室| 337p粉嫩大胆色噜噜噜噜亚洲| 欧美三级三级三级爽爽爽| 国产成人超碰人人澡人人澡| 美女诱惑一区二区| 亚洲一区二区三区四区的| 国产午夜亚洲精品羞羞网站| 欧美一二三区在线观看| 欧美日韩电影在线播放| 色婷婷av一区| 91色视频在线| 成人性色生活片免费看爆迷你毛片| 日本不卡一区二区| 亚洲国产精品自拍| 亚洲福利视频一区| 性感美女久久精品| 亚洲综合成人在线| 亚洲影视在线观看| 亚洲精品免费在线观看| 一区二区三区日韩欧美精品| 国产精品嫩草影院av蜜臀| 久久久久久久久久久久电影| 精品动漫一区二区三区在线观看| 日韩无一区二区| 日韩欧美一级特黄在线播放| 欧美一区二区三区四区五区 | 中文av一区特黄| 国产精品午夜在线| 亚洲视频免费观看| 成人欧美一区二区三区在线播放| 国产人妖乱国产精品人妖| 国产精品情趣视频| 国产精品久久久久影视| 综合久久久久综合| 亚洲精品国产视频| 一区二区三区四区精品在线视频| 亚洲免费av在线| 性久久久久久久久久久久| 久久国产三级精品| 高清不卡在线观看av| 91女厕偷拍女厕偷拍高清| 在线观看亚洲a| 91精品国产综合久久久久久久 | 精品一区二区日韩| 高清免费成人av| 欧洲视频一区二区| 日韩亚洲欧美综合| 国产亚洲婷婷免费| 樱桃国产成人精品视频| 三级欧美在线一区| 国产精品自拍网站| 色综合天天天天做夜夜夜夜做| 欧美日韩第一区日日骚| 久久综合色综合88| 伊人开心综合网| 久久福利资源站| 色999日韩国产欧美一区二区| 欧美美女一区二区三区| 精品国产乱码久久久久久1区2区 | 久久精品日韩一区二区三区| 中文字幕一区二区三区乱码在线 | 中文字幕欧美一区| 婷婷开心久久网| 国产成人综合在线| 欧美日高清视频| 国产精品第13页| 久久精品av麻豆的观看方式| 色综合久久综合| 久久夜色精品国产欧美乱极品| 亚洲欧洲日韩在线| 玖玖九九国产精品|