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

正文內(nèi)容

編譯原理報(bào)告(9)(存儲版)

2025-04-22 12:06上一頁面

下一頁面
  

【正文】 nalyResult == NULL) return 0。end39。}int GrammerAnaly::statement(){ //當(dāng)前符號是否為變量名 if (thispWordAnalyResultsyn == 10) { if (!thisscanner()) return 0。 if (thisterm() == 0) return 0。 if (thisexpression() == 0) return 0。 } return 1。 do { buffer[p++] = ch = getchar()。} 測試結(jié)果我先用書上的兩個(gè)例子源程序進(jìn)行了測試,結(jié)果如下:圖 28 書上測試用例1運(yùn)行結(jié)果圖 29 書上測試用例2運(yùn)行結(jié)果由書上的兩個(gè)例子的運(yùn)行結(jié)果可以看出來,程序目前可以對正確的源程序判定成功,也可以對錯(cuò)誤的源程序指出錯(cuò)誤原因。在上機(jī)之前,我們所接觸的編譯原理都是存在于課堂上、書本中的,都是書上一條條的理論與規(guī)則。看到這些同學(xué),我也很慚愧,感覺自己在學(xué)習(xí)的主動性上還是差了很多。這一點(diǎn)還是需要再進(jìn)行改進(jìn)。不過話說回來,我的解決方式也并不完美。在上機(jī)實(shí)驗(yàn)的過程中,我也看到有一些同學(xué)使用了Yacc和Lex等工具來生成產(chǎn)生自己的代碼。3 總結(jié)與體會通過這次編譯原理上機(jī),我學(xué)到了很多的東西。 else printf(Error!\n)。 GrammerAnaly * pGrammerAnaly = new GrammerAnaly()。 } } else { printf(表達(dá)式錯(cuò)誤\n)。}int GrammerAnaly::factor(){ //當(dāng)前符號是否為變量名或整形數(shù)字 if (thispWordAnalyResultsyn == 10 || thispWordAnalyResultsyn == 11) { if (!thisscanner()) return 0。}int GrammerAnaly::expression(){ if (thisterm() == 0) return 0。 if (thisstatement() == 0) return 0。 //當(dāng)前符號是否為 if (thispWordAnalyResultsyn == 0) return 1。}。 }private: WORD_ANALY_RESULT * pWordAnalyResult。圖 21語法分析主程序示意圖圖 22 遞歸下降分析程序示意圖圖 23 語句串分析示意圖圖 24 statement語句分析函數(shù)示意圖圖 25 expression表達(dá)式分析函數(shù)示意圖圖 26 term分析函數(shù)示意圖圖 27 factor分析過程示意圖 算法實(shí)現(xiàn)同詞法分析程序一樣,本程序也是使用C++語言,并借助了類這個(gè)工具來編寫的。1. 待分析的簡單語言的語法用擴(kuò)充的BNF表示如下:(1) 程序 ::= begin 語句串 end(2) 語句串 ::= 語句 {。 result = resultnext。39。}:includeincludeint main(){ char buffer[300]。) || (ch == 39。039。) || (ch = 39。 return pWAR_head。 strcpy(pWAR_pword, token)。39。 case 39。 break。\039。 token[1] = 39。 token[0] = temp_ch。: pWAR_psyn = 13。 token[token_pointer++] = temp_ch。 } break。 if( temp_ch== 39。\039。 token[token_pointer++] = temp_ch。 } else switch(temp_ch) { case 39。 } pWAR_psyn = 22。 pWAR_psyn = 10。 while( thisis_blank(temp_ch)) temp_ch = source_buffer[source_buffer_pointer++]。 //當(dāng)前處理的源程序的位置 int source_buffer_pointer = 0。 //關(guān)鍵字的個(gè)數(shù) int key_word_num = sizeof(thiskey_word_map)/sizeof(char *)。39。\n39。+39。 ~WordAnaly()。我的源程序如下::ifndef COMPILE_COMMON_H_INCLUDEDdefine COMPILE_COMMON_H_INCLUDED//詞法分析返回的結(jié)果鏈表節(jié)點(diǎn)結(jié)構(gòu)typedef struct WORD_ANALY_RESULT_{ int syn。(2) 程序中需要用到的主變量為syn,token和sum。 end 的源文件,經(jīng)詞法分析后輸出如下序列:(1,begin)(10,’x’)(18,:=)(11,9)(26,。(2) 運(yùn)算符和界符::= + * / = = = ; ( ) (3) 其他單詞是標(biāo)識符(ID)和整形常數(shù)(NUM),通過以下正規(guī)式定義:ID = letter(letter | digit)*NUM = digit digit*(4) 空格由空白、制表符和換行符組成。單詞符號種別碼單詞符號種別碼begin1:17if2:=18then320while421do5=22end623letter (letter | digit)*10=24digit digit*11=25+13。其中初值包括如下兩個(gè)方面:(1) 關(guān)鍵字表的初值。圖 11 此法分析主程序示意圖圖 12 詞法分析程序流程 算法實(shí)現(xiàn)在
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1