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

正文內(nèi)容

編譯原理實驗二(設(shè)計一個詞法分析器)五篇范文-wenkub.com

2024-11-03 22:01 本頁面
   

【正文】 在完成這個程序后,真的很開心,也了使我解到編譯原理的魅力所在,激發(fā)了我要解決更多更難問題的決心。)return true。first[i][j]!=39。for(i=0。i++){ if(puanduanChar(a,follow[p][i])){ a[flag]=follow[p][i]。} } return flag。first[p][i]!=39。first[p][i]!=39。i++){ if(Vn[i].equals((b))){ if(followComplete[i]==1)return i。else return1。} //判斷b是否已完成first判斷private int firstComplete(char b){ int i。} //把b加入字符串組firstVn[]private void addString(String firstVn[],String b){ int i。} //判斷b是否在a中,在返回false,不在返回trueprivate boolean puanduanString(String a[],char b){ for(int i=0。a[i]!=39。39。break。k++){ if(puanduanChar(a,follow[j][k])){ a[flag]=follow[j][k]。j++){ if(Vn[j].equals((0,1))){ break。//表達式右側(cè)能推出空,標記 } else { a[flag]=first[j][k]。39。Vn[i]!=null。amp。} else { biaozhi=0。flag++。{ if(first[j][k]==39。A39。k++){ if(puanduanChar(a,follow[j][k])){ a[flag]=follow[j][k]。j++)//將表達式左側(cè)的非終結(jié)符的follow加入select { if(Vn[j].equals((0,1))){ break。39。while(iif(((i)39。} elseif((flag=tianjiaFollow(a,((0)),followVn,flag))==1)return1。} } if((j)==(0)amp。if(p!=1){ flag=addElementFollow(a,p,flag)。//把下一個非終結(jié)符first加入所求follow集for(k=j+1。for(k=0。Z39。39。} } } } } return flag。} continue。39。break。for(int j=0。} else//非終結(jié)符 { if(!puanduanString(Vn,(k))){ int p=firstComplete((k))。} else//終結(jié)符直接加入first** { a[flag]=(k)。yn_null[j]!=39。j++)//所求非終結(jié)符進入yn_null**{ if(yn_null[j]==(0))//判斷能否推出空{(diào) flag1=1。} int flag1=0。||(k){ if(flag==0||puanduanChar(a,(k))){if((k)==39。iString t=(String)(i)。return。((n))。n[51]=39。n[49]=39。n[14]=39。} buzhou++。for(int y=fzifu1。} } } if(buzhou=0。i)//將分析棧內(nèi)非終結(jié)符換為右邊表達式{ if((i)!=39。for(int y=0。return。return。i++)//搜尋所用產(chǎn)生式的左部 if(Vn[i].equals((k)))break。y=0。+buzhou%10)。039。一個字符 { n[u]=zifu[y]。if(buzhou{ n[0]=(n[1]=(} u=14。((n)+”n“)。n[50]=39。))//剩余輸入串不為則分析{ int i,j。amp。i){ n[u]=zifu[i]。S39。139。} int buzhou=2。for(int i=()1。fenxi[0]=39。//分析棧 zifu[0]=39。for(int i=0。dtm=new DefaultTableModel()。first=null。(”“)。} if(()==b3)//清空列表 { (”“)。vt_tou[0]=f。i{ if((j)39。return。39。char save[]=new char[100]。//顯示SELECT**for(int i=0。} select=new char[()][100]。follow[i][j]!=39。//顯示FOLLOW**for(int i=0。followVn=new String[20]。followComplete=new int[Vnnum]。j++){ (first[i][j]+” , “)。i++){ (”first(“+Vn[i]+”)={ “)。firstComplete[i]=1。Vn[i]!=null。int flag=0。} else { (”文法輸入有誤,請重新輸入“)。){ for(k=0。amp。for(int i=0。int Vnnum=0,k。+b+39。} public void actionPerformed(ActionEvent e){ if(()==b0){ String a=()。(this)。add(p3,“South”)。(jp3)。(b3)。(l0)。(l)。JScrollPane jp1=new JScrollPane(t1)。b1=new JButton(“ 判斷文法 ”)。t1=new JTextArea(24,20)。l4=new JLabel(“預(yù)測分析”)。l0=new JLabel(“輸入字符串:”)。setSize(700,780)。//標記是否為LL(1)String vt_tou[]=null。//存儲最后first結(jié)果int followComplete[]=null。String Vn[]=null。Statement sta。JTextArea t1,t2,t3。JTextField tf2。import .*。對下列文法,用LL(1)分析法對任意輸入的符號串進行分析:(1)ETG(2)G+TG|—TG(3)Gε(4)TFS(5)S*FS|/FS(6)Sε(7)F(E)(8)Fi 輸出的格式如下:五、實驗源程序 import .*。三、LL(1)分析法實驗設(shè)計思想及算法u 模塊結(jié)構(gòu):(1)定義部分:定義常量、變量、數(shù)據(jù)結(jié)構(gòu)。有利于提高學(xué)生的專業(yè)素質(zhì),為培養(yǎng)適應(yīng)社會多方面需要的能力。通過本次編譯原理課程設(shè)計,對面向?qū)ο蟮亩x又有了更深一步的理解,對編譯程序有了進一步的理解,同時也認識到自己各方面知識的薄弱點,以后在學(xué)習(xí)中也能有針對性對這方面進行深入學(xué)習(xí)。缺點是對文法要求高,必須是LL(1)文法,同時由于遞歸調(diào)用較多,影響分析器的效率。雖然這花費了一定的時間和精力,但那點付出也是值得的,通過復(fù)習(xí)讓我加深理解了有關(guān)自上而下語法分析的內(nèi)容,而且也為用高級語言實現(xiàn)遞歸下降分析器帶來便利。本人因為上課無法做到打醒十二分專心聽課,經(jīng)常會分神,所以學(xué)習(xí)的效果也不怎么好。cout(E)”測試分析圖2 測試分析成功圖3 測試分析失敗用戶手冊開發(fā)工具:visual c++ 開發(fā)環(huán)境:windows XP操作系統(tǒng)運行環(huán)境:windows 9x,windows NT,Windows 2000,windows XP 注意:輸入時,程序最多只能接受50個字符,輸入完算術(shù)表達式后要以“”號結(jié)束?!?FT39。*39。cout^”TE39。39。+39。void main(){}void e(){}void e1()right=1。void e1()。(3)當(dāng)遇到Aε規(guī)則時,則編寫語句If(當(dāng)前讀到的輸入符號不屬于Follow(A))error()(4)當(dāng)某個非終結(jié)符的規(guī)則有多個候選式時,按LL(1):圖1遞歸下降子程序流程圖詳細設(shè)計include char inputstream[50]。算術(shù)表達式文法如下: EE+T|ET|T TT*F|T/F|F F(E)| i 首先改寫文法為LL(1)文法;然后為每一個非終結(jié)符,構(gòu)造相應(yīng)的遞歸過程,過程的名字表示規(guī)則左部的非終結(jié)符;過程體按規(guī)則右部符號串的順序編寫。FOLLO(WA)=fLL(1)中的第一個L表示從左到右掃描輸入串,第二個L表示最左推導(dǎo),1表示分析時每 一步只需向前查看一個符號。即,若A174。最后,由于帶回溯的自上而下分析實際上采用了一種窮盡一切可能的試探法,因此,效率很低,代價極高。如果我們走了一大段錯路,最后必須回頭,那么,就應(yīng)把已經(jīng)做的一大堆語義工作(指中間代碼產(chǎn)生工作和各種表格的簿記工作)推倒重來。Pa,含有左遞歸的文法使上述的
點擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1