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

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

?? sal.cpp

?? 編譯程序的編譯原理
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
    char *e1_place = new char[8];
	memset(e1_place,0,8);
	strcpy(e1_place,t());
	//printf("%s",e1_place);
	//sprintf(e1_place,"%c", t());
    while (DataArray[RecursionIndex]->codeID ==5 || DataArray[RecursionIndex]->codeID==6){ //=='+' || '-'
		char sign[2];
		memset(sign,'\0',2);
		strcpy(sign,DataArray[RecursionIndex++]->value);

		char *e2_place=new char[8];
		memset(e2_place,'\0',8);
		strcpy(e2_place,t());

		char *buff=new char[10];  
		memset(buff,'\0',10);
		sprintf(buff,"#ADD_%d",FourGroupIndex++); 

        createFourGroup(sign,e1_place,e2_place,buff);  //產生四元組
		strcpy(e1_place,buff);
    }
	return e1_place; 
}









//***************************************/
//函數名:GrammaAnalize                  */
//作 用:語法分析                        */
//參 數:無                              */
//反回值:正確返回-1,錯誤返回錯誤索引   */
//***************************************/
int GrammaAnalize(){
	int index=0;
	while(DataArray[index]->codeID != 0){  //!='.'
		if(index>=(DA_index-1)) return index;

		if(DataArray[index]->codeID == 1){ //==const
			if(DA_index < index+5) return index;
			while(DataArray[index]->codeID != 12){
				if(DataArray[index+1]->codeID==15 && DataArray[index+2]->codeID==9 && DataArray[index+3]->codeID==16){
					if(DataArray[index+4]->codeID == 11 || DataArray[index+4]->codeID == 12) { //==','||==';'
						//記錄四元組
						createFourGroup(DataArray[index+2]->value,DataArray[index+3]->value,"",DataArray[index+1]->value);
						index=index+4;
						continue;
					}else{
						return index+4;
					}
				}else{
					return index;
				}
			}
			index++;
			continue;
		}
		if(DataArray[index]->codeID==2){ //=="var"
			if(DA_index < index+3) return DA_index-1;
			while(DataArray[index]->codeID !=12){
				if(DataArray[index+1]->codeID == 15){
					if(DataArray[index+2]->codeID == 11 || DataArray[index+2]->codeID == 12){
						createFourGroup("","","",DataArray[index+1]->value);
						index=index+2;
						continue;
					}else{
						return index+2;
					}
				}else{
					return index+1;
				}
			}
			index++;
			continue;
		}
		
		if(DataArray[index]->codeID==3 || DataArray[index]->codeID==4){ //write or read
			if(DA_index < index+5) return DA_index-1;
			if(DataArray[index+1]->codeID==13 && DataArray[index+2]->codeID==15 && DataArray[index+3]->codeID==14 && DataArray[index+4]->codeID==12){
				char nOper[2];
				if(DataArray[index]->codeID==3){
					nOper[0]='R';
				}else{
					nOper[0]='W';
				}
				nOper[1]='\0';
				createFourGroup(nOper,"","",DataArray[index+2]->value);
				index=index+5;
			}else{
				if(DataArray[index+4]->codeID!=12) return index+4;
				return index+1;
			}
			continue;
		}

		if(DataArray[index]->codeID ==15){ //賦值語句
			if(DataArray[index+1]->codeID !=10) return index+1;
			if(DA_index < index+4) return DA_index-1;
			if(DataArray[index+2]->codeID == 16 && DataArray[index+3]->codeID == 12){
				createFourGroup(DataArray[index+1]->value,DataArray[index+2]->value,"",DataArray[index]->value);
				index=index+4;
				continue;
			}else{
				char Var_1[8];
				strcpy(Var_1,DataArray[index++]->value);
				char nSign[2];
				strcpy(nSign,DataArray[index++]->value);
				
				char Var_2[8];
				//遞歸分析
				RecursionIndex=index; //設置遞歸分析點
				strcpy(Var_2,e());
				if(RecursionError != -1){
					return RecursionError;
				}
				index=RecursionIndex;
				if(DataArray[index++]->codeID !=12){
					return index;
				}
				
				createFourGroup(":=",Var_2,"",Var_1);
				continue;
			}
		}
		return index;	
	}
	return -1;
}



