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

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

?? tjyj.cpp

?? 2. 數據結構:設計存儲中間結果及中間代碼(四元式)的數據結構; 3. 算法:遞歸下降分析法的實現;
?? CPP
字號:
#include<iostream.h>
#include<fstream.h>
#include<string.h>

#define $ASSIGN 249
#define $IF 250
#define $THEN 251
#define $ELSE 252
#define $GREAT 253
#define $ID 254

//有效字符串: IF,ELSE,THEN, a,b,x,>,=
/*文法:
  S->id=id | if E then S else S
  E->id < id
*/

typedef struct Token
{
	int type;
	char ch;
}Token;

typedef enum{JUMP,JG,ASSIGN,END}OpKind;
typedef struct
{
	int label;			//標號
	OpKind op;
	char par1,par2;
	union
	{
		char result;
		int address;
	};
}Quad;					//四元式

#define MAX_TOKEN 256  //Token表大小
#define MAX_QUAD 256   //四元式數組大小

Token tokentable[MAX_TOKEN];
Quad quad[MAX_QUAD];
int token_index;       //token表索引
int total_len;         //token表有效長度

int quad_len;          //四元式表有效長度
int quad_index;        //四元式索引

int label;
ifstream ins;

bool init(char filename[255]);
bool cifa();

void ERROR();
void S(int,int);

void E(int,int,int);
bool nexttoken();
int newlabel();
void yuyi();

void printQuad();
void main()
{
	cout<<"請輸入文件名:";
	char fname[200];
	cin>>fname;
	if(!init(fname))
		return;
	if(!cifa())
		return;
	char ch;
	while(1)
	{
		if(ins.eof())
			break;
		ins>>ch;
	}
	cout<<"詞法分析結果:"<<endl;
	nexttoken();
	cout<<endl;
	cout<<"使用的產生式:"<<endl;
	yuyi();
	cout<<endl;
	cout<<"產生的四元式:"<<endl;
	printQuad();
}
int newlabel()
{
	return label++;
}
bool init(char filename[255])
{
	token_index=0;
	total_len=0;
	quad_len=0;
	quad_index=0;
	label=0;
	ins.open(filename,ios::nocreate | ios::in);
	if(ins.fail())
	{
		cout<<"打開文件出錯!"<<endl;
		return false;
	}
	return true;
}

bool cifa()
{
	char buf[16];
	char ch;
	while(1)
	{
		ins>>ch;
		if(ins.fail())
			break;
		if(ch=='I')
		{
			ins>>buf;
			if(strcmp(buf,"F")==0)
				tokentable[total_len++].type=$IF;
		}
		else if(ch=='T')
		{
			ins>>buf;
			if(strcmp(buf,"HEN")==0)
				tokentable[total_len++].type=$THEN;
		}
		else if(ch=='E')
		{
			ins>>buf;
			if(strcmp(buf,"LSE")==0)
				tokentable[total_len++].type=$ELSE;
		}
		else if(ch=='>')
		{
			tokentable[total_len++].type=$GREAT;
		}
		else if(ch=='=')
		{
			tokentable[total_len++].type=$ASSIGN;
		}
		else if(ch=='x' || (ch>='a' && ch<='z'))
		{
			tokentable[total_len].type=$ID;
			tokentable[total_len++].ch=ch;
		}
	}
	return true;
	
}

#define AD_RESULT(nlabel,nop,npar1,npar2,nresult) {quad[quad_len].label=nlabel; quad[quad_len].op=nop; quad[quad_len].par1=npar1; quad[quad_len].par2=npar2; quad[quad_len].result=nresult; quad_len++; }
#define AD_ADDRESS(nlabel,nop,npar1,npar2,naddress) {	quad[quad_len].label=nlabel; 	quad[quad_len].op=nop; 	quad[quad_len].par1=npar1; 	quad[quad_len].par2=npar2; 	quad[quad_len].address=naddress; 	quad_len++; }

Token cur;
bool nexttoken()
{
	if(token_index>=total_len)
		return false;
	cur.type=tokentable[token_index].type;
	cur.ch=tokentable[token_index].ch;
	token_index++;
	return true;
}

void ERROR(char str[20])
{
	cout<<"error!  "<<str<<endl;
}

