xxxx18一60岁hd中国/日韩女同互慰一区二区/西西人体扒开双腿无遮挡/日韩欧美黄色一级片 - 色护士精品影院www

  • 大小: 214KB
    文件類(lèi)型: .docx
    金幣: 1
    下載: 0 次
    發(fā)布日期: 2021-06-11
  • 語(yǔ)言: 其他
  • 標(biāo)簽: 編譯原理??

資源簡(jiǎn)介

本程序的所用的存儲(chǔ)結(jié)構(gòu)都是string類(lèi)型的,最主要的存儲(chǔ)文法的數(shù)據(jù)結(jié)構(gòu)為自定義結(jié)構(gòu),里面包括一個(gè)產(chǎn)生式的左部,右部以及select集合,至于非終結(jié)符的first和follow集合,則是定義了一個(gè)string類(lèi)型的數(shù)組進(jìn)行存儲(chǔ)。 本程序的求first,follow,select集合的算法即為書(shū)上所介紹的方法,即求first的集合時(shí),只看本產(chǎn)生式,求follow集合時(shí),要進(jìn)行遞歸查找一個(gè)非終結(jié)符的所有后跟字符,求select其實(shí)就是對(duì)first與follow集合的運(yùn)算,最終根據(jù)所有的select集合,便可以判斷此文法是否為L(zhǎng)L(1)文法。 對(duì)于不是LL(1)文法的產(chǎn)生式,本程序在判斷后進(jìn)行轉(zhuǎn)換,先進(jìn)行消除左遞歸,然后提取左公因子,在這兩步的每一步結(jié)束之后,都要對(duì)產(chǎn)生式進(jìn)行整合,去掉空存儲(chǔ),去掉無(wú)法到達(dá)的產(chǎn)生式,將select全部置空。 每進(jìn)行一次非LL(1)到LL(1)的轉(zhuǎn)換之后,都要對(duì)其文法性質(zhì)進(jìn)行判斷,如果是LL(1),則跳出,不是則繼續(xù),但是當(dāng)循環(huán)一定次數(shù)之后仍不是,程序判定其無(wú)法轉(zhuǎn)換,也要跳出。 其中還有對(duì)第一個(gè)非終結(jié)字符的右部替換與否進(jìn)行選擇,原因是,有些通過(guò)替換就可以很方便的進(jìn)行轉(zhuǎn)換,這個(gè)要通過(guò)人為進(jìn)行輸入。 提取公因子中也有上一段所說(shuō)的類(lèi)似的判斷機(jī)制,目的是為了防止文法的左公因子無(wú)法提取完的情況出現(xiàn)。 最終有三種結(jié)果,一種是是LL(1)文法,一種是不是LL(1),但是經(jīng)過(guò)轉(zhuǎn)換變成了LL(1),還有一種是經(jīng)過(guò)轉(zhuǎn)換也無(wú)法變成LL(1)。 輸入文本格式樣例: A A->ad A->Bc B->aA B->bB

資源截圖

代碼片段和文件信息

評(píng)論

共有 條評(píng)論

相關(guān)資源