//***************************************/
//函數名:MeaningAnalize                 */
//作 用:語義分析                        */
//參 數:無                              */
//反回值:正確返回0,錯誤返回1           */
//***************************************/
int MeaningAnalize(){
	int nIndex,i;
	for(nIndex=0; nIndex < FGA_index; nIndex++){
		//檢測是否重復定義標識符
		if(strcmp(FourGroupArray[nIndex]->oper,"=")==0 || strcmp(FourGroupArray[nIndex]->oper,"")==0){
			for(i=nIndex+1; i<FGA_index; i++){
				if((strcmp(FourGroupArray[i]->oper,"")==0 || strcmp(FourGroupArray[i]->oper,"=")==0) && strcmp(FourGroupArray[i]->Add,FourGroupArray[nIndex]->Add)==0){
					printf("Error:符識符%s 重定義\n",FourGroupArray[i]->Add);
					return 1;
				}
			}
		}

		//檢測是否引用未定義標識符
		if(strcmp(FourGroupArray[nIndex]->oper,"") != 0 && strcmp(FourGroupArray[nIndex]->oper,"=")!=0 ){
			if(isChar(FourGroupArray[nIndex]->var_01[0])){
				int Error=1;
				for(i=nIndex-1; i >= 0; i--){ //向上查找
					if((strcmp(FourGroupArray[i]->oper,"")==0 || strcmp(FourGroupArray[i]->oper,"=")==0) && strcmp(FourGroupArray[i]->Add,FourGroupArray[nIndex]->var_01)==0){
						Error=0;
					}	
				}
				if(Error !=0 ){
					printf("Error:引用未定義變量%s.\n",FourGroupArray[nIndex]->var_01);
					return 1;
				}
			}

			if(isChar(FourGroupArray[nIndex]->var_02[0])){
				int Error=1;
				for(i=nIndex-1; i >= 0; i--){ //向上查找
					if((strcmp(FourGroupArray[i]->oper,"")==0 || strcmp(FourGroupArray[i]->oper,"=")==0) && strcmp(FourGroupArray[i]->Add,FourGroupArray[nIndex]->var_02)==0){
						Error=0;
					}	
				}
				if(Error !=0 ){
					printf("Error:引用未定義變量%s.\n",FourGroupArray[nIndex]->var_02);
					return 1;
				}
			}

			if(isChar(FourGroupArray[nIndex]->Add[0])){
				int Error=1;
				for(i=nIndex-1; i >= 0; i--){ //向上查找
					if((strcmp(FourGroupArray[i]->oper,"")==0 || strcmp(FourGroupArray[i]->oper,"=")==0) && strcmp(FourGroupArray[i]->Add,FourGroupArray[nIndex]->Add)==0){
						Error=0;
					}	
				}
				if(Error !=0 ){
					printf("Error:引用未定義變量%s.\n",FourGroupArray[nIndex]->Add);
					return 1;
				}
			}
		}
		
		//檢查是否除以一個O值
		if(strcmp(FourGroupArray[nIndex]->oper,"/")==0 && strcmp(FourGroupArray[nIndex]->var_02,"0")==0){
			printf("Error:運算符'/'后的值不能為%s.\n",FourGroupArray[nIndex]->var_02);
			return 1;			
		}
		//檢查是否引用未初始化的變量
		if(isChar(FourGroupArray[nIndex]->var_01[0]) || isChar(FourGroupArray[nIndex]->var_02[0])){
			if(isChar(FourGroupArray[nIndex]->var_01[0])){  //向上找,查找是否已賦值
				int Error=1;
				for(i=nIndex-1; i >= 0; i--){ //向上查找
					if((strcmp(FourGroupArray[i]->oper,"=")==0 || strcmp(FourGroupArray[i]->oper,":=")==0) && strcmp(FourGroupArray[i]->Add,FourGroupArray[nIndex]->var_01)==0){
						Error=0;
					}	
				}
				if(Error !=0 ){
					printf("Error:引用未初始化的變量%s.\n",FourGroupArray[nIndex]->var_01);
					return 1;
				}		
			}

			if(isChar(FourGroupArray[nIndex]->var_02[0])){  //向上找,查找是否已賦值
				int Error=1;
				for(i=nIndex-1; i >= 0; i--){ //向上查找
					if((strcmp(FourGroupArray[i]->oper,"=")==0 || strcmp(FourGroupArray[i]->oper,":=")==0) && strcmp(FourGroupArray[i]->Add,FourGroupArray[nIndex]->var_02)==0){
						Error=0;
					}	
				}
				if(Error !=0 ){
					printf("Error:引用未初始化的變量%s.\n",FourGroupArray[nIndex]->var_02);
					return 1;
				}		
			}
		}
		
	}
	return 0;
}