void S(int begin,int next)
{

	if(cur.type==$ID)
	{
		char a,b;
		cout<<"S->"<<cur.ch;
		a=cur.ch;
		if(!nexttoken())
			ERROR("S");
		if(cur.type!=$ASSIGN)
			ERROR("S");
		cout<<"=";
		if(!nexttoken())
			ERROR("S");
		if(cur.type!=$ID)
			ERROR("S");
		cout<<cur.ch<<endl;
		b=cur.ch;
		AD_RESULT(begin,ASSIGN,b,0,a);
		AD_ADDRESS(-1,JUMP,0,0,next);
		nexttoken();
	}
	else if(cur.type==$IF)
	{
		if(!nexttoken())
			ERROR("S");
		{
			cout<<"S->if E then S else S"<<endl;
			int etrue=newlabel();
			int efalse=newlabel();
			
			E(begin,etrue,efalse);
			if(cur.type==$THEN)
			{
				if(!nexttoken())
				ERROR("S");
				
				S(etrue,next);

				if(cur.type==$ELSE)
				{
					if(!nexttoken())
					ERROR("S");
					S(efalse,next);
				}
				else
				{
					ERROR("S");
				}
			}
			else
				ERROR("S");
		}
	}
}

void E(int begin,int etrue,int efalse)
{
	if(cur.type==$ID)
	{
		char a,b;
		a=cur.ch;
		cout<<"E->"<<cur.ch<<">";
		if(!nexttoken())
			ERROR("E()");
		if(cur.type!=$GREAT)
			ERROR("E()");
		if(!nexttoken())
			ERROR("E()");
		if(cur.type!=$ID)
			ERROR("E()");
		cout<<cur.ch<<endl;
		b=cur.ch;

		AD_ADDRESS(begin,JG,a,b,etrue);
		AD_ADDRESS(-1,JUMP,0,0,efalse);
		if(!nexttoken())
			ERROR("E()");
	}
	else
		ERROR("E()");
}

void yuyi()
{
	S(-1,1000);
	AD_RESULT(1000,END,0,0,'-');
}

