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

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

?? 詞法編譯器.cpp

?? 計算機科學與技術專業課程編譯原理的課程實驗代碼
?? CPP
字號:

#include<iostream.h>
#include<iostream.h>
#include<string.h>
#include<ostream>
#include<stdlib.h>
#include<stdio.h>
#include<fstream.h>


#define  MAX 18   //分析表的最大容量
#define  MAXBUF 255
char  ch =' ';   // 存放讀入當前的輸入字符
int lineno=0;

struct reserve   //關鍵字
{
 char lexptr[MAXBUF];
 int token;
};

struct reserve symtable[MAX];
char * str[]={"program","const","var","integer","long","procedure","if","then","while","do","read","write","begin","end","odd"};




void Inital()     //對符號表進行初始化
{ 
	for( int j=0; j<15; j++) 
	{  
		strcpy(symtable[j].lexptr,str[j]); 
		symtable[j].token=j+1; 
	}
}
 

int Search(char *temp)
{
 
	for(int i=0; i <sizeof(symtable)/sizeof(symtable[0]); i++) 
	{  
		if(!strcmp(symtable[i].lexptr ,temp))  
		{   
			return  symtable[i].token;  
		} 
	} 
	return 0;
}     

 

void Syntax(FILE *fpin,FILE *fpout)    //分析程序
{
 
	char Temp[MAXBUF]; 
	int i=0; 
	int j=0; 
	fprintf(fpout,"%s\t","  符號  ") ;
    fprintf(fpout,"%s\t","識別號") ;
	fprintf(fpout,"%s\n","類別") ;
	while((ch=fgetc(fpin))!=EOF)    //讀入字符判斷,空格、字母、數字、界符 
	{  
		if(ch==' '||ch=='\t')  
		{   

		}
		else if(ch=='\n')    //如果是換行符,則行號加1  
		{  
   			lineno++;  
		}  
		else if(isdigit(ch))   //如果是數字  
		{    
			while(isdigit(ch))   //判斷和讀取數字   
			{     
				Temp[j]=ch;    
				j++;    
				ch=fgetc(fpin);   
			}   
			Temp[j]='\0';   
			j=0; 			
			fprintf(fpout,"%s\t%d\t",Temp,2) ; 
			fprintf(fpout,"%s\n","數字") ;
		}  
		else if (isalpha(ch))  //如果是字母  
		{   
			while(isalpha(ch)||isdigit(ch))   
			{    
				Temp[j]=ch;    
				j++;    
				ch=fgetc(fpin);  
			}  			  
			Temp[j]='\0';   
			j=0;  
			if (Search(Temp)) //如果是關鍵字  
			{    
				fprintf(fpout,"%s\t%d\t",Temp,Search(Temp));
				fprintf(fpout,"%s\n","關鍵字") ;
   			}   
			else    
			{
				fprintf(fpout,"%s\t%d\t",Temp,34); //普通標志符
				fprintf(fpout,"%s\n","標志符") ;

			}
 
		}  
		else if(ch==':')    
		{  
			ch=fgetc(fpin);  
			if(ch=='=')    
			{    
				fprintf(fpout,"%s\t%d\t",":=",30);    //如果是 := 
				fprintf(fpout,"%s\n","復合運算符") ;
			}   
			else  
			{    
				fprintf(fpout,"%s\t%d\t",":",29);   //如果是 :
				fprintf(fpout,"%s\n","類別說明符") ;    		
			}  
		}  
		else if (ch=='>')  
		{   
			ch=fgetc(fpin);   
			if(ch=='=')    //如果是 >=   
	
			{    
				fprintf(fpout,"%s\t%d\t",">=",25);
				fprintf(fpout,"%s\n","復合運算符") ;
			}   
			else  
			{    
				fprintf(fpout,"%s\t%d\t",">",24);  //如果是 >    				
				fseek(fpin,-1L,SEEK_CUR);   
			}
  		}  
		else if(ch=='<')  
		{    
			ch=fgetc(fpin);   
			if(ch=='>')   
			{    
				fprintf(fpout,"%s\t%d\t","<>",21);  // 如果是 <>  
				fprintf(fpout,"%s\n","復雜運算符") ;
			}   
			else if(ch=='=')
   			{    
				fprintf(fpout,"%s\t%d\t","<=",23);   //如果是 <= 
				fprintf(fpout,"%s\n","復合運算符") ;
			}   
			else    	
			{   
				fprintf(fpout,"%s\t%d\t","<",22);   //如果是 <   
				fprintf(fpout,"%s\n","簡單運算符") ;		
			}  
		}  
		else if(ch=='/')  
		{    
			ch=fgetc(fpin);   
			if(ch=='*')
   			{
   				ch=fgetc(fpin);
s:   
				while(ch!='*')   
				{     
					ch=fgetc(fpin);    
				}    
				while(ch=='*')    
				{     
					ch=fgetc(fpin);     
					while(ch!='/')     
					{      
						goto s;   //如果是注釋 /*  */     
					}    
				}   
			}   
			else if(ch=='/')   
			{    
				ch=fgetc(fpin);
   				while(ch!='\n')    
				{    
					ch=fgetc(fpin);   //如果是注釋 //    
				}
   			}   
			else    
			{      
				fprintf(fpout,"%s\t%d\t","/",24); 
				fprintf(fpout,"%s\n","簡單運算符") ;				  
			}  
		}  
		else if(ch=='+')  
		{   
			fprintf(fpout,"%s\t%d\t","+",16);
			fprintf(fpout,"%s\n","簡單運算符") ;
		}  
		else if(ch=='-')  
		{   
			fprintf(fpout,"%s\t%d\t","-",17); 
			fprintf(fpout,"%s\n","簡單運算符") ;
		}  
		else if(ch=='*')  
		{   
			fprintf(fpout,"%s\t%d\t","*",18); 
			fprintf(fpout,"%s\n","簡單運算符") ;
		}  
		else if(ch=='(') 
		{   
			fprintf(fpout,"%s\t%d\t","(",31);  
			fprintf(fpout,"%s\n","簡單運算符") ;
		}  
		else if(ch==')')  
		{   
			fprintf(fpout,"%s\t%d\t",")",32);
			fprintf(fpout,"%s\n","簡單運算符") ;
  
		}  
		else if(ch=='#')  
		{   
			fprintf(fpout,"%s\t%d\t","#",35);
			fprintf(fpout,"%s\n","簡單運算符") ;
		} 	
		else if(ch=='.')  
		{   
			fprintf(fpout,"%s\t%d\t",".",26); 
			fprintf(fpout,"%s\n","程序結束符") ;
		}  
		else if(ch==';')  
		{   
			fprintf(fpout,"%s\t%d\t",";",28);
			fprintf(fpout,"%s\n","語句結束符") ;
		}  
		else if(ch=='=')  
		{   
			fprintf(fpout,"%s\t%d\t","=",20);
			fprintf(fpout,"%s\n","簡單運算符") ;
		}  
		else if(ch==',')  
		{   
			fprintf(fpout,"%s\t%d\t",",",27);
			fprintf(fpout,"%s\n","簡單運算符") ;
		}  
		else fprintf(fpout,"無法識別的字符 %c\n",ch)  ;
}

} 


