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

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

?? do.txt

?? do-while循環編譯器設計,用C++語言編寫的源代碼.
?? TXT
字號:
#define MAX 100 
#include<iostream.h> 
#include<stdio.h> 
#include<string.h> 

char str[MAX]; 
char ch; 
int turn; 


char strToken[MAX]; 
int kind; 
int n=0;//存放strtoken[]元素的個數 

struct Word//結構體 存放單詞 
{ 
int sort; 
char word[MAX];//存放strtoken[]的內容 
}; 
//record[x]=new Word; 
Word *record[12];//放所有識別出來的單詞,分別存放他們的編號以及字符串,x是其下標 

////////////////////詞法分析/////////////////////// 
int buffer()//載入 
{ 
int i=0; 

cout<<"輸入程序,以“#”作為結束標志。"<<endl; 

for(int n=0;n<=MAX;n++) 
{ 
for(;i<=MAX;i++) 
{ 
scanf("%c",&str[i]); 
/////////////cin>>str[i]不可用,用C語言讀入字符。 
if(str[i]=='#') 
break;///////如果尾數為識別碼#,則表示程序讀完,跳出循環. 
} 
break; 
} 

return(i); 
} 

bool IsLetter(char ch)///////////判斷是否是字母 
{ 
if(ch>=65&&ch<=90||ch>=97&&ch<=122) 
return(true); 
else 
return(false); 
} 

bool IsDigit(char ch)//////////判斷是否是數字 
{ 
if(ch>=48&&ch<=57) 
return(true); 
else 
return(false); 
} 

char GetChar(int i)///////讀取字符 
{ 
char ch; 
ch=str[i]; 

return(ch); 
} 

char GetBC(char ch)////判斷是不是空格或者換行,如果是,直接讀取下一個字符直道不再空白為止 
{ 
if(ch==32||ch==10) 
{ 
turn++; 
ch=GetChar(turn); 
ch=GetBC(ch);/////////遞歸實現 

return(ch); 
} 
else 
return(ch); 
} 

void Concat()/////////////連接,即為strtoken[]賦值 
{ 
strToken[n]=ch; 
n++; 
} 

int Reserve()/////以單詞為單位查找保留字,是則返回編碼,不是則返回0,用來區分標志符和保留字 
{ 
if(strcmp(strToken," DIM\0")==0)///////調用strcmp函數實現, 
return(1); 

else if(strcmp(strToken,"for\0")==0) 
return(2); 

else if(strcmp(strToken,"step\0")==0) 
return(3); 

else if(strcmp(strToken,"until\0")==0) 
return(4); 

else if(strcmp(strToken,"do\0")==0) 
return(5); 

else 
return(6); 
} 

void clear() 
{ 
n=0; 
} 


/////////////*語法遞歸分析*///////////////// 
int A(int * c,int & q) 
{ 
if(c[q++]==3) 
{ 
if(c[q]==7) 
{ q++; 
return 1; 
} 
else {cout<<"step右部出錯"<<endl;return 0;} 
}else {cout<<"error 'step'"<<endl;return 0;} 
} 


int B(int * b,int & o) 
{ 
if(b[o++]==4) 
{ 
if(b[o]==7) 
{ o++; 
return 1; 
} 
else {cout<<"until右部出錯"<<endl;return 0;} 
}else {cout<<"error 'until'"<<endl;return 0;} 
} 


int S2(int * d,int & h) 
{ 
if(d[h++]==6) 
{ 
if(d[h++]==8) 
{ 
if((d[h]==6||d[h]==7)) {h++; return 1;} 
else {cout<<"賦值語句右部出錯 "<<endl;return 0;} 
}else {cout<<"賦值語句缺少賦值運算符 "<<endl;return 0;} 
}else {cout<<"賦值語句左部出錯 "<<endl;return 0;} 
} 