void printQuad()
{
	for(int i=0;i<quad_len;i++)
	{
		if(quad[i].label>-1)
			cout<<"L"<<quad[i].label<<":";
		else cout<<"     ";
		if(quad[i].op==JG)
		{
			cout<<"J>,"<<quad[i].par1<<","<<quad[i].par2<<",L"<<quad[i].address<<endl;
		}
		else if(quad[i].op==JUMP)
		{
			cout<<"J ,"<<"-,-,L"<<quad[i].address<<endl;
		}
		else if(quad[i].op==ASSIGN)
		{
			cout<<"= ,"<<quad[i].par1<<",-,"<<quad[i].result<<endl;
		}
		else if(quad[i].op==END)
		{
			cout<<"-,-,-,-"<<endl;
		}
	}
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日本韩国一区二区三区视频| 久久99日本精品| 欧美不卡视频一区| 欧美女孩性生活视频| 在线免费av一区| 色综合夜色一区| 91福利视频久久久久| 高潮精品一区videoshd| 另类小说图片综合网| 男人的j进女人的j一区| 久久成人av少妇免费| 麻豆精品一二三| 捆绑调教一区二区三区| 美女视频免费一区| 毛片一区二区三区| 国产精品资源站在线| 盗摄精品av一区二区三区| 国产一二三精品| 成人一区二区三区在线观看| 成人综合婷婷国产精品久久 | 亚洲欧美色综合| 136国产福利精品导航| 亚洲男人都懂的| 亚洲成人在线免费| 七七婷婷婷婷精品国产| 国产一区亚洲一区| 成人av免费在线观看| 欧美性猛片xxxx免费看久爱| 欧美老年两性高潮| 久久婷婷一区二区三区| 中文字幕在线观看一区二区| 一区二区三区在线免费视频| 麻豆视频观看网址久久| 国产一区二区按摩在线观看| 99久久综合国产精品| 欧美三电影在线| 精品国产乱子伦一区| 亚洲乱码国产乱码精品精小说| 亚洲国产精品久久人人爱| 久久99久久久欧美国产| 99久久99久久精品免费看蜜桃| 欧美日韩国产一级二级| 欧美国产精品一区二区三区| 亚洲一区二区在线免费观看视频| 麻豆一区二区99久久久久| av在线不卡电影| 欧美电影免费观看完整版| 中文字幕一区二区三区色视频| 日本成人在线电影网| www.亚洲在线| 精品国内片67194| 一区二区三区不卡视频在线观看| 国产一区二区三区在线看麻豆| 在线免费观看视频一区| 国产欧美日韩激情| 人人狠狠综合久久亚洲| 91黄色激情网站| 国产精品麻豆欧美日韩ww| 轻轻草成人在线| 欧美系列日韩一区| 综合分类小说区另类春色亚洲小说欧美 | 欧洲国产伦久久久久久久| 国产亚洲va综合人人澡精品 | 日韩精品一区二| 亚洲成a人片在线不卡一二三区| 不卡的av中国片| 精品国产一区二区三区久久久蜜月 | 亚洲精品一区二区三区在线观看| 亚洲精品福利视频网站| 不卡大黄网站免费看| 久久中文娱乐网| 久久99精品国产91久久来源| 欧美三区在线观看| 亚洲黄网站在线观看| 91麻豆高清视频| 中文字幕色av一区二区三区| 丰满亚洲少妇av| 中文字幕av一区二区三区高| 国产激情一区二区三区四区| 久久精品一级爱片| 国产精品中文有码| 国产欧美精品在线观看| 国产精品69毛片高清亚洲| 久久精品夜色噜噜亚洲a∨| 国产一区二区中文字幕| 国产欧美精品国产国产专区| 国产黑丝在线一区二区三区| 国产欧美一区二区精品忘忧草| 国产成人自拍网| 国产精品国产三级国产aⅴ中文| av中文字幕一区| 一区二区三区成人| 91精品国产高清一区二区三区| 日本欧美在线观看| 久久午夜免费电影| 成人精品国产免费网站| 亚洲精品亚洲人成人网在线播放| 色噜噜狠狠色综合中国| 香港成人在线视频| 精品久久一区二区| 波波电影院一区二区三区| 亚洲精品网站在线观看| 欧美久久一二三四区| 精品午夜久久福利影院| 欧美国产一区二区在线观看| 91丨porny丨国产| 日韩专区中文字幕一区二区| 精品对白一区国产伦| av中文字幕在线不卡| 视频一区二区不卡| 久久久精品人体av艺术| 欧美在线free| 精品一区二区在线免费观看| 亚洲欧洲精品一区二区三区 | 国产寡妇亲子伦一区二区| 一区二区三区**美女毛片| 日韩精品一区二| 91精品91久久久中77777| 麻豆精品久久久| 亚洲欧美日韩国产手机在线| 精品国产一区二区三区不卡| av一本久道久久综合久久鬼色| 午夜精品福利一区二区蜜股av| 久久久精品黄色| 欧美日韩在线精品一区二区三区激情| 精品无码三级在线观看视频| 一区二区三区日韩欧美精品| 久久先锋资源网| 欧美日韩免费不卡视频一区二区三区 | 夜夜嗨av一区二区三区| 精品久久久三级丝袜| 在线观看不卡视频| av中文字幕不卡| 国产一区二区毛片| 免费成人av在线| 一区二区三区四区不卡视频| 国产精品国产三级国产有无不卡 | 欧美日韩国产区一| 99综合电影在线视频| 国产一区二区在线视频| 视频一区视频二区在线观看| 亚洲黄色在线视频| 中文字幕在线观看不卡| 国产夜色精品一区二区av| 欧美一级黄色片| 欧美人动与zoxxxx乱| 在线观看av一区二区| 91免费观看国产| 99久久精品免费| 成人aaaa免费全部观看| 懂色av一区二区三区免费看| 精品在线观看免费| 精品一区二区免费视频| 久久国产人妖系列| 久久精品国产99国产| 玖玖九九国产精品| 久久机这里只有精品| 麻豆精品久久久| 日本中文一区二区三区| 免费美女久久99| 久久精品国产精品亚洲综合| 日韩va欧美va亚洲va久久| 日韩成人精品在线观看| 婷婷久久综合九色国产成人| 五月天精品一区二区三区| 日韩精品视频网| 免播放器亚洲一区| 久久国产精品色| 国产成人精品免费视频网站| 成人一区在线看| 色综合色综合色综合| 欧美午夜不卡在线观看免费| 欧美精品久久久久久久多人混战 | 国产精品一区二区黑丝| 国产99久久久国产精品| 99re6这里只有精品视频在线观看| 91在线观看高清| 欧美三级欧美一级| 日韩女优制服丝袜电影| 国产三级三级三级精品8ⅰ区| 国产精品久线观看视频| 亚洲一二三四区| 天天综合天天综合色| 国产精品123| 波多野结衣欧美| 91精品黄色片免费大全| 国产日韩欧美精品电影三级在线| 亚洲日本在线天堂| 日韩—二三区免费观看av| 国产一区亚洲一区| 91猫先生在线| 精品国产成人系列| 亚洲精品一卡二卡| 久久99精品国产麻豆婷婷| 97精品久久久午夜一区二区三区 | 国产伦精品一区二区三区免费 | 国产蜜臀97一区二区三区| 一区二区在线免费观看| 狠狠色综合播放一区二区| 色综合久久久网|