




已閱讀5頁,還剩5頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
學號:專業(yè):姓名: 實驗日期:2012.4.27教師簽字:成績:實驗名稱:試驗三:由正規(guī)文法構(gòu)造正規(guī)式實驗?zāi)康模赫莆丈舷挛臒o關(guān)文法類型的定義,及與其他類型文法的區(qū)別;.熟悉上下文無關(guān)文法類型的判斷,能夠快速按照要求寫出對應(yīng)文法類型的文法用例;.給出一個上下文無關(guān)文法類型,能夠正確判斷其是否存在左遞歸,若存在則消除直接、間接左遞歸。實驗原理:1.對于任意一個正規(guī)文法GS,都存在一個正規(guī)式與其等價,故可以使用RG構(gòu)造RE。2.對于RGRE,可遵循以下三種規(guī)則。1) r1r2,r1r3 r1r2|r32) r1r2r3,r3r4 r1r2r43) r1r2r1,r1r3 r1r2*r33.對于任意的RE,實驗內(nèi)容:. 實驗要求:輸入任意的正規(guī)文法,輸出相應(yīng)的正規(guī)式。. 實驗代碼:#include #include #include #include #include #include using namespace std;struct relationstring _left,_right;vector rel;string VN;relation get_realation(string str)/將一個字符串生成式分為左右部 輸入格式為-,返回生成式結(jié)構(gòu)體int t=str.find(-);relation r;r._left=str.substr(0,t);r._right=str.substr(t+2,str.length()-t);return r;vector find_Vn(char c)/查找左部為c的產(chǎn)生式vector v;for(int i=0;irel.size();i+)if(reli._left0=c)v.push_back(reli);return v;void print()coutRE C+ 2012/4/27 COPYRIGHT FROM NINGYU endl;void init()/*string strPath=d:/a.txt;ifstream fin(strPath);*/print();coutinput the RG ,End with Ctrl+Z (note:begin with S)strPath)rel.push_back(get_realation(strPath);/得到左部與右部;if(relrel.size()-1._left.length()=1)/得到左部的非終結(jié)符char c=relrel.size()-1._left0;if(c=A)int t=VN.find(c);if(t=string:npos)VN+=c;string dfs(char c)bool flag;vector v1,v2,v3,v4;/v1是左部為c右部為c的關(guān)系,v2是左部為c但是右部Vn不為c的關(guān)系,v3是左部為c,右部為re的關(guān)系v4=find_Vn(c);/按照右部vn的關(guān)系分類;for(int i=0;iv4.size();i+)char t=v4i._rightv4i._right.length()-1;if(t=c)v1.push_back(v4i);else if(t=A)v2.push_back(v4i);else v3.push_back(v4i);/將遞歸關(guān)系合并relation r;r._left.push_back(c);for(int i=0;iv2.size();i+)char t=v2i._rightv2i._right.length()-1;string s=v2i._right.substr(0,v2i._right.length()-1);s+=dfs(t);r._right=s;v3.push_back(r);/將re的關(guān)系右部合并;relation r1;r1._left.push_back(c);r1._right.push_back();flag=0;for(int i=0;iv3.size();i+)if(flag)r1._right+=|;else flag=1;r1._right+=v3i._right;r1._right.push_back();/生成r*項目relation r2;r2._left.push_back(c);r2._right.push_back();for(int i=0,flag=0;iv1.size();i+)if(flag) r2._right.push_back(|);else flag=1;r2._right+=v1i._right.substr(0,v1i._right.length()-1);r2._right.push_back();r1._right=(+r2._right+)+*+r1._right;/輸出r1觀察/coutr1._rightendl;return r1._right;string regular(string s)/去除無用括號,去除無用#string str1;stack sta1;for(int i=0;is.length();i+)if(si=(|si=a|si=|)sta1.push(si);continue;else if(si=)if(sta1.top()=()sta1.pop();else sta1.push(si);else if(si=*)if(sta1.size()=0)continue;else if(sta1.top()=*)continue;else sta1.push(si);while(sta1.size()!=0)str1+=sta1.top();sta1.pop();reverse(
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年策劃融資合作實施協(xié)議范本
- 事業(yè)單位房屋資源共享的模式創(chuàng)新
- 籌資源支持提振消費未來展望及發(fā)展趨勢
- 加強產(chǎn)業(yè)融合促進區(qū)域經(jīng)濟新動能
- 國慶節(jié)主題班會851
- 區(qū)域影視品牌建設(shè)與全球化視野下的機遇
- 生態(tài)環(huán)境與農(nóng)村資源循環(huán)利用的平衡
- 創(chuàng)新驅(qū)動保險未來
- 主動脈瘤常規(guī)護理
- 碩士論文答辯攻略
- 2025至2030年液壓馬達行業(yè)深度研究報告
- 2025年稅務(wù)師考試全面覆蓋試題及答案
- 2024年花藝師現(xiàn)場制作考題及試題及答案
- 微型消防站設(shè)立方案
- 合同緊急聯(lián)系人協(xié)議
- 中西繪畫藝術(shù)風格對比分析
- 商業(yè)保險在風險管理中的應(yīng)用
- TCAWAORG 014-2024 老年綜合評估及干預(yù)技術(shù)應(yīng)用規(guī)范
- 家庭法律顧問合同范本
- 備考2025年高考數(shù)學-名師導學-一輪總復(fù)習-參考答案
- 七年級上冊歷史考點清單(背誦版)
評論
0/150
提交評論