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

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

?? new.cpp

?? 自己的編譯原理作業
?? CPP
字號:
#include <iostream.h>
#include <conio.h>
#include <iomanip.h>
#include <string.h>
#include <fstream.h>
#include <ctype.h>


char*  ComWords[65]=
	      {"and",    "array",     "begin",    "bool", "call",
           "case",   "char",      "constant", "dim",  "do",
           "else",   "end",       "false",    "for",  "if",
           "input",  "integer",   "not",      "of",   "or",
		   "output", "procedure", "program",  "read", "real",
		   "repeat", "set",       "stop",     "then", "to",
           "true",   "until",     "var",      "while","write",
		   "alpha",  "digit",     "'char'",    "(",    ")",
		   "*",      "*/",        "+",         ",",   "-",    
		   ".", 	 "..",        "/",         "/*",  ":",
		   ":=",     ";",   	  "<",         "<=",  "<>",
		   "=",      ">",		  ">=",        "[",   "]",
		   0 };

char*  variable[30];        //變量表,序列號代表值
int si=0;                   //變量序列編號:變量二元式的后一項
char*  err[30];             //出錯序列表
int    ern[100];            //出錯行號
int ei=0;                   //出錯序列表編號

int ViewT1(char* tp)        //檢查字符串是否在保留字表
{
	for (int t=0;(ComWords[t]!=NULL);t++)
	{
    	if (!strcmp(tp,ComWords[t]))
			return t+1;
	} 
	return 0;
}

int ViewT2(char* tp)        //檢查字符串是否在變量表
{
	for (int t=0;(variable[t]!=NULL);t++)
	{
    	if (!strcmp(tp,variable[t]))
		{
			return t+1;
		}
	}
	return 0;
}

void Type(int co,int vi)       //輸出二元式,co 代碼序號; vi 后綴數字 (0 表示保留字);
{
	if(vi==0)
	{
		cout<<"(";
		if(co<10)
			cout<<" ";
		cout<<co<<", -)    ";
	}
	else
	{
		cout<<"("<<co<<",";
		if(vi<10)
			cout<<" ";
		cout<<vi<<")    ";
	}
}