void main()
{
 
	cout<<"**********************************"<<endl;
	cout<<"**      詞   法   分   析       **"<<endl;
	cout<<"**                              **"<<endl;
	cout<<"**      開發者: 唐志賢         **"<<endl;
	cout<<"**      學  號:20032337        **"<<endl;
	cout<<"**                              **"<<endl;		
	cout<<"**********************************"<<endl;
	char filenamein[10]; 
	char filenameout[10];  
	cout<<"請輸入源程序的文件路徑和擴展名!"<<endl;
	scanf("%s",filenamein); 
	cout<<"請輸入詞法分析結果輸出的文件路徑和擴展名!"<<endl;
	scanf("%s",filenameout); 
	FILE* fpin=fopen(filenamein,"r"); 
	FILE* fpout=fopen(filenameout,"w"); 
	Inital(); 
	Syntax(fpin,fpout); 
	fclose(fpin); 
	fclose(fpout); 
}



 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
1000部国产精品成人观看| 天天综合色天天综合色h| 日韩一区二区三区视频| 在线观看日产精品| 欧美色网一区二区| 日韩欧美一级二级三级久久久| 精品视频一区二区不卡| 欧美日韩激情在线| 26uuu国产一区二区三区| 精品粉嫩超白一线天av| 国产视频一区二区三区在线观看| 国产精品色婷婷久久58| 亚洲精品乱码久久久久久 | 亚洲欧美视频在线观看视频| 日本一区二区三级电影在线观看 | 亚洲成人一区二区在线观看| 亚洲日本一区二区| 蜜臀久久久久久久| 丁香天五香天堂综合| 欧美性淫爽ww久久久久无| 精品人在线二区三区| 亚洲欧美偷拍卡通变态| 国产91精品一区二区麻豆网站| 91免费国产在线| 中文字幕精品三区| 国精品**一区二区三区在线蜜桃| av在线一区二区三区| 日韩限制级电影在线观看| 1区2区3区精品视频| 成人中文字幕合集| 久久综合成人精品亚洲另类欧美 | 国产精品嫩草影院av蜜臀| 日韩黄色一级片| 欧美视频一区二区在线观看| 亚洲精品日韩专区silk| 色综合天天在线| 亚洲第一成年网| 欧美电影一区二区三区| 日韩欧美中文一区二区| 日韩女同互慰一区二区| 日本伊人色综合网| 欧美电影免费观看高清完整版在 | 激情小说欧美图片| 精品第一国产综合精品aⅴ| 国模无码大尺度一区二区三区| 26uuu成人网一区二区三区| 国产真实乱对白精彩久久| 国产亚洲欧美一区在线观看| 成人黄色免费短视频| 亚洲国产视频一区| 精品福利一二区| 在线区一区二视频| 国产a区久久久| 亚洲风情在线资源站| 国产精品欧美综合在线| 欧美日韩精品是欧美日韩精品| 美女国产一区二区三区| 国产精品国产a| 久久精品日韩一区二区三区| 色综合久久六月婷婷中文字幕| 日韩成人精品在线| 综合久久久久久久| 日本一区二区三区电影| 成人午夜激情视频| 婷婷亚洲久悠悠色悠在线播放| 国产欧美va欧美不卡在线| 欧美日韩在线三区| 欧美在线你懂得| 91丨九色丨黑人外教| 成人av免费观看| www.亚洲免费av| 成人黄动漫网站免费app| 国产综合色在线| 国产精品一区三区| 国产丶欧美丶日本不卡视频| 七七婷婷婷婷精品国产| 午夜国产不卡在线观看视频| 午夜精品久久久久久| 亚洲.国产.中文慕字在线| 亚洲欧美激情在线| 一区二区三区毛片| 亚洲aⅴ怡春院| 国产乱码精品一区二区三区忘忧草 | 久久精品一区二区三区不卡牛牛 | 韩国成人福利片在线播放| 韩国v欧美v亚洲v日本v| 粉嫩蜜臀av国产精品网站| 成a人片国产精品| 欧美影院一区二区三区| 激情成人午夜视频| 亚洲成人在线免费| 国产米奇在线777精品观看| 成人国产一区二区三区精品| 91麻豆精品在线观看| 欧美日韩亚洲综合在线| 久久久久久久久久久久久久久99 | **网站欧美大片在线观看| 日本伊人色综合网| 国产乱国产乱300精品| 成人福利视频在线| 精品久久一二三区| 亚洲福利国产精品| 91免费在线播放| 日本一区二区成人在线| 久久国产精品第一页| 欧美午夜一区二区| 亚洲人吸女人奶水| 99精品欧美一区| 国产日本欧洲亚洲| 精品一区二区三区久久久| 欧美亚洲国产一区二区三区va| 国产精品人人做人人爽人人添| 国产精品一区在线观看乱码| 日韩免费视频线观看| 日韩电影在线免费看| 欧美一区二区二区| 免费久久精品视频| 欧美videossexotv100| 久久国产三级精品| 久久综合精品国产一区二区三区| 亚洲精品日韩专区silk| 国产白丝网站精品污在线入口 | 亚洲一二三四在线观看| 国产伦精一区二区三区| 精品福利视频一区二区三区| 岛国一区二区三区| 亚洲国产日产av| 精品国产乱码久久久久久浪潮 | 性做久久久久久久久| 91麻豆精品国产91| 石原莉奈在线亚洲二区| 久久精品视频免费| 欧美色窝79yyyycom| 国产成人综合自拍| 亚洲欧洲日韩av| 久久女同性恋中文字幕| 91首页免费视频| 蜜桃视频一区二区三区在线观看| 精品少妇一区二区三区在线播放| 97久久精品人人做人人爽| 免费人成在线不卡| 亚洲免费伊人电影| 国产精品女上位| 国产精品麻豆久久久| 亚洲精品在线免费观看视频| 91精品国产综合久久精品app| 97精品久久久久中文字幕 | 日韩免费看网站| 日韩欧美激情四射| 精品国产凹凸成av人网站| 欧美日韩成人综合天天影院| 免费成人你懂的| 免费观看一级特黄欧美大片| 日韩国产精品91| 蜜臀久久99精品久久久画质超高清 | 国产女同互慰高潮91漫画| 欧美成va人片在线观看| 精品欧美乱码久久久久久| 7777精品伊人久久久大香线蕉的 | 国产精品一线二线三线精华| 国产精品一区二区久久不卡| 精品一区二区在线免费观看| 九九**精品视频免费播放| 成人激情动漫在线观看| av网站免费线看精品| 欧美三级日韩在线| 久久午夜老司机| 亚洲午夜激情网页| 捆绑调教一区二区三区| 99久久综合精品| 欧美xxx久久| 亚洲综合色在线| 波多野结衣视频一区| 日韩视频123| 一区二区三区免费网站| 久久99精品久久久| 欧美日产在线观看| 一区二区三区日韩| 精久久久久久久久久久| 极品少妇一区二区三区精品视频| av资源站一区| 中文字幕在线播放不卡一区| 亚洲电影在线播放| 日韩午夜中文字幕| voyeur盗摄精品| 久久久不卡网国产精品二区| 免费不卡在线观看| 久久精品一区二区三区不卡| 日本一区二区三区四区在线视频| 欧美性xxxxxxxx| 91同城在线观看| 国产激情精品久久久第一区二区| 亚洲一区影音先锋| 日韩一区在线免费观看| 欧美国产精品一区二区| 精品国产乱子伦一区| 欧美精品一区二区三区蜜桃视频| 欧美日本在线观看| 欧美日韩aaaaaa| 91精品国产一区二区|