int S1(int * m,int & n) 
{ 
if(S2(m,n)) 
{ 
if(A(m,n)) 
{ 
if(B(m,n)) return 1; 
else return 0; 
}else return 0; 
}else return 0; 
} 

int S(int *a,int & z) 
{ 
if (a[z++]==2) 
{ 
if (S1(a,z)) 
{ 
if(a[z++]==5) 
{ 
if(S2(a,z)) 
{ 
cout<<"succeed!"<<endl;return 1; 
}else return 0; 
}else {cout<<"error 'do'"<<endl; return 0;} 
}else return 0; 
}else {cout<<"error 'for'"<<endl; return 0;} 
} 




void main() 
{ 


cout<<"*************產生式***************"<<endl;// for step until do i j = 
cout<<" S ->for S1 do S2"<<endl; // 編號 2 3 4 5 6 7 8 
cout<<" S1 ->S2AB"<<endl; 
cout<<" S2 ->i=j"<<endl; 
cout<<" A ->stepj"<<endl; 
cout<<" B ->untilj"<<endl; 
int num; 

turn=0; 
num=buffer()-1; 
int x=0;//計識別的單詞的個數 

for(;turn<=num;turn++)//總循環,ch存放剛讀入的字符,strtoken[]存放已識別的標志付或保留字,turn是數組str[]的下標 
{ 
ch=GetChar(turn); 
ch=GetBC(ch); 

if(IsLetter(ch)) 
{ 
while(IsLetter(ch)&&turn<=num||IsDigit(ch)&&turn<=num) 
{ 
Concat(); 
ch=GetChar(++turn); 
} 

strToken[n]='\0'; 
ch=NULL;//此ch不是標志符中的符號 
turn=turn-1; 

kind=Reserve(); 
record[x]=new Word; record[x]->sort=kind;//12345或6 
//cout<<kind; //測試 
cout<<"("; 
for(int i=0;i<n;i++) 
{ 
record[x]->word[i]=strToken[i]; 
cout<<record[x]->word[i];//輸出識別的標志符或保留字 
} 
cout<<","<<kind<<")"<<endl; 
record[x]->word[i]='\0'; 
clear(); 
x++; 

} 

else if(IsDigit(ch)) 
{ 
while(IsDigit(ch)&&turn<=num) 
{ 
Concat(); 
ch=GetChar(++turn); 
} 

ch=NULL; 
turn=turn-1; 

kind=7; 
////////////// 
record[x]=new Word; 

record[x]->sort=kind; 
//////////////// 

cout<<"("; 

for(int i=0;i<n;i++) 
{ 

record[x]->word[i]=strToken[i]; 
cout<<record[x]->word[i]; 
} 
cout<<","<<kind<<")"<<endl; 
record[x]->word[i]='\0'; 
clear();x++; 

} 

else if(ch=='=') 
{ 
kind=8; 
/////// 
record[x]=new Word; 
record[x]->word[0]='='; 
record[x++]->sort=kind; 
cout<<"(=,"<<kind<<")"<<endl; 

} 

else 
cout<<"error input!"<<endl; 
} 

//////////////////////*語法分析*//////////////// 
//int y; 

/*for(y=0;y<x;y++) 
{cout<<record[y]->sort<<" ";//打印單詞的編號 。 

}cout<<endl;*/ 


int ana[MAX];//存放詞法分析得到的單詞序列的編號的序列 
int m; 
for(m=0;m<x;m++) 
{ 
ana[m]=record[m]->sort;//將sort作為數組保存起來 

} 
/////////語法分析/////// 
int j=0; 


///////////////////制導翻譯////////////////// 
if(!S(ana,j)) cout<<"語法出錯!"<<endl; 
else 
{ cout<<"三地址碼如下:"<<endl; 
cout<<"100 "; 
int i=0; 
while(record[1]->word[i]!='\0') 
cout<<record[1]->word[i++];cout<<record[2]->word[0]; 
i=0; 
while(record[3]->word[i]!='\0') 
cout<<record[3]->word[i++];cout<<endl; 
cout<<"101 goto 103"<<endl; 
cout<<"102 "; 
i=0; 
while(record[1]->word[i]!='\0') 
cout<<record[1]->word[i++];cout<<":="; 
i=0; 
while(record[1]->word[i]!='\0') 
cout<<record[1]->word[i++];cout<<"+"; 
i=0; 
while(record[5]->word[i]!='\0') 
cout<<record[5]->word[i++];cout<<endl; 
cout<<"103 if "; 
i=0; 
while(record[1]->word[i]!='\0') 
cout<<record[1]->word[i++];cout<<"<"; 
i=0; 
while(record[7]->word[i]!='\0') 
cout<<record[7]->word[i++]; 
cout<<" goto 105"<<endl; 
cout<<"104 goto 107"<<endl; 
cout<<"105 "; 
i=0; 
while(record[9]->word[i]!='\0') 
cout<<record[9]->word[i++];cout<<":="; 
i=0; 
while(record[11]->word[i]!='\0') 
cout<<record[11]->word[i++];cout<<endl; 
cout<<"106 goto 102"<<endl; 
cout<<"107 end"<<endl; 

} 



}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲国产精品综合小说图片区| 久久综合成人精品亚洲另类欧美 | 国产视频在线观看一区二区三区| 蜜桃视频在线观看一区| 777午夜精品免费视频| 蜜桃视频在线观看一区| 久久久亚洲精华液精华液精华液 | 色av一区二区| 亚洲欧美国产三级| 精品1区2区3区| 蜜臀精品一区二区三区在线观看 | 久久国产乱子精品免费女| 精品久久久久久久久久久久久久久| 久久99国产精品久久99| 国产免费久久精品| 色av成人天堂桃色av| 麻豆一区二区99久久久久| 久久久不卡网国产精品一区| gogo大胆日本视频一区| 亚洲国产人成综合网站| 欧美精品一区二区蜜臀亚洲| av电影在线不卡| 丝袜美腿亚洲一区| 国产精品免费视频观看| 8v天堂国产在线一区二区| 国产白丝精品91爽爽久久| 亚洲小说欧美激情另类| 久久免费午夜影院| 在线亚洲精品福利网址导航| 狠狠色丁香九九婷婷综合五月| 亚洲欧洲一区二区三区| 欧美一区二区三区日韩视频| 成人av片在线观看| 日本不卡视频在线| 亚洲男人的天堂在线观看| 日韩欧美不卡一区| 在线区一区二视频| 国内成+人亚洲+欧美+综合在线 | av爱爱亚洲一区| 久久精品99国产国产精| 亚洲一区二区在线免费观看视频| 精品久久久久久无| 欧美久久久一区| 91一区二区三区在线观看| 精品在线观看视频| 亚洲电影第三页| 亚洲欧美另类在线| 国产欧美一区二区精品性| 日韩一区二区三区视频在线| 日本韩国一区二区三区视频| 国产成人精品影视| 久久国产三级精品| 日韩黄色免费电影| 夜夜揉揉日日人人青青一国产精品| 久久久99精品免费观看| 精品久久五月天| 欧美一区二区三区四区五区 | 欧洲精品一区二区| 成人一区在线看| 国产主播一区二区三区| 蜜桃av一区二区| 天堂一区二区在线| 午夜在线成人av| 亚洲精品久久久蜜桃| 亚洲欧洲日产国码二区| 国产蜜臀av在线一区二区三区| 日韩精品一区二区三区中文不卡| 欧美日韩三级在线| 欧美久久高跟鞋激| 欧洲精品中文字幕| 欧美私模裸体表演在线观看| 色婷婷av一区二区三区gif | 91视频一区二区三区| 成人成人成人在线视频| 成人性生交大合| 99在线精品一区二区三区| 成人精品免费网站| 91免费国产视频网站| 色婷婷综合久色| 色婷婷综合久久久中文字幕| 色偷偷一区二区三区| 欧美自拍偷拍一区| 欧美在线啊v一区| 91福利精品第一导航| 欧美在线999| 91精品国产综合久久久久久久| 337p亚洲精品色噜噜噜| 日韩欧美精品在线| 国产视频一区在线观看| 中文乱码免费一区二区| 亚洲三级视频在线观看| 一区二区三区精品| 天天综合日日夜夜精品| 日韩av一区二区三区| 精品一区二区影视| 成人免费av网站| 一本大道久久a久久精二百| 欧美图区在线视频| 精品福利一区二区三区免费视频| 久久久久国产精品人| 亚洲欧美综合网| 香蕉加勒比综合久久| 韩国在线一区二区| 99精品视频免费在线观看| 欧美日韩一本到| 久久亚洲捆绑美女| 亚洲人午夜精品天堂一二香蕉| 亚洲国产精品久久久久婷婷884| 日韩在线一二三区| 国产传媒久久文化传媒| 在线日韩一区二区| 久久在线免费观看| 一区二区三区四区视频精品免费| 日本va欧美va欧美va精品| 国产成人av电影在线播放| 在线欧美日韩精品| 久久综合九色综合97_久久久| 一区在线观看免费| 九一久久久久久| 在线一区二区视频| 国产亚洲精品久| 亚洲成人你懂的| 成人蜜臀av电影| 欧美大片一区二区三区| 亚洲特级片在线| 国产在线不卡一区| 欧美三级资源在线| 欧美激情综合五月色丁香 | 久久av老司机精品网站导航| aaa欧美色吧激情视频| 欧美电视剧免费全集观看| 亚洲精品国产一区二区三区四区在线| 天天色天天爱天天射综合| av网站免费线看精品| 精品国产精品网麻豆系列| 亚洲精品免费播放| 国产成人自拍在线| 欧美一区二区视频在线观看| 一区二区三区在线不卡| 粉嫩欧美一区二区三区高清影视| 4438亚洲最大| 亚洲精品菠萝久久久久久久| 成人高清视频在线观看| 精品剧情在线观看| 蜜臀av性久久久久蜜臀av麻豆| 欧美性大战久久久久久久| 最新久久zyz资源站| 国产成人在线观看| 精品处破学生在线二十三| 亚洲第一搞黄网站| 欧洲亚洲国产日韩| 亚洲精品成人精品456| 91亚洲精品久久久蜜桃| 国产精品欧美一区喷水| 国产精品12区| 久久精品综合网| 国产一区二区三区蝌蚪| 欧美tk丨vk视频| 亚洲超碰精品一区二区| 欧美丝袜自拍制服另类| 一区二区在线电影| 日本大香伊一区二区三区| 一区二区三区av电影| 91麻豆国产精品久久| 综合色中文字幕| 色欧美88888久久久久久影院| 成人欧美一区二区三区小说| av动漫一区二区| 亚洲特黄一级片| 在线观看一区不卡| 亚洲午夜精品网| 欧美日韩一区二区电影| 同产精品九九九| 欧美成人免费网站| 国产米奇在线777精品观看| 高清国产一区二区| 国产精品无码永久免费888| 丰满少妇在线播放bd日韩电影| 国产婷婷色一区二区三区四区| 不卡电影一区二区三区| 亚洲色图20p| 欧美日本视频在线| 麻豆精品一区二区三区| 久久综合成人精品亚洲另类欧美 | 亚洲国产日韩综合久久精品| 欧美精品日韩综合在线| 美脚の诱脚舐め脚责91 | 国产一二精品视频| 中文字幕一区二区三区在线观看| 91色porny在线视频| 亚洲国产精品精华液网站| 欧美一级片在线观看| 国产一区二区女| 亚洲日本护士毛茸茸| 欧美精品在欧美一区二区少妇| 另类小说欧美激情| 国产精品护士白丝一区av| 欧美精品1区2区| 国产成人精品免费看| 亚洲激情六月丁香|