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

正文內(nèi)容

編譯技術(shù)課程設(shè)計(jì)報(bào)告-詞法分析、語法分析、中間代碼生成(存儲(chǔ)版)

2025-07-02 13:32上一頁面

下一頁面
  

【正文】 mp。 num++。 streamnumber。 i = 0。 printf(\n)。 printf(\n)。 printf(\n)。 temp++。 return rt。 t1=a。 return rt。 rt=rr。 rt=rr。 } int YT1(int a) { int rt,t1。 return rt。 rt=rr。 rt=rr。 } int YE1(int a) { int rt,t1。 // t[num1]=temp。 nn++。 int YF1(int a)。 } else is_right =0。 } } void P() { if(flags[temp]==6||flags[temp]==7) //標(biāo)識(shí)符或常數(shù) { coutPiendl。amp。**Fendl。ε endl。T39。 F()。 } void T() { coutTFT39。endl。 temp++。 T()。 void T1()。 //break。 break。 break。 flag = 16。\039。 words[j+1] = 39。:{ words[j] = ch。]39。 } case39。 break。 flag = 15。 } else { i。\039。 flag = 10。 ch = program[i++]。 } break。 } else if( ch == 39。\039。 flag = 9。 flag = 9。 words[j] = 39。 } else { i。\039。 flag = 14。 ch = program[i++]。 } break。 if (ch == 39。 } case39。=39。=39。939。 (ch = 39。 } case 4:{ flag = 5。 status = 1。 words[j++] = 39。A39。Z39。amp。 //判斷輸出信息 //詞法分析 int Scan(char program[]) { char *keywords[5] = {while,if,else,switch,case}。 include include includesstream int i,j,k,flag,number,status。 } ( 1)屬性文法 E→ E’ +T =E’ .val+ E→ E’’ T =E’’ . E→ T = T→ T’ *F =T’ .val* T→ T’’ /F =T’’ .val/ T→ F = F’ → P**F F’ .val=** F’ → P F’ .val= P→ (E) = F→ i =i,lexval 第 11 頁 ( 2) 數(shù)據(jù)結(jié)構(gòu) 與 函數(shù)說明 Strn 用來存放臨時(shí)變量的序號(hào)。 temp++。amp。amp。endl。 } else if (flags[temp]!=0||flags[temp]!=17)//如果是非 或非) { coutT39。 } void T2() { if(flags[temp]==10||flags[temp]==13)//如果是乘或除 第 9 頁 { coutT39。*Fendl。 T 函數(shù) : 調(diào)用 F 函數(shù) , 調(diào)用 P 函數(shù) ,返回后看是否是’ *’或’ /’,如果是,則調(diào)用 T1 函數(shù),再調(diào)用 T2 函數(shù),如果不是,進(jìn)行出錯(cuò)處理,置 is_right 為 0。endl。 temp++。 T()。amp。 flags[500] 存放單詞符號(hào)的種別碼。 這個(gè)小語言的單詞符號(hào)的狀態(tài)轉(zhuǎn)換圖,如下圖: 2. 語法分析器 能識(shí)別由加 + 乘 * 乘方 ** 括號(hào)()操作數(shù)所組成的算術(shù)表達(dá)式,其文法如下: 第 4 頁 E→ E+T|T T→ T*F|F F→ P**F|P P→ (E)|i 使用的算法可以是:預(yù)測分析法 ; 遞歸下降分析法; LR 分析法等。例如,下面的寫法是絕對(duì)禁止的: if( 5) =x 其次 ,由于把關(guān)鍵字作為保留字,故可以把關(guān)鍵字作為一類特殊標(biāo)示符來處理。所謂的保留字的意思是,用第 3 頁 戶不得使用它們作為自己定義的標(biāo)示符。 因?yàn)閷?duì)于后者,我們的分析器將無條件地將 ifi看成一個(gè)標(biāo)識(shí)符。 ? ( 2) 數(shù)據(jù)結(jié)構(gòu) 用 words[10]存放構(gòu)成單詞符號(hào)的字符串,并且用于判斷是否為關(guān)鍵字。 第 6 頁 ( 4) 流程圖 ( 1)分析方法說明 采用遞歸下降分析法 ( 2) 文法 E→ E+T|ET|T T→ T*F|E/F|F F→ P**F|P P→ (E)|i 改造后的文法 E→ TE’ |TE’’ E’ → +TE’ |ε E’’ → TE’’ |ε T→ FT’ |FT’’ T’ → *FT’ |ε 第 7 頁 T’’ → /FT’’ |ε F→ PF’ F’ → **F|ε P→ (E)|i ( 3)數(shù)據(jù)結(jié)構(gòu) 與 函數(shù)說明 在 main 函數(shù)調(diào)用 E()函數(shù),如果調(diào)用之后返回時(shí) ,如果 ((flags[temp]==0)amp。endl。Tendl。39。 } else is_right=0。 } void T1() { if(flags[temp]==10) //乘號(hào) { coutT39。 } else is_right=0。 T2()。 代碼: void F() { coutFPF39。 } Elseif(flags[temp]!=0amp。f lags[temp]!=10amp。 代碼 : void P() { if(flags[temp]==6||flags[temp]==7) //標(biāo)識(shí)符或常數(shù) { coutPiendl。 } else is_right =0。 程序代碼: //include include iostream includestring using namespace std。 //數(shù)組下標(biāo) int is_right。) amp。(ch=39。 )||(ch=39。 } 第 17 頁 i。 } case 1:{ flag = 2。 break。amp。 (ch = 39。 } else switch (ch) //運(yùn)算符和標(biāo)點(diǎn)符號(hào) { case 39。 if (ch == 39。 } break。 ch = program[i++]。 flag = 14。\039。 } else { i。 words[j] = 39。 flag = 14。) words[j++] = ch。\039。 } else { i。 words[j] = 39。 flag = 12。 flag = 12。\039。 } else { i。 words[j] = 39。 flag = 13。\039。 flag = 17。 break。 } case39。{39。:{ words[j] = ch。 words[j+1] = 39。\039。 flag = 0。 flag = 24。 //flag = 0。 void T()。endl。Tendl。39。 } else is_right=0。 temp++。39。39。 } void F1() { if(flags[temp]==11) //乘方
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1