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

正文內(nèi)容

編譯原理報(bào)告(9)-閱讀頁

2025-04-07 12:06本頁面
  

【正文】 LY_RESULT * result。 printf(\n please input string : \n)。 }while( ch != 39。 )。 //輸出結(jié)果 while( result ) { if( resultsyn == 11) printf((%d, %d)\n, resultsyn, resultsum)。 else if (resultsyn == 2) { printf(Identifier error\n)。 } else printf((%d, %s)\n, resultsyn, resultword)。 } return 0。圖 14 輸錯(cuò)數(shù)字后程序的操作可見程序可以正確處理標(biāo)識符錯(cuò)誤的情況。圖 15 輸入非法字符后程序的操作由上述示例可以看到,程序?qū)崿F(xiàn)了預(yù)定的功能,也可以對一些特定的錯(cuò)誤進(jìn)行處理,可以說這個(gè)程序的編制是成功的。 實(shí)驗(yàn)要求利用C語言編制遞歸下降分析程序,并對簡單語言進(jìn)行語法分析。 語句 }(3) 語句 ::= 賦值語句(4) 賦值語句 ::= ID := 表達(dá)式(5) 表達(dá)式 ::= 項(xiàng) {+項(xiàng) | 項(xiàng)}(6) 項(xiàng) ::= 因子 {*因子 | /因子}(7) 因子::= ID | NUM | (表達(dá)式)2. 實(shí)驗(yàn)要求說明輸入單詞串,以“”結(jié)束,如果是文法正確的句子,則輸出成功信息,打印“success”,否則輸出“error”。 x:=2*3。(2) 遞歸下降分析程序示意圖如所示。(4) 表達(dá)式語句分析函數(shù)流程如所示。并且,它的輸入就是我的詞法分析程序輸出的鏈表。一旦某個(gè)函數(shù)返回0,就說明語法分析過程出錯(cuò),則工作停止并輸出錯(cuò)誤。:includeincludeclass GrammerAnaly{public: GrammerAnaly() = default。 return lrparser()。 int scanner()。 //語句串分析 int word_string()。 //表達(dá)式分析 int expression()。 //因子分析 int factor()。endif:includeincludeint GrammerAnaly::scanner(){ thispWordAnalyResult = thispWordAnalyResultnext。 return 1。 //當(dāng)前符號是否為begin if (thispWordAnalyResultsyn == 1) { if (!thisscanner()) return 0。 //當(dāng)前符號是否為end if (thispWordAnalyResultsyn == 6) { if (!thisscanner()) return 0。 } else { printf(缺少39。\n)。 } return 0。 //當(dāng)前符號是否為; while (thispWordAnalyResultsyn == 26) { if (!thisscanner()) return 0。 } return 1。 //當(dāng)前符號是否為賦值號 if (thispWordAnalyResultsyn == 18) { if (!thisscanner()) return 0。 } else { printf(語句錯(cuò)誤\n)。 } } return 1。 //當(dāng)前符號是否為加號或減號 while (thispWordAnalyResultsyn == 13 || thispWordAnalyResultsyn == 14) { if (!thisscanner()) return 0。 } return 1。 //當(dāng)前符號是否為乘號或除號 while (thispWordAnalyResultsyn == 15 || thispWordAnalyResultsyn == 16) { if (!thisscanner()) return 0。 } return 1。 } //當(dāng)前符號是否為左括號 else if (thispWordAnalyResultsyn == 27) { if (!thisscanner()) return 0。 //當(dāng)前符號是否為右括號 if (thispWordAnalyResultsyn == 28) { if (!thisscanner()) return 0。)39。 return 0。 return 0。}:includeincludeincludeint main(){ char buffer[300]。 char ch。 WordAnaly * pWordAnaly = new WordAnaly()。 printf(\n please input string : \n)。 }while( ch != 39。 )。 if (pGrammerAnalygrammer_analy(result) == 1) printf(Success!\n)。 return 0。接下來我將再測試幾個(gè)例子。圖 210 自編用例1運(yùn)行結(jié)果2. 測試一段帶有括號的正確的代碼。雖然并沒有測試更多的例子,不過現(xiàn)在可以說,我的語法分析程序的編制是成功的。首先,我認(rèn)識到了,編譯原理這門課的只是并不僅僅局限在理論上。雖然我們都知道我們平時(shí)所做的編程工作都離不開這門課程,但是還是覺得這門課程的知識很高深,也距離我們很遙遠(yuǎn)。上機(jī)的過程也打消了編譯原理這門課程在我心中的神秘性。正因?yàn)橐?guī)格化理論上的復(fù)雜與嚴(yán)謹(jǐn),我們在動(dòng)手去實(shí)現(xiàn)它的時(shí)候才會(huì)這么輕松和簡單。我在之前僅僅是聽老師提過一次,并沒有嘗試去了解和使用它,沒想到這些同學(xué)就已經(jīng)開始積極動(dòng)手實(shí)踐了。之后我就去了解了一些Yacc和Lex的有關(guān)知識,發(fā)現(xiàn)它們的使用也并不是太困難。同時(shí),在編寫程序的時(shí)候,我也遇到了一些問題。通過不斷的調(diào)試與改進(jìn),我最終解決了這些問題,完成了上機(jī)實(shí)驗(yàn)的任務(wù)。因?yàn)橹虚g的數(shù)據(jù)是靠鏈表進(jìn)行傳遞的,所以語法分析程序和詞法分析程序不能實(shí)時(shí)通信,這樣的話在出現(xiàn)錯(cuò)誤的時(shí)候程序不能及時(shí)響應(yīng),會(huì)浪費(fèi)一定的時(shí)間??偟貋碚f,這次上機(jī)實(shí)驗(yàn)加深了我對編譯原理這門課程的認(rèn)識,提高了我編寫程序和查錯(cuò)改錯(cuò)能力,也讓我認(rèn)識到了自己在學(xué)習(xí)上面的不足,讓我知道我自身需要提高的地方。23
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1