int main( ){
	//詞法分析
	while (syn!=0){		
		scaner();  //執行分析函數
		if(syn == -1){
			CodeEdit(); //發生錯誤
			return 0;
		}
		//創建結點
		node *newNode=(node*)malloc(sizeof(node));
		newNode->codeID=syn;
		memset(newNode->value,'\0',8);
		strcpy(newNode->value,token);
		strcpy(LastEffectiveCode,token);
		newNode->row=WordRow;
		newNode->pos=WordPos;
		DataArray[DA_index++]=newNode;
	};
	OutPutDualGroup();
	fclose(f_Input);
	fclose(f_DualGroup);
	
	//語法分析
	int Error=GrammaAnalize();
	if(Error!=-1){
		printf("Error:row(%i),pos(%i) Error occur near the sign '%s' !\n",DataArray[Error]->row,DataArray[Error]->pos,DataArray[Error]->value);
		system("notepad InputFile.txt");
		return 0;
	}


	//語義分析
	Error=MeaningAnalize();
	if(Error!=0){
		system("notepad InputFile.txt");
		return 0;
	}

	//輸出四元中間碼
	OutPutFourGroup();
	printf("語義分析成功...\n");
	fclose(f_FourGroup);
	return 0;
}









?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩精品一区二区三区四区 | 精品久久免费看| 色又黄又爽网站www久久| fc2成人免费人成在线观看播放| 精品一区二区三区在线视频| 免费日韩伦理电影| 久久精品国产一区二区三 | 91精品福利在线| 色av成人天堂桃色av| 色综合 综合色| 欧美片在线播放| 日韩精品一区二区在线| 精品国产三级a在线观看| 久久一区二区三区国产精品| 国产亚洲一二三区| 亚洲精品日韩综合观看成人91| 亚洲久草在线视频| 日韩精品高清不卡| 国产一区二区三区在线观看免费视频 | 国产女人aaa级久久久级| 国产精品精品国产色婷婷| 亚洲女同一区二区| 日韩中文字幕av电影| 国产一区二区三区av电影 | 一区二区三国产精华液| 视频一区视频二区中文| 国产一区二区三区免费观看| 91丨porny丨在线| 欧美日韩国产免费| 国产亚洲欧美在线| 亚洲自拍偷拍麻豆| 国产乱码精品一品二品| 91免费在线看| 久久伊99综合婷婷久久伊| 亚洲精品少妇30p| 激情久久久久久久久久久久久久久久| 成人黄页在线观看| 欧美一区二区三区免费观看视频| 欧美国产欧美综合| 热久久国产精品| thepron国产精品| 欧美一区二区不卡视频| 国产精品美女www爽爽爽| 天堂一区二区在线| 99久久精品国产毛片| 日韩精品最新网址| 亚洲黄色免费网站| 成人免费av资源| 日韩免费观看2025年上映的电影| 亚洲欧美激情插| 粉嫩久久99精品久久久久久夜| 欧美四级电影网| 自拍av一区二区三区| 蜜臀久久99精品久久久画质超高清 | 久久国产精品免费| 在线一区二区视频| 美女视频黄免费的久久| 91无套直看片红桃| 国产欧美日本一区二区三区| 麻豆视频一区二区| 欧美精品一二三| 亚洲与欧洲av电影| 色综合久久天天综合网| 国产精品国产三级国产aⅴ无密码 国产精品国产三级国产aⅴ原创 | 久久国产生活片100| 欧美日韩一二三| 亚洲国产精品久久久久婷婷884| 99久久精品国产毛片| 亚洲欧洲精品成人久久奇米网| 韩国一区二区在线观看| 日韩精品一区二区三区三区免费| 视频在线观看一区二区三区| 7777精品久久久大香线蕉| 亚洲精品视频在线看| 在线看国产一区二区| 一区二区三区欧美日| 一本大道久久a久久精二百| 亚洲视频一区二区在线| 99国产一区二区三精品乱码| 中文字幕日韩欧美一区二区三区| 国产成人在线视频播放| 欧美激情艳妇裸体舞| 99久久精品免费看国产免费软件| 国产精品久久久久久久久免费相片 | 大白屁股一区二区视频| 国产精品丝袜一区| 91伊人久久大香线蕉| 一区二区三区日韩| 欧美三级韩国三级日本三斤| 奇米色一区二区| 久久综合色天天久久综合图片| 成人永久aaa| 亚洲精品ww久久久久久p站| 欧美羞羞免费网站| 久久69国产一区二区蜜臀| 久久久久久久网| 91免费观看在线| 婷婷综合另类小说色区| 精品少妇一区二区三区视频免付费| 国产麻豆精品一区二区| 亚洲男人的天堂在线aⅴ视频| 欧美精品免费视频| 国产精品一区二区91| 一区二区三区精密机械公司| 欧美一区二区三级| 成人动漫av在线| 婷婷六月综合亚洲| 国产精品伦理在线| 欧美一区二区网站| 成人午夜精品一区二区三区| 亚洲成人1区2区| 久久精品在线免费观看| 欧美色图12p| 成人自拍视频在线| 日本特黄久久久高潮| 中文字幕亚洲一区二区va在线| 欧美午夜电影网| 国产成人三级在线观看| 午夜久久久久久久久| 捆绑变态av一区二区三区| 国产精品动漫网站| 欧美成人高清电影在线| 色屁屁一区二区| 国产成人精品影视| 麻豆精品在线看| 一个色综合网站| 国产精品久线观看视频| 欧美成人欧美edvon| 欧美综合视频在线观看| 国产v日产∨综合v精品视频| 蜜臀av在线播放一区二区三区| 亚洲综合久久av| 国产精品国产馆在线真实露脸| 精品日韩欧美在线| 欧美日韩不卡在线| 欧美性大战久久久久久久| 96av麻豆蜜桃一区二区| 国产精品69毛片高清亚洲| 同产精品九九九| 亚洲成人免费在线观看| 亚洲天天做日日做天天谢日日欢| 久久久久久97三级| 精品三级av在线| 欧美一区二区视频在线观看| 欧美日韩精品二区第二页| 在线观看日韩高清av| 97se亚洲国产综合自在线观| 丁香亚洲综合激情啪啪综合| 国产精品一区二区91| 国产成人免费高清| 国产成人aaa| 99re热这里只有精品免费视频| 处破女av一区二区| 国内精品自线一区二区三区视频| 日韩精品电影一区亚洲| 蜜臀av一级做a爰片久久| 毛片一区二区三区| 精品一区二区三区影院在线午夜| 免费av成人在线| 国产自产v一区二区三区c| 国产精品99久久久久久有的能看 | 成人高清av在线| 91麻豆.com| 欧美日韩中文字幕精品| 欧美精品一级二级| 欧美精品一区二区三区在线播放 | 亚洲精品国产无套在线观| 亚洲乱码国产乱码精品精小说| 136国产福利精品导航| 亚洲精品国产品国语在线app| 亚洲自拍另类综合| 蜜臀av一区二区| 福利91精品一区二区三区| 色婷婷久久99综合精品jk白丝| 欧美熟乱第一页| 精品999在线播放| 国产精品国产三级国产普通话三级| 成人欧美一区二区三区黑人麻豆| 中文字幕亚洲一区二区va在线| 亚洲一区二区三区视频在线播放| 全国精品久久少妇| 成人激情电影免费在线观看| 欧美日韩精品系列| 国产片一区二区| 亚洲国产综合在线| 国产高清一区日本| 欧美日韩国产三级| 国产精品国产三级国产普通话蜜臀 | 日韩一二三区视频| 中文字幕在线不卡一区二区三区| 香蕉加勒比综合久久| 国产九色sp调教91| 欧美视频一区二区三区四区| 久久婷婷成人综合色| 亚洲福利视频导航| 国产精品一品二品| 欧美一区二区成人| 激情五月激情综合网| 欧美色中文字幕| 一区在线中文字幕|