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

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

?? scpascal.cpp

?? pascal編譯器
?? CPP
?? 第 1 頁 / 共 5 頁
字號:
							newerrorptr->next = errorptr;
				
							errorptr = nullptr;
							
							return errorptr;
						}
						break;
					case rw_real:
					case rw_integer:
					case rw_boolean:
						{
							if ((errorptr->label_type == rw_function)||(errorptr->label_type == rw_procedure)||(errorptr->label_type == rw_begin))
								if ((topoferror(1) == rw_of)||(topoferror(1) == colon)){
									cout<<": expect ';' there!"<<endl;
									struct label_stream *newerrorptr = new struct label_stream;
									struct label_stream *nullptr = new struct label_stream;
									nullptr->next=newerrorptr;
									newerrorptr->label_type = sem;
									newerrorptr->next = errorptr;
				
									errorptr = nullptr;
							
									return errorptr;
								}	
						}
						break;
					case id:
						{
							if ((errorptr->label_type == rw_real)||(errorptr->label_type == rw_integer)||(errorptr->label_type == rw_boolean)){
								cout<<": expect ':'there "<<endl;
								
								struct label_stream *newerrorptr = new struct label_stream;
								struct label_stream *nullptr = new struct label_stream;
								nullptr->next=newerrorptr;
								newerrorptr->label_type = colon;
								newerrorptr->next = errorptr;
				
								errorptr = nullptr;
							
								return errorptr;
							}
								
						}
					
					default:
						{
							struct label_stream *nullptr = new struct label_stream;
							nullptr = errorptr;
							errorptr = errorptr->next;
							while(topoferror(0) != program_head){
								pop(1);
								poperrorelement(1);
							}
							while((errorptr->label_type != rw_begin)&&(errorptr->label_type != rw_function)||(errorptr->label_type != rw_procedure)){
								errorptr=errorptr->next;
								nullptr = nullptr->next;
							}
							
							return nullptr;
						}
				}
		}
			break;
		case 3:{//接受function或procedure,進入子程序的申明狀態
			cout<<"subproc decalration parameter error!"<<endl;
			int i=0;
			while((topoferror(i)!=rw_function)&&(topoferror(i)!=rw_procedure)){
				
				i=i+1;
				cout<<topoferror(i)<<endl;
			}
			
			switch(topoferror(i)){
				case rw_function:{
					cout<<"auto recovery this function parameter!"<<endl;
					while(topoferror(0) != rw_function){
						pop(1);
						poperrorelement(1);
					}
					while((errorptr->label_type!=rw_var)&&(errorptr->label_type != rw_begin)){
						errorptr=errorptr->next;
					}
					
					struct label_stream *newerrorptr1 = new struct label_stream;
					struct label_stream *newerrorptr2 = new struct label_stream;
					struct label_stream *newerrorptr3 = new struct label_stream;
					struct label_stream *newerrorptr4 = new struct label_stream;
					struct label_stream *nullptr = new struct label_stream;

					newerrorptr1->label_type = id;
					newerrorptr2->label_type = colon;
					newerrorptr3->label_type = rw_integer;
					newerrorptr4->label_type = sem;

					newerrorptr4->next=errorptr;
					newerrorptr3->next=newerrorptr4;
					newerrorptr2->next=newerrorptr3;
					newerrorptr1->next=newerrorptr2;
					
					nullptr->next=newerrorptr1;
					
					errorptr = nullptr;
					
					return errorptr;
				}
				break;
				case rw_procedure:{
					cout<<"auto recovery this procedure parameter!"<<endl;
					while(topoferror(0) != rw_procedure){
						pop(1);
						poperrorelement(1);
					}
					while((errorptr->label_type!=rw_var)&&(errorptr->label_type != rw_begin)){
						errorptr=errorptr->next;
					}
					
					struct label_stream *newerrorptr1 = new struct label_stream;
					struct label_stream *newerrorptr2 = new struct label_stream;
					struct label_stream *nullptr = new struct label_stream;
					newerrorptr1->label_type = id;
					newerrorptr2->label_type = sem;					
					
					newerrorptr2->next=errorptr;
					newerrorptr1->next=newerrorptr2;
					nullptr->next=newerrorptr1;
					
					errorptr = nullptr;
					
					return errorptr;
				}
				break;
				default:{
					cout<<"auto funorpro recovery!!"<<endl;
					
					while((topoferror(0) != subproc_declarations)&&(topoferror(0) != declarations)){
						pop(1);
						poperrorelement(1);
					}
					while((errorptr->label_type!=rw_var)&&(errorptr->label_type != rw_begin)){
						errorptr=errorptr->next;
					}
					
					struct label_stream *newerrorptr1 = new struct label_stream;
					struct label_stream *newerrorptr2 = new struct label_stream;
					struct label_stream *newerrorptr3 = new struct label_stream;
					struct label_stream *nullptr = new struct label_stream;
					newerrorptr1->label_type = rw_procedure;
					newerrorptr2->label_type = id;
					newerrorptr3->label_type = sem;					
					
					newerrorptr3->next=errorptr;
					newerrorptr2->next=newerrorptr3;
					newerrorptr1->next=newerrorptr2;
					nullptr->next=newerrorptr1;
					
					errorptr = nullptr;
					
					return errorptr;
				}
				break;
			}
		}
			break;
		case 4:{//子程序接受var后的狀態,申明狀態
			cout<<"subproc declaration error!"<<endl;
				switch (topoferror(0)){//棧頂的符號
					case rw_end:
						{
							cout<<": expect ';' there! "<<endl;
							struct label_stream *newerrorptr = new struct label_stream;
							struct label_stream *nullptr = new struct label_stream;
							nullptr->next=newerrorptr;
							newerrorptr->label_type = sem;
							newerrorptr->next = errorptr;
				
							errorptr = nullptr;
							
							return errorptr;
						}
						break;
					case rw_real:
					case rw_integer:
					case rw_boolean:
						{
							if ((errorptr->label_type == rw_function)||(errorptr->label_type == rw_procedure)||(errorptr->label_type == rw_begin))
								if ((topoferror(1) == rw_of)||(topoferror(1) == colon)){
									cout<<": expect ';' there!"<<endl;
									struct label_stream *newerrorptr = new struct label_stream;
									struct label_stream *nullptr = new struct label_stream;
									nullptr->next=newerrorptr;
									newerrorptr->label_type = sem;
									newerrorptr->next = errorptr;
				
									errorptr = nullptr;
							
									return errorptr;
								}	
						}
						break;
					case id:
						{
							if ((errorptr->label_type == rw_real)||(errorptr->label_type == rw_integer)||(errorptr->label_type == rw_boolean)){
								cout<<": expect ':'there "<<endl;
								
								struct label_stream *newerrorptr = new struct label_stream;
								struct label_stream *nullptr = new struct label_stream;
								nullptr->next=newerrorptr;
								newerrorptr->label_type = colon;
								newerrorptr->next = errorptr;
				
								errorptr = nullptr;
							
								return errorptr;
							}
								
						}
					
					default:
						{
							struct label_stream *nullptr = new struct label_stream;
							nullptr = errorptr;
							errorptr = errorptr->next;
							while(topoferror(0) != subproc_head){
								pop(1);
								poperrorelement(1);
							}
							while(errorptr->label_type != rw_begin){
								errorptr=errorptr->next;
								nullptr = nullptr->next;
							}
							
							return nullptr;
						}
				}
		}
			break;
		case 5:{//子程序開始進入begin狀態
			cout<<"subproc have a ERROR!"<<endl;
			if ((topoferror(0)==sem)&&(errorptr->label_type==rw_end)){//程序end前語句有分號
				pop(1);
				poperrorelement(1);
				struct label_stream *nullptr = new struct label_stream;
				nullptr->next=errorptr;
				errorptr=nullptr;
				cout<<"before end have error ';'"<<endl;
				return errorptr;
			}
			
			while((topoferror(0) != sem)&&(topoferror(0)!= rw_begin)){
				pop(1);
				poperrorelement(1);
			}
			while((errorptr->label_type != sem)&&(errorptr->label_type != rw_end)){
				errorptr=errorptr->next;
			}
			struct label_stream *nullptr = new struct label_stream;
			
			nullptr->next=errorptr;
			errorptr=nullptr;
			cout<<"auto recovery statement error"<<endl;
			return errorptr;
			
			
		}
			break;
		case 6:{//子程序已經接受end,等待接受';'狀態
			cout<<": expect ';' there!"<<endl;
				
			struct label_stream *newerrorptr = new struct label_stream;
			struct label_stream *nullptr = new struct label_stream;
			nullptr->next=newerrorptr;
			newerrorptr->label_type = sem;
			newerrorptr->next = errorptr;
			
			errorptr = nullptr;
				
			return errorptr;
		}
			break;
		case 7:{//子程序已經完成,但未規約完成
			while(topoferror(0)!=rw_program){
				pop(1);
				poperrorelement(1);
			}
			while(errorptr->label_type!=DOLLAR){
				errorptr=errorptr->next;
			}
			struct label_stream *newerrorptr1 = new struct label_stream;
			struct label_stream *newerrorptr2 = new struct label_stream;
			struct label_stream *newerrorptr3 = new struct label_stream;
			struct label_stream *newerrorptr4 = new struct label_stream;
			struct label_stream *nullptr = new struct label_stream;
			newerrorptr1->label_type = id;
			newerrorptr2->label_type = sem;					
			newerrorptr3->label_type = rw_begin;
			newerrorptr4->label_type = rw_end;
					
			newerrorptr4->next=errorptr;
			newerrorptr3->next=newerrorptr4;
			newerrorptr2->next=newerrorptr3;
			newerrorptr1->next=newerrorptr2;
			nullptr->next=newerrorptr1;
			
			errorptr = nullptr;
					
			return errorptr;
		}
			break;
		case 8:{//主程序接受begin,正在主程序中
			cout<<"main program have a ERROR!"<<endl;
			if ((topoferror(0)==sem)&&(errorptr->label_type==rw_end)){//程序end前語句有分號
				pop(1);
				poperrorelement(1);
				struct label_stream *nullptr = new struct label_stream;
				nullptr->next=errorptr;
				errorptr=nullptr;
				cout<<"before end have error ';'"<<endl;
				return errorptr;
			}
			
			while((topoferror(0) != sem)&&(topoferror(0)!= rw_begin)){
				pop(1);
				poperrorelement(1);
			}
			while((errorptr->label_type != sem)&&(errorptr->label_type != rw_end)){
				errorptr=errorptr->next;
			}
			if(errorptr->label_type == sem) errorptr=errorptr->next;
			struct label_stream *nullptr = new struct label_stream;
			
			nullptr->next=errorptr;
			errorptr=nullptr;
			cout<<"auto recovery error statement!"<<endl;
			return errorptr;
			
		}
			break;
		case 9:{//得到end沒有得到'.'
			if(errorptr->label_type==DOLLAR){
				cout<<"end without '.'"<<endl;
				struct label_stream *nullptr = new struct label_stream;
				struct label_stream *newerrorptr = new struct label_stream;
				
				newerrorptr->next = errorptr;
				newerrorptr->label_type = node;
				nullptr->next=newerrorptr;
				errorptr=nullptr;
			}else{
				while(errorptr->label_type!=DOLLAR){
					errorptr=errorptr->next;
				}
				cout<<":'.' expect after end!"<<endl;
				struct label_stream *nullptr = new struct label_stream;
				nullptr->next=errorptr;
				errorptr=nullptr;
			}
			return errorptr;
			
		}
			break;
		case 10:{//得到.程序完成
			while(topoferror(0)!=subproc_declarations){
				pop(1);
				poperrorelement(1);
			}
			while(errorptr->label_type==DOLLAR){
				errorptr=errorptr->next;
			}
			
			struct label_stream *newerrorptr1 = new struct label_stream;
			struct label_stream *newerrorptr2 = new struct label_stream;
			struct label_stream *newerrorptr3 = new struct label_stream;
			struct label_stream *newerrorptr4 = new struct label_stream;
			struct label_stream *nullptr = new struct label_stream;
			newerrorptr1->label_type = rw_begin;
			newerrorptr2->label_type = id;					
			newerrorptr3->label_type = rw_end;
			newerrorptr4->label_type = node;
					
			newerrorptr4->next=errorptr;
			newerrorptr3->next=newerrorptr4;
			newerrorptr2->next=newerrorptr3;
			newerrorptr1->next=newerrorptr2;
			nullptr->next=newerrorptr1;
					
			errorptr = nullptr;
					
			return errorptr;
		}
			break;
		default:{
			cout<<"ERROR of your input!"<<endl;
			while(topoferror(0)!=rw_program){
				pop(1);
				poperrorelement(1);
			}
			while(errorptr->label_type!=DOLLAR){
				errorptr=errorptr->next;
			}
			struct label_stream *newerrorptr1 = new struct label_stream;
			struct label_stream *newerrorptr2 = new struct label_stream;
			struct label_stream *newerrorptr3 = new struct label_stream;
			struct label_stream *newerrorptr4 = new struct label_stream;
			struct label_stream *nullptr = new struct label_stream;
			newerrorptr1->label_type = id;
			newerrorptr2->label_type = sem;					
			newerrorptr3->label_type = rw_begin;
			newerrorptr4->label_type = rw_end;
					
			newerrorptr4->next=errorptr;
			newerrorptr3->next=newerrorptr4;
			newerrorptr2->next=newerrorptr3;
			newerrorptr1->next=newerrorptr2;
			nullptr->next=newerrorptr1;
			
			errorptr = nullptr;
					
			return errorptr;
		}
			break;
	}
	
	
}


