freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

編譯原理報(bào)告(5)-wenkub

2023-04-07 12:06:22 本頁(yè)面
 

【正文】 erve() /*檢索關(guān)鍵字表格*/{ int i=0。ch=39。}int digit() /*判斷是否是數(shù)字*/{ if(ch=39。ch=39。)||(ch=39。amp。 token[p_token]=39。||ch==10) { ch=input[p_input]。 p_input=p_input+1。int digit()。 /*可擴(kuò)充關(guān)鍵字?jǐn)?shù)組*/char m_getch()。 /*單詞緩沖區(qū)*/int p_input。 char* word。在課程上主要是理解了詞法分析的作用以及其工作的原理,對(duì)于其具體的實(shí)現(xiàn)還不是很清楚,在本次實(shí)驗(yàn)中自己對(duì)于詞法程序的編寫是我將理論與實(shí)際相結(jié)合,對(duì)于具體的輸入輸出都有了很深刻的概念。掃描子程序的主要流程圖如圖所示:實(shí)驗(yàn)結(jié)果1. 輸入begin x:=9。如能查到匹配的單詞,則該單詞為關(guān)鍵字,否則為一般標(biāo)識(shí)符。 end 的源文件,經(jīng)詞法分析后輸出如下序列:(1, begin)(10,’x’)(18,:=)(11,9)(26,。2614(27*15)28/160 詞法分析程序的功能輸入:所給文法的源程序字符串。(2) 運(yùn)算符和界符:: = + * / = = = 。 ( ) (3) 其他單詞是標(biāo)識(shí)符(ID)和整型常數(shù)(NUM),通過以下正規(guī)式定義:ID = letter ( letter | digit )*NUM = digit digit*(4) 空格由空白、制表符和換行符組成。輸出:二元組(syn,token或sum)構(gòu)成的序列。)(2,if)……詞法分析程序的算法思 算法的基本任務(wù)是字符串表示的源程序中識(shí)別處具有獨(dú)立意義的單詞符號(hào),其基本思想是根據(jù)掃描到單詞符號(hào)的第一個(gè)字種類,拼出相應(yīng)的單詞符號(hào)。關(guān)鍵字表為一個(gè)字符串?dāng)?shù)組,其描述如下:Char * rwtab[6] = {“begin”,”if”,”then”,”while”,”do”,”end”}。 if x 0 then x: = 2 * x + 1/3。但是在實(shí)驗(yàn)中也存在一些不足,比如,這只是針對(duì)其中一組關(guān)鍵字來實(shí)現(xiàn)的,如果換一組關(guān)鍵字,則需要重新編寫程序。}WORD。 /*輸入緩沖區(qū)指針*/int p_token。void getbc()。int reserve()。 return (ch)。 p_input=p_input+1。\039。amp。A39。Z39。039。939。 while (strcmp(Keyword[i],KEY_WORD_END)) { if(!strcmp(Keyword[i],token)) { return i+1。}WORD* scaner(){ WORD* myword=new WORD。 m_getch()。 } retract()。 } else if(digit()) { while(digit()) { concat()。 mywordword=token。:m_getch()。 mywordword===。 mywordword==。+39。 break。 mywordword=。*39。 break。 mywordword=/。:mywordsyn=26。 case 39。 return(myword)。:mywordsyn=28。 case 39。 return(myword)。:mywordsyn=30。 case 39。 return(myword)。:mywordsyn=32。 case 39。 return(myword)。:mywordsyn=34。 case 39。=39。 } retract()。 break。 if(ch==39。 return(myword)。 return(myword)。:m_getch()。 mywordword=!=。 mywordword=ERROR。\039。 break。 }}int main(){ int over=1。/*讀入源程序字符串到緩沖區(qū),以 結(jié)束,允許多行輸入*/ p_input=0。over!=1) /*對(duì)原程序進(jìn)行分析,直至結(jié)束符 */ { oneword=scaner()。 scanf(%[^]s,input)。b:=0 end 輸出: success輸入: begin a=9 end 輸出: error語(yǔ)法分析程序的算法思想算法的基本任務(wù)是從字符串中表示的源程序中識(shí)別出具有獨(dú)立意義的單詞符號(hào),并通過其基本文法,正確規(guī)約到開始符號(hào)。syn用于每一步掃描中scanner 的返回值。通過本次實(shí)驗(yàn)深刻了解了語(yǔ)法分析程序的功能是以詞法分析器生成的單詞符號(hào)序列作為輸入,根據(jù)語(yǔ)言的語(yǔ)法規(guī)則,識(shí)別出各種語(yǔ)法成分,并在分析過程中進(jìn)行語(yǔ)法檢查,檢查所給單詞符號(hào)序列是否是該語(yǔ)言的文法的一個(gè)句子。int ClearBlank(char *input,int (*index),int length)。void factor(char *input,int inputLength,int *index)。const char *retab[6]= {begin,if,then,while,do,end}。 }}void scaner(char *input,int inputLength,int *index){ char s[256]=。 if(myIsAlpha(ch)==1) //如果是字母 { while(((ch=39。 ch=39。 *index =inputLength) { s[nowPosition]=ch。039。amp。 if(j==0) { syn=10。 } else //超過范圍 { s[nowPosition++]=ch。 if(j==0) { syn=10。 return。amp。039。939。 //添加到當(dāng)前字符串中 nowPosition++。 || ch39。 return。 } } else { switch(ch) { case 39。 } case 39。 } case 39。 } case 39。 } case 39。=39。39。 if(*indexinputLength) { return。39。) { syn=24。 } else
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1