void Charge(char* tp,int& con,int ln)      //判斷函數,分析送入的字串
{
	int cha=0;                     //字符串常量標志,1為常量開始
	char string[20];
	char temp[2];                  //用于接受一個字符的臨時串指針
	temp[1]=NULL;
	int i=0;
	int sin=1;                     //注釋行
	while(tp[i]!=NULL)
	{
		//如果當前字符是整數
		if(isdigit(tp[i])!=0&&sin==1)      
		{		
			while(isdigit(tp[i])!=0) //讀入整個數字常量
			{	    	
				temp[0]=tp[i];
	        	strcat(string,temp);
				i++;
			}
			Type(37,si+1);
			variable[si]=new char [sizeof (string)];
			strcpy(variable[si],string);
			si++;
		    con++;
			if ((con)%5==0)
				cout<<endl;
		}
		for (int j=0;string[j]!=NULL;j++)         //釋放string
			string[j]=NULL;

		//如果當前字符是字母
		if(isalpha(tp[i])!=0&&sin==1)      
		{		
			while( (isalpha(tp[i])!=0)||(isdigit(tp[i])!=0) )   //讀入整個字串,碰到“符號”結束
			{	    	
				temp[0]=tp[i];
	        	strcat(string,temp);
				i++;
			}
			if(ViewT1(string))       //如果是保留字
			{
				Type(ViewT1(string),0);
		    	con++;
				if ((con)%5==0)
					cout<<endl;
			}
			else                    //是變量
            {
				int bs=ViewT2(string);  //如果已經存在于變量表,返回變量序號
				if(bs)
					Type(36,bs);
				else                    //是新變量,插入變量表
				{
					Type(36,si+1);
					variable[si]=new char [sizeof (string)];
			    	strcpy(variable[si],string);
			    	si++;
				}
				con++;		    	
				if ((con)%5==0)
					cout<<endl;
			}
			    			
		}
		for (j=0;string[j]!=NULL;j++)         //釋放string
			string[j]=NULL;
      
		while(tp[i]==32&&sin==1)            //處理空格
			i++;
		
		//如果當前字符是“符號”
		if( (tp[i]!=NULL)&&(tp[i]!=32)&&(isalpha(tp[i])==0)&&(isdigit(tp[i])==0) ) 
		{		
			while( (tp[i]!=NULL)&&(tp[i]!=32)&&(isalpha(tp[i])==0)&&(isdigit(tp[i])==0) ) 
			{
				if(tp[i]=='\'')               //是字符串常量,跳出處理
				{
					cha=1;
					break;
				}
				temp[0]=tp[i];
	        	strcat(string,temp);
				i++;
			}
			if(ViewT1(string))         //如果是保留字
			{
				if( (ViewT1(string)!=49)&&(ViewT1(string)!=42) )
				{
					Type(ViewT1(string),0);
					con++;
					if ((con)%5==0)
						cout<<endl;
				}
				else
				{
					sin*=(-1);
				}
			}

			else if(!cha)                     //無定義符號,報錯
			{
				cout<<"#"<<ei+1;
				err[ei]=new char [sizeof ("Sign define error ! in line ")];
				strcpy(err[ei],"Sign define error ! in line ");
				ern[ei]=ln;
				ei++;
			}
			if(cha==1)                         //處理字符串常量
			{
				for (j=0;string[j]!=NULL;j++)         //釋放string			
					string[j]=NULL;
				strcat(string,"'");
				i++;
				while(tp[i]!=NULL)
				{	
					if(tp[i]=='\'')           //等到結尾的“ ’”出現
					{
						strcat(string,"'");
				        i++;
				    	cha=0;				
					    break;
					}
			    	temp[0]=tp[i];
	            	strcat(string,temp);
			    	i++;
				}				
				if(cha!=0)                //如果字符串常量沒有后標志符“ ’”,報錯
				{
				    cout<<"#"<<ei+1;
					err[ei]=new char [sizeof ("String const define error! in line ")];
					strcpy(err[ei],"String const define error! in line ");
					ern[ei]=ln;
					ei++;
				}

				Type(38,si+1);             //插入變量表
				variable[si]=new char [sizeof (string)];
				strcpy(variable[si],string);
				si++;
				con++;
				if ((con)%5==0)
					cout<<endl;
			}
			
		}
		if(sin!=1)                            //處理注釋行
			i++;
		for (j=0;string[j]!=NULL;j++)         //釋放string
			string[j]=NULL;    	
	}
	if(sin!=1)                                 //注釋行出錯
	{
		cout<<"#"<<ei+1;
		err[ei]=new char [sizeof ("Remark line error! in line ")];
		strcpy(err[ei],"Remark line error! in line ");
		ern[ei]=ln;
		ei++;
	}
}


void test()
{
	cout<<"  please input text name: ";
	char* path;
	path=new char [20];
	cin>>path;
		int con=0;              //輸出二元式的個數

	cout<<"  Open files: "<<path;
	cout<<endl<<"  input command words:"<<endl;
	char inp[20];
	ifstream input1(path);  //用input1接收文本作為輸出設備,顯示原文
	for (int i=0;;i++)
	{
		input1.getline(inp,128);
		if(input1.fail())
			break;
    	cout<<inp<<endl;
	}
	cout<<endl;
	getch();
	cout<<path;
	cout<<endl<<"  output the command word's ID:"<<endl<<endl;
	ifstream input2(path);  //用input2接收文本作為輸出設備,處理字符串
	for (i=0;;i++)
	{
		input2.getline(inp,128);
		if(input2.fail())
			break;
		Charge(inp,con,i+1);
	}
	cout<<endl<<endl;
	for (int j=0;err[j]!=NULL;j++)          //顯示出錯信息
		cout<<"#"<<j+1<<" "<<err[j]<<ern[j]<<endl;
	getch();

	for (j=0;variable[j]!=NULL;j++)         //清空variable
		delete []variable[j];
	si=0;
	for (j=0;err[j]!=NULL;j++)              //清空err
		delete []err[j];
	ei=0;
}