void InitErrRecovery(){
	InitErrorstack();			//初始化錯誤棧;
}
//語法分析器的構造
void main(){
	InitLex();				//初始化詞法分析
	InitTable();			//初始化LR1分析表
	InitErrRecovery();		//初始化錯誤恢復表
	//testTable();

	//記號流的獲得
	currentPtr = Lhead;			//記錄記號流頭指針
	property = NULL;
	//
	InitTranslate();			//初始化翻譯狀態
	parse();					//語法分析
	closeTranslate();			//結束翻譯
  
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩大陆在线| 91美女视频网站| 久久成人综合网| 狠狠狠色丁香婷婷综合激情 | 欧美日韩一区精品| 欧美日韩综合在线| 日韩免费视频线观看| 亚洲视频在线一区观看| 五月婷婷综合激情| 国产精品影视在线观看| 成人性生交大片免费看视频在线| 国产乱色国产精品免费视频| 欧美日韩一区二区三区在线看| 在线91免费看| 久久精品欧美一区二区三区麻豆| 久久精品免视看| 一区二区三区欧美视频| 福利视频网站一区二区三区| 欧美日韩在线精品一区二区三区激情 | 91精品婷婷国产综合久久竹菊| 7777精品久久久大香线蕉| 国产亚洲精品aa| 亚洲永久精品大片| 国产精品午夜在线| 中文一区在线播放| 日韩精品每日更新| 成人教育av在线| 91精品国产免费| 91精品国产综合久久婷婷香蕉| 国产精品卡一卡二卡三| 日本中文在线一区| 色噜噜狠狠一区二区三区果冻| 欧美xxxxx裸体时装秀| 国产精品欧美久久久久无广告| 亚洲高清免费一级二级三级| 国产成人午夜高潮毛片| 在线观看91av| 自拍偷在线精品自拍偷无码专区| 亚洲综合一二三区| 成人黄色网址在线观看| 日韩精品自拍偷拍| 天天爽夜夜爽夜夜爽精品视频| 成年人国产精品| 亚洲乱码国产乱码精品精98午夜 | 亚洲一区二区视频| 韩国欧美国产1区| 欧美喷水一区二区| 亚洲一区二区欧美激情| 成人a区在线观看| 夜夜精品浪潮av一区二区三区| 成人动漫在线一区| 亚洲国产精品成人综合色在线婷婷 | 亚洲一区二区欧美激情| 一本色道久久综合亚洲91| 337p日本欧洲亚洲大胆精品| 蜜臀久久99精品久久久画质超高清 | 欧美一区二区精品| 亚洲一区二区三区在线看| 中文av一区二区| 亚洲黄色在线视频| 91黄色免费网站| 亚洲欧美日韩国产中文在线| 成人国产精品免费观看动漫| 欧美r级在线观看| 九一九一国产精品| 欧美不卡123| 蜜臀国产一区二区三区在线播放| 69久久99精品久久久久婷婷| 日韩中文字幕区一区有砖一区 | 色拍拍在线精品视频8848| 亚洲卡通欧美制服中文| 色综合久久久久综合体桃花网| 亚洲女同ⅹxx女同tv| 色香色香欲天天天影视综合网| 国产精品三级电影| 不卡在线视频中文字幕| 1000部国产精品成人观看| 成人激情免费电影网址| 中文字幕一区二区视频| 91成人国产精品| 日韩综合小视频| 国产欧美久久久精品影院 | 国产精品久久久久9999吃药| 成人av先锋影音| 亚洲激情第一区| 日韩欧美一级在线播放| 亚洲成av人片在线| 26uuu久久综合| 91免费国产在线观看| 国产精品99久久不卡二区| 亚洲欧洲日韩av| 欧美日韩极品在线观看一区| 久久99精品网久久| 亚洲日本在线看| 欧美一级在线观看| 国产专区欧美精品| 伊人婷婷欧美激情| 日韩视频中午一区| 欧美三级视频在线| 国产精品一区二区x88av| 亚洲欧美另类综合偷拍| 激情久久五月天| 亚洲女同一区二区| 欧美一级一级性生活免费录像| 麻豆精品一二三| 亚洲人成网站精品片在线观看| 欧美久久久久久蜜桃| 国产一区二区导航在线播放| 亚洲国产精品久久久久婷婷884| 精品美女一区二区三区| 五月天丁香久久| 国产丝袜在线精品| 欧美一卡二卡在线| 在线观看视频一区二区 | 日本一区二区电影| 欧美日韩一区二区在线视频| 成人ar影院免费观看视频| 奇米四色…亚洲| 亚洲男人的天堂一区二区| 久久亚洲一级片| 在线观看亚洲成人| 懂色av中文一区二区三区| 精品免费视频一区二区| 欧美日韩免费不卡视频一区二区三区 | 亚洲免费观看高清完整版在线观看熊 | 久久看人人爽人人| 色琪琪一区二区三区亚洲区| 高清shemale亚洲人妖| 青青草伊人久久| 亚洲一区二区欧美激情| 亚洲人成7777| 欧美二区三区91| 久久午夜电影网| 欧美videossexotv100| 欧美视频一区二| 欧美在线观看视频一区二区三区| 国产在线视频精品一区| 欧美aaaaaa午夜精品| 亚洲与欧洲av电影| 一区二区三区产品免费精品久久75| 国产精品卡一卡二| 亚洲成人午夜影院| 日本亚洲一区二区| 喷白浆一区二区| 视频在线在亚洲| 一级做a爱片久久| 亚洲精品国产一区二区精华液 | 666欧美在线视频| 欧美精选在线播放| 欧美精品三级日韩久久| 欧美嫩在线观看| 在线综合视频播放| 91 com成人网| 欧美一二三区在线| 日韩欧美中文一区二区| 7777精品伊人久久久大香线蕉 | 亚洲综合色视频| 亚洲影院在线观看| 国产做a爰片久久毛片| 国产精品系列在线播放| 波多野结衣在线aⅴ中文字幕不卡| 国产盗摄一区二区三区| 亚洲第一久久影院| 国产mv日韩mv欧美| 国产做a爰片久久毛片| 国产精品一区一区| 色综合色狠狠天天综合色| 久久91精品久久久久久秒播| 亚洲美女视频在线| 日韩中文字幕区一区有砖一区| 免费高清在线一区| 久久99久久久久久久久久久| 久久国产精品露脸对白| 国产乱色国产精品免费视频| 成人一道本在线| 色综合一个色综合| 91精品黄色片免费大全| 国产精品丝袜黑色高跟| 欧美国产日韩在线观看| 亚洲五码中文字幕| 久久精品国产精品亚洲综合| 成人av片在线观看| 欧美日韩国产一区| 色94色欧美sute亚洲13| 欧美r级在线观看| 亚洲日本成人在线观看| 亚洲香肠在线观看| 国产乱子轮精品视频| 91玉足脚交白嫩脚丫在线播放| 91精品国产乱码久久蜜臀| 国产欧美一二三区| 久久福利资源站| 欧洲日韩一区二区三区| 欧美四级电影网| 国产欧美日韩不卡免费| 日韩av在线发布| 亚洲欧美欧美一区二区三区| 爽好久久久欧美精品| 91视频观看视频| 精品国产一区二区三区久久影院|