void main ()
{
	cout<<"***************************************************************"<<endl
	    <<"**                                                           **"<<endl
	    <<"**        'SIMPLE' language analysis 1.0         2002.5.20   **"<<endl
	    <<"**                                                           **"<<endl
	    <<"**            CS99(2)     QiuGuangHua     No.37              **"<<endl
	    <<"**                                                           **"<<endl
	    <<"***************************************************************"<<endl
	    <<endl;
S:
	cout<<endl<<endl<<"   Please choose the test type:"<<endl
	    <<"        t.   test"<<endl
		<<"        q.   quit"<<endl;
	char cho;
	cin>>cho;
	switch(cho)
	{	
	    case 't': test();goto S;
		case 'q': break;
		default: goto S;
	}
	cout<<endl<<"             See you next time!"<<endl<<endl;
	getch();
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品日产欧美久久久久| 国产伦精品一区二区三区在线观看| 日本sm残虐另类| 欧美在线不卡一区| 日韩一区精品字幕| 精品久久久久久最新网址| 国产99精品国产| 一区二区免费在线播放| 久久久国际精品| 91蝌蚪porny九色| 国产v综合v亚洲欧| 亚洲6080在线| 国产三级精品视频| 色婷婷综合久久久中文一区二区| 性做久久久久久久久| 日本一区二区成人| 欧美三电影在线| 国内精品久久久久影院薰衣草 | 久久久久免费观看| 国产一级精品在线| 成人免费在线观看入口| 欧美一级黄色大片| 在线一区二区观看| 92国产精品观看| 国产成a人亚洲| 成人福利在线看| 成人综合激情网| 国产高清精品网站| 亚洲狠狠爱一区二区三区| 日韩一区二区三免费高清| 欧美亚洲高清一区| 日韩欧美的一区| 色94色欧美sute亚洲线路一ni | 国产亚洲欧美在线| 欧美精品一区二区久久婷婷| 日韩精品在线一区| 精品成人免费观看| 中文字幕人成不卡一区| 亚洲免费观看在线视频| 亚洲一区二区三区国产| 欧洲av在线精品| 91污在线观看| 欧美日韩在线观看一区二区 | 91论坛在线播放| 欧美色图12p| 久久久精品tv| 日韩黄色免费电影| 成人91在线观看| 亚洲码国产岛国毛片在线| 国产精品二三区| 亚洲成人在线免费| 国内精品视频一区二区三区八戒| 成人av综合在线| 日韩精品一区二区三区视频在线观看 | 91久久国产综合久久| 欧美区在线观看| 一区二区三区四区五区视频在线观看| 日韩国产成人精品| 不卡av电影在线播放| 成人av网站免费| 欧美日韩国产色站一区二区三区| 911国产精品| 欧美成人官网二区| 亚洲电影视频在线| 成人动漫一区二区| 久久免费电影网| 久久99最新地址| 日韩精品资源二区在线| 亚洲一二三四久久| 欧美伊人久久大香线蕉综合69 | 色综合天天狠狠| 精品处破学生在线二十三| 久久久欧美精品sm网站 | 欧美电影精品一区二区| 综合网在线视频| www.亚洲色图.com| 欧美韩日一区二区三区| 国产麻豆日韩欧美久久| 一区二区三区精品视频| 欧美白人最猛性xxxxx69交| 丰满白嫩尤物一区二区| 亚洲成人资源在线| 国产日产欧美一区二区三区| 在线观看亚洲精品| 国产色91在线| 欧美日本在线观看| 99久久伊人网影院| 国产揄拍国内精品对白| 美女免费视频一区| 亚洲第一在线综合网站| 亚洲精品国产一区二区三区四区在线| 91精品国产综合久久久久久 | 国产精品一区在线| 中文字幕国产一区| 91视频在线看| 麻豆国产精品视频| 国产精品美女久久久久aⅴ国产馆| 国产福利91精品一区二区三区| 亚洲欧洲精品天堂一级| 日韩理论片在线| 天天爽夜夜爽夜夜爽精品视频| 天堂蜜桃91精品| 国产乱人伦偷精品视频不卡| 亚洲五码中文字幕| 久久亚洲综合av| 欧美亚洲综合另类| 成人激情午夜影院| 成人黄色a**站在线观看| 琪琪久久久久日韩精品| 国产精品久久久久影院| 欧美成人三级在线| 欧美日韩性生活| 欧美午夜理伦三级在线观看| youjizz国产精品| 99精品偷自拍| 97久久人人超碰| 99国产精品99久久久久久| 国产成+人+日韩+欧美+亚洲| 久久99久久精品| 奇米四色…亚洲| 国产高清亚洲一区| 91免费看视频| 精品免费视频一区二区| 国产精品久久久久久妇女6080| 中文字幕在线观看一区二区| 亚洲国产精品一区二区久久| 国产一区二区三区av电影 | 丁香婷婷综合激情五月色| 91福利在线播放| 日韩免费观看2025年上映的电影 | 亚洲国产精品嫩草影院| 日本不卡123| 94-欧美-setu| 26uuu亚洲| 精品一区二区三区日韩| 一区二区三区成人在线视频| 日韩高清不卡一区| 欧美精品丝袜久久久中文字幕| 国产精品国产a| 色综合久久99| 亚洲欧美福利一区二区| 色综合欧美在线| 亚洲高清三级视频| 欧美成人国产一区二区| 久久9热精品视频| 亚洲女与黑人做爰| 国产精品毛片无遮挡高清| 国产91在线观看丝袜| 91精品国产综合久久久久| 午夜影视日本亚洲欧洲精品| 欧美日韩国产区一| 日本午夜一本久久久综合| 777亚洲妇女| 精品在线播放免费| 国产精品欧美极品| 成人一区二区视频| 中文字幕一区二区在线观看| 日本丶国产丶欧美色综合| 视频在线观看国产精品| 久久综合精品国产一区二区三区 | 成人精品视频一区二区三区尤物| 欧美精品一区二区三| 成人精品在线视频观看| 亚洲国产cao| 久久精品视频免费| 欧美性猛片aaaaaaa做受| 日本欧美一区二区在线观看| 精品欧美一区二区在线观看| 不卡av免费在线观看| 日韩 欧美一区二区三区| 日本一区二区视频在线| 欧美女孩性生活视频| 欧美喷潮久久久xxxxx| aaa欧美日韩| 99久久婷婷国产综合精品| 国产老肥熟一区二区三区| 久久精品国产99国产精品| 日本欧美一区二区| 日韩电影免费一区| 久久精品国产99| 粉嫩aⅴ一区二区三区四区五区| 国产精华液一区二区三区| 国产精品影视在线| 成人爱爱电影网址| 99riav久久精品riav| 在线精品观看国产| 欧美精品丝袜中出| 26uuu欧美| 亚洲视频中文字幕| 奇米777欧美一区二区| 国产一区欧美二区| 欧洲av在线精品| 欧美精品一区二区三区很污很色的 | 欧美中文字幕亚洲一区二区va在线| 91黄色小视频| 久久伊人蜜桃av一区二区| 亚洲欧美色综合| 日韩精品成人一区二区在线| 国产乱子伦一区二区三区国色天香| 97超碰欧美中文字幕|