編譯基本知識教學(xué)規(guī)劃LR分析張小蒙_第1頁
編譯基本知識教學(xué)規(guī)劃LR分析張小蒙_第2頁
編譯基本知識教學(xué)規(guī)劃LR分析張小蒙_第3頁
編譯基本知識教學(xué)規(guī)劃LR分析張小蒙_第4頁
編譯基本知識教學(xué)規(guī)劃LR分析張小蒙_第5頁
已閱讀5頁,還剩31頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

_課程設(shè)計(jì)課程名稱 編譯技術(shù)課程設(shè)計(jì)根據(jù)LR分析表構(gòu)造LR分題目名稱析器專業(yè)班級2013級軟件工程張小蒙吳松琴李偉學(xué)生姓名孫萌程起楊偉平張紅偉學(xué)號_指導(dǎo)教師 鄒青青二○一六年五月二十八日蚌埠學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)系課程設(shè)計(jì)任務(wù)書課程班級2013級軟件工指導(dǎo)教師編譯技術(shù)課程設(shè)計(jì)鄒青青程完成時(shí)2016年5月23日至題目根據(jù)LR分析表構(gòu)造LR分析器間2015年6月17日1.LR方法的基本思想過程。2.LR分析器實(shí)質(zhì)上是一個(gè)帶先進(jìn)后出存儲器(棧)的確定有限狀態(tài)感謝閱讀自動機(jī)。主要 3.LR分析器的每一步工作是由棧頂狀態(tài)和現(xiàn)行輸入符號所唯一決定謝謝閱讀內(nèi)容的。4.為清晰說明LR分析器實(shí)現(xiàn)原理和模型:_1.封面2.課程設(shè)計(jì)任務(wù)書分工協(xié)作說明成績評定表5.課程設(shè)計(jì)報(bào)告設(shè)⑴系統(tǒng)總體方案報(bào)告⑵設(shè)計(jì)思路和主要步驟求各功能模塊和流程圖設(shè)計(jì)代碼心得體會和參考資料說明:學(xué)生完成課程設(shè)計(jì)后,提交軟件及課程設(shè)計(jì)電子和紙質(zhì)版,要求報(bào)告文字通暢、字跡工整,文字不少于3000字,并按要求裝訂成冊。精品文檔放心下載1.題目用黑體三號,段后距18磅(或1行),居中對齊;感謝閱讀2.標(biāo)題用黑體四號,段前、段后距6磅(或0.3行);感謝閱讀面要3.正文用小四號宋體,行距為1.25倍行距;4.標(biāo)題按“一”、“㈠”、“1”、“⑴”順序編號。星期一二三四五六日上周次機(jī)時(shí)第14周間安排至5-6節(jié)1-2節(jié)第17周_指導(dǎo)時(shí)上機(jī)時(shí)間,多媒體技術(shù)實(shí)驗(yàn)室(A503)間地點(diǎn)分工協(xié)作說明課題名稱根據(jù)LR分析表構(gòu)造LR分析器

學(xué)生姓名 學(xué)號 所做的工作張小蒙 總體架構(gòu),模塊指導(dǎo)吳松琴 總體設(shè)計(jì)方案,綜合文檔修改李偉 模塊測試孫萌 模塊測試程起 模塊測試張紅偉 模塊測試_楊偉平 資料整理、打印蚌埠學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)系課程設(shè)計(jì)成績評定表項(xiàng)目文獻(xiàn)閱讀與調(diào)查論證設(shè)計(jì)質(zhì)量論文撰寫質(zhì)量學(xué)習(xí)態(tài)度學(xué)術(shù)水平與創(chuàng)新總分

權(quán)重 分值 具體要求 得分能獨(dú)立查閱文獻(xiàn)和從事其它調(diào)研活動;有收集、加工0.20 100 各種信息的能力0.30100設(shè)計(jì)合理、功能齊備,程序運(yùn)行正常,實(shí)驗(yàn)數(shù)據(jù)準(zhǔn)確可靠;有較強(qiáng)的實(shí)際動手能力設(shè)計(jì)說明書完全符合規(guī)范化要求,用A4復(fù)印紙打印0.20100成文0.20學(xué)習(xí)態(tài)度認(rèn)真,科學(xué)作風(fēng)嚴(yán)謹(jǐn),嚴(yán)格按要求開展各項(xiàng)100工作,按期完成任務(wù)0.10 100 設(shè)計(jì)有創(chuàng)意,有一定的學(xué)術(shù)水平或?qū)嵱脙r(jià)值謝謝閱讀_評語:等級:指導(dǎo)教師:年月日_目錄1設(shè)計(jì)題目及內(nèi)容 11.1設(shè)計(jì)題目 11.2內(nèi)容 11.3設(shè)計(jì)環(huán)境 22設(shè)計(jì)的基本原理 32.1基本原理 32.2LR分析器工作過程算法描述 43程序設(shè)計(jì) 63.1總體設(shè)計(jì)方案 63.1.1建模 63.1.2程序設(shè)計(jì)關(guān)鍵注意環(huán)節(jié) 63.1.3LR分析器的組成 73.1.4分析器結(jié)構(gòu)圖 73.2各模塊設(shè)計(jì) 93.2.1棧設(shè)計(jì) 93.2.2LR分析器工作過程算法設(shè)計(jì) 93.3流程圖 104測試運(yùn)行 114.1測試一 114.2測試二 114.3測試三 12_5心得體會 146參考文獻(xiàn) 14附錄 15_1設(shè)計(jì)題目及內(nèi)容1.1設(shè)計(jì)題目根據(jù)LR分析表構(gòu)造LR分析器1.2內(nèi)容已知文法G:(1)E→E+TE→TT→T*FT→FF→(E)F→ILR分析表:狀態(tài)ACTION(動作)GOTO(轉(zhuǎn)換)I+*()#ETF0S5S41231S6Acc2R2S7R2R23R4R4R4R44S5S48235R6R6R6R66S5S4937S5S410_8S6S119R1S7R1R110R3R3R3R311R5R5R5R5注:sj表示把下一狀態(tài)j和現(xiàn)行輸入符號a移進(jìn)棧謝謝閱讀rj表示按第j個(gè)產(chǎn)生式進(jìn)行規(guī)約acc 表示接受空格表示出錯標(biāo)志,報(bào)錯根據(jù)以上文法和LR分析表,構(gòu)造LR分析器,并要求輸出LR工作過程。精品文檔放心下載1.3設(shè)計(jì)環(huán)境硬件設(shè)備:一臺PC機(jī)軟件設(shè)備:Windows2000/XPOS,VC++6.0實(shí)現(xiàn)語言:C語言感謝閱讀_2設(shè)計(jì)的基本原理2.1基本原理1.LR方法的基本思想在規(guī)范規(guī)約的過程中,一方面記住已移進(jìn)和規(guī)約出的整個(gè)符號串,即記住“歷史”,另一方面根據(jù)所用的產(chǎn)生式推測未來可能碰到的輸入符號,即對未來進(jìn)行“展望”。當(dāng)一串貌似句柄的符號串呈現(xiàn)于分析棧的頂端時(shí),我們希望能夠根據(jù)記載的“歷史”和“展望”以及“現(xiàn)實(shí)”的輸入符號等三個(gè)方面的材料,來確定棧頂?shù)姆柎欠駱?gòu)成相對某一產(chǎn)生式的句柄。謝謝閱讀2.LR分析器實(shí)質(zhì)上是一個(gè)帶先進(jìn)后出存儲器(棧)的確定有限狀態(tài)自動機(jī)。謝謝閱讀3.LR分析器的每一步工作是由棧頂狀態(tài)和現(xiàn)行輸入符號所唯一決定的。感謝閱讀4.為清晰說明LR分析器實(shí)現(xiàn)原理和模型:LR分析器的核心部分是一張分析表。這張分析表包括兩個(gè)部分,一是“動作”(ACTION)表,另一是“狀態(tài)轉(zhuǎn)換”(GOTO)表。他們都是二維數(shù)組。ACTION(s,a)規(guī)定了當(dāng)狀態(tài)s面臨輸入符號a時(shí)應(yīng)采取什么動作。GOTO(s,X)規(guī)定了狀態(tài)s面對文法符號X(終結(jié)符或非終結(jié)符)時(shí)下一狀態(tài)是什么。顯然,GOTO(s,X)定義了一個(gè)以文法符號為字母表的DFA。感謝閱讀每一項(xiàng)ACTION(s,a)所規(guī)定的動作不外是下述四種可能之一:精品文檔放心下載(1)移進(jìn):把(s,a)的下一個(gè)轉(zhuǎn)態(tài)s’=GOTO(s,X)和輸入符號a推進(jìn)棧,下一輸入符號變成現(xiàn)行輸入符號。感謝閱讀(2)規(guī)約:指用某一產(chǎn)生式A→β進(jìn)行規(guī)約。假若β的長度為r,規(guī)約的動作是A,去除棧頂?shù)膔個(gè)項(xiàng),使?fàn)顟B(tài)Sm-r變成棧頂狀態(tài),然后把(Sm-r,A)謝謝閱讀_的下一狀態(tài)s’=GOTO(Sm-r,A)和文法符號A推進(jìn)棧。規(guī)約動作不改變現(xiàn)行精品文檔放心下載輸入符號。執(zhí)行規(guī)約動作意味著β(=Xm-r+1…Xm)已呈現(xiàn)于棧頂而且是一個(gè)感謝閱讀相對于A的句柄。(3)接受:宣布分析成功,停止分析器的工作。(4)報(bào)錯:發(fā)現(xiàn)源程序含有錯誤,調(diào)用出錯處理程序。2.2LR分析器工作過程算法描述一個(gè)LR分析器的工作過程可看成是棧里的狀態(tài)序列,已規(guī)約串和輸入串所感謝閱讀構(gòu)成的三元式的變化過程。分析開始時(shí)的初始三元式為(s0, #, a1a2……an#)其中,s0為分析器的初態(tài);#為句子的左括號;a1a2……an為輸入串;其感謝閱讀后的#為結(jié)束符(句子右括號)。分析過程每步的結(jié)果可表示為謝謝閱讀(s0s1……sm,#X1X2……Xmai,ai+1……an#)精品文檔放心下載分析器的下一步動作是由棧頂狀態(tài)sm和現(xiàn)行輸入符號ai所唯一決定的。即,執(zhí)行ACTION(sm,ai)所規(guī)定的動作。經(jīng)執(zhí)行每種可能的動作之后,三元式的變化情形是:感謝閱讀⑴若ACTION(sm,ai)為移進(jìn),且s=GOTO(sm,ai),則三元式變成:精品文檔放心下載_(s0s1……sms,#X1X2……Xmai,ai+1……an#)謝謝閱讀⑵若ACTION(sm,ai)={A→β},則按照產(chǎn)生式A→β進(jìn)行規(guī)約。此時(shí)三元式變?yōu)楦兄x閱讀(s0s1……sms,#X1X2……XmA,aiai+1……an#)謝謝閱讀此處s=GOTO(Sm-r,A),r為β的長度,β=Xm-r+1……Xm。感謝閱讀⑶若ACTION(sm,ai)為“接受”,則三元式不再變化,變化過程終止,宣布分析成功。感謝閱讀⑷若ACTION(sm,ai)為“報(bào)錯”,則三元式的變化過程終止,報(bào)告錯誤。一個(gè)LR分析器的工作過程就是一步一步的變換三元式,直至執(zhí)行“接受”謝謝閱讀或“報(bào)錯”為止。_3程序設(shè)計(jì)3.1總體設(shè)計(jì)方案3.1.1建模(1)分析表建模:構(gòu)造一個(gè)int型二維數(shù)組table[13][9],用于存放LR分析表。并初始化。作謝謝閱讀者這樣規(guī)定:0~11表示狀態(tài)sj,其中0對應(yīng)s0,1對應(yīng)s1……21~26表示規(guī)約rj,其中21對應(yīng)r1,22對應(yīng)r2……12表示“接受”-1表示規(guī)約出錯,報(bào)錯(2)棧建模:建立一個(gè)int型狀態(tài)棧,該棧為順序棧。建立一個(gè)char型符號棧和一個(gè)char型輸入串棧,該棧為順序棧。感謝閱讀(3)規(guī)約表達(dá)式建模:建立一個(gè)rule型結(jié)構(gòu),成員變量為char型非終結(jié)符和int型表示規(guī)約第幾條表達(dá)式。精品文檔放心下載3.1.2程序設(shè)計(jì)關(guān)鍵注意環(huán)節(jié)在輸入串(句子)輸入的過程中,涉及到一個(gè)壓棧的問題。但是輸入串壓入的謝謝閱讀字符順序剛好與原理中的字符串模型剛好相反,這樣需要先彈出的反而在棧底。謝謝閱讀為了既要保證字符串輸入,又要讓輸入的字符串存儲順序與輸入的字符串相反。精品文檔放心下載_采取以下措施:⑴先將輸入的字符串壓入符號棧symbol中,然后符號棧彈出的字符再壓入輸入串棧instr中,這樣實(shí)現(xiàn)了輸入串的倒序存儲。精品文檔放心下載⑵狀態(tài)棧status_stack(status_p)和符號棧symbol_instr(symbol_p)輸出(遍歷)過程均采取自棧底到棧頂?shù)捻樞?,而輸入串棧symbol_instr(instr_p)則是采取自棧頂?shù)綏5椎捻樞蜉敵觥Vx謝閱讀3.1.3LR分析器的組成(1)總控程序,也可以稱為驅(qū)動程序。對所有的LR分析器總控程序都是相同謝謝閱讀的。(2)分析表或分析函數(shù),不同的文法分析表將不同,同一個(gè)文法采用的LR分感謝閱讀析器不同時(shí),分析表將不同,分析表又可以分為動作表(ACTION)和狀態(tài)轉(zhuǎn)換謝謝閱讀(GOTO)表兩個(gè)部分,它們都可用二維數(shù)組表示。(3)分析棧,包括文法符號棧和相應(yīng)的狀態(tài)棧,它們均是先進(jìn)后出棧。分析精品文檔放心下載器的動作就是由棧頂狀態(tài)和當(dāng)前輸入符號所決定。3.1.4分析器結(jié)構(gòu)圖(1)在總控程序的控制下,從左到右掃描輸入串根據(jù)分析棧和輸入符號的情精品文檔放心下載況,查分析表確定分析動作;分析表是LR分析器的核心,它跟文法有關(guān),它包括動作表(Action)和狀態(tài)轉(zhuǎn)換表(Goto)兩部分,總控程序據(jù)分析表確定分析動作;謝謝閱讀分析棧包括文法符號棧X[i]和相應(yīng)的狀態(tài)棧S[i]兩部分(狀態(tài)是指能識別活前綴的自動機(jī)狀態(tài)),LR分析器通過判斷棧頂元素和輸入符號查分析表確定下感謝閱讀_步分析動作。圖3-1分析器結(jié)構(gòu)圖_3.2各模塊設(shè)計(jì)3.2.1棧設(shè)計(jì)構(gòu)造一個(gè)int型“狀態(tài)?!眘tatus和一個(gè)char型“符號-輸入串?!备兄x閱讀symbol_instr。該棧包括初始化該棧init_status(),壓棧push(),彈棧pop(),取棧頂元素get_top(),自棧底到棧頂遍歷元素out_stack1()和自棧頂?shù)綏5妆闅v元素謝謝閱讀out_stack2()。3.2.2LR分析器工作過程算法設(shè)計(jì)⑴構(gòu)造一個(gè)狀態(tài)轉(zhuǎn)換函數(shù)實(shí)現(xiàn)狀態(tài)轉(zhuǎn)換intgoto_char(status*status_p,symbol_instr*instr_p)謝謝閱讀⑵構(gòu)造一個(gè)移進(jìn)--規(guī)約函數(shù)實(shí)現(xiàn)移進(jìn)規(guī)約動作voidaction(status *status_p,symbol_instr *symbol_p,symbol_instr謝謝閱讀*instr_p)⑶構(gòu)造一個(gè)打印LR分析器的工作過程函數(shù)實(shí)現(xiàn)輸出void print(status *status_p,symbol_instr *symbol_p,symbol_instr謝謝閱讀*instr_p)_3.3流程圖圖3-2LR分析器設(shè)計(jì)流程圖_4測試運(yùn)行4.1測試一輸入表達(dá)式i*i+i并且個(gè)符號之間不能有空格,以‘#’字符結(jié)束,結(jié)果如下:謝謝閱讀圖4-1測試圖一4.2測試二輸入表達(dá)式i+i*i并且個(gè)符號之間不能有空格,以‘#’字符結(jié)束,結(jié)果如下精品文檔放心下載_圖4-2測試圖二4.3測試三輸入表達(dá)式i+(i+i)*i+i*i并且個(gè)符號之間不能有空格,以‘#’字符結(jié)束,測試精品文檔放心下載結(jié)果如下:_圖4-3測試圖三_5心得體會經(jīng)過這個(gè)實(shí)驗(yàn)的練習(xí),通過對程序的分析,讓我進(jìn)一步了解LR算法的思想以及它的進(jìn)一步程序?qū)崿F(xiàn),讓我對它的了解從簡單的理論上升到程序?qū)崿F(xiàn)的級別,有理論上升到實(shí)際,讓我更清楚它的用途。精品文檔放心下載在對實(shí)驗(yàn)的分析的時(shí)候,也遇到很多的問題,剛開始根本想不到用程序怎么實(shí)現(xiàn)這么繁雜的LR文法,后來看了程序才知道,才轉(zhuǎn)過來彎,通過對這個(gè)程序的分析與揣摩,讓自己對這方面文法的實(shí)現(xiàn)有了一定的頭緒,對以后的的一些文法的程序?qū)崿F(xiàn)會有很大的幫助,通過練習(xí)我也感到理論僅留在理論是遠(yuǎn)遠(yuǎn)不行的,用通過一定方式實(shí)現(xiàn)才有實(shí)用價(jià)值。精品文檔放心下載通過本次課程設(shè)計(jì),我加深了對預(yù)測分析LR分析法的理解,同時(shí)體驗(yàn)到了編譯原理中一些算法的巧妙。由于LR分析法程序是一個(gè)相當(dāng)復(fù)雜的程序,它需要利用到大量的編譯原理,編程技巧和數(shù)據(jù)結(jié)構(gòu)。由于先前掌握的知識不夠牢固深刻使之在實(shí)驗(yàn)過程中出現(xiàn)了大量的問題。由于課前的充分準(zhǔn)備,加上同學(xué)和老師的幫助,最后順利完成了實(shí)驗(yàn)。感謝閱讀編譯原理的在整個(gè)計(jì)算機(jī)體系課程中有著重要的地位,我現(xiàn)在才剛剛?cè)腴T,所以,我會在以后的課程和實(shí)驗(yàn)中繼續(xù)努力,學(xué)好編譯原理課程,為以后的學(xué)習(xí)打下基礎(chǔ)。感謝閱讀6參考文獻(xiàn)[1]張素琴.呂映芝等.編譯原理[M].清華大學(xué)出版.2004年謝謝閱讀_[2]王宏.李玉東.李罡.VisualC++實(shí)戰(zhàn)演練[M].人民郵電出版.2003年3月感謝閱讀[3]胡元義等.編譯原理實(shí)踐教程[M].西安電子科技大學(xué)出版社.2005年7月感謝閱讀胡倫駿.編譯原理[M].電子工業(yè)出版社,2002感謝閱讀高仲儀.編譯原理及編譯程序構(gòu)造>.[M].北京航空航天大學(xué)出版社.1990[6]陳火旺,劉春林,譚慶平,趙克佳,劉越.程序設(shè)計(jì)語言編譯原理(第三版)。北京,國防工業(yè)出版社,2000:44-46,221-236[7]薛聯(lián)鳳.秦振松.編譯原理及編譯程序構(gòu)造(第2版).東南大學(xué)出版社精品文檔放心下載附錄程序源代碼一:頭文件lr.h//LR分析表#include<stdio.h>#include<stdlib.h>//0--11表示狀態(tài)結(jié)點(diǎn),21--26表示規(guī)約標(biāo)號,//-1表示error(出錯),12表示acc(接受)inttable[13][9]={{5,-1,-1,4,-1,-1,1,2,3},\感謝閱讀{-1,6,-1,-1,-1,12,-1,-1,-1},\感謝閱讀{-1,22,7,-1,22,22,-1,-1,-1},\精品文檔放心下載{-1,24,24,-1,24,24,-1,-1,-1},\謝謝閱讀_{5,-1,-1,4,-1,-1,8,2,3},\感謝閱讀{-1,26,26,-1,26,26,-1,-1,-1},\精品文檔放心下載{5,-1,-1,4,-1,-1,-1,9,3},\感謝閱讀{5,-1,-1,4,-1,-1,-1,-1,10},\謝謝閱讀{-1,6,-1,-1,11,-1,-1,-1,-1},\精品文檔放心下載{-1,21,7,-1,21,21,-1,-1,-1},\感謝閱讀{-1,23,23,-1,23,23,-1,-1,-1},\謝謝閱讀{-1,25,25,-1,25,25,-1,-1,-1}};謝謝閱讀//規(guī)約規(guī)則structrule{charx;int y;}r[6]={{'E',3},{'E',1},{'T',3},{'T',1},{'F',3},{'F',1}};感謝閱讀//輸入字符charindex_char[9]={'i','+','*','(',')','#','E','T','F'};////獲取index_char[9]中元素的位置intget_index_char(chari)感謝閱讀{for(intj=0;j<9;j++){if(index_char[j]==i)returnj;_}return-1;}二:頭文件status_stack.h#include<stdio.h>#include<stdlib.h>#defineMAX20typedefstruct{int stack[MAX];inttop;}status;//初始化棧voidinit_stack(status*p)精品文檔放心下載{if(!p)printf("\n初始化狀態(tài)棧出錯!\n");p->top=-1;}_//壓棧voidpush(status*p,intx)精品文檔放心下載{if(p->top<MAX-1){p->top++;p->stack[p->top]=x;}elseprintf("\n狀態(tài)棧溢出!\n");感謝閱讀}//彈棧intpop(status*p){intx;if(p->top!=0){x=p->stack[p->top];p->top--;returnx;}else{_printf("\n狀態(tài)棧1空!\n");return0;}}//取棧頂元素intget_top(status*p){intx;if(p->top!=-1){x=p->stack[p->top];returnx;}else{printf("\n狀態(tài)棧2空!\n");return0;}}//遍歷棧元素voidout_stack(status*p){_inti;if(p->top<0)printf("\n狀態(tài)棧3空!\n");for(i=0;i<=p->top;i++){printf("%d",p->stack[i]);}}三:頭文件symbol_instr_stack..h感謝閱讀#include<stdio.h>#include<stdlib.h>#defineMAX20typedefstruct{charstack[MAX];inttop;}symbol_instr;//初始化棧voidinit_stack(symbol_instr*p)精品文檔放心下載{if(!p)printf("\n初始化符號棧出錯!\n");_p->top=-1;}//壓棧voidpush(symbol_instr*p,charx)精品文檔放心下載{if(p->top<MAX-1){p->top++;p->stack[p->top]=x;}elseprintf("\n符號棧溢出!\n");謝謝閱讀}//彈棧charpop(symbol_instr*p){charx;if(p->top!=-1){x=p->stack[p->top];p->top--;returnx;}_else{printf("\n符號棧1空!\n");return0;}}//取棧頂元素charget_top(symbol_instr*p)感謝閱讀{charx;if(p->top!=-1){x=p->stack[p->top];returnx;}else{printf("\n符號棧2空!\n");return0;}}//自棧底到棧頂遍歷棧元素_voidout_stack1(symbol_instr*p)謝謝閱讀{inti;if(p->top<0)printf("\n符號棧3空!\n");for(i=0;i<=p->top;i++){printf("%c",p->stack[i]);}}//自棧頂?shù)綏5妆闅v棧元素voidout_stack2(symbol_instr*p)謝謝閱讀{inti;if(p->top<0)printf("\n符號棧4空!\n");for(i=p->top;i>=0;i--){printf("%c",p->stack[i]);}}_四:主程序:#include"status_stack.h"#include"symbol_instr_stack.h"精品文檔放心下載#include"lr.h"http://打印LR分析器的工作過程voidprint(status*status_p,symbol_instr*symbol_p,symbol_instr*instr_p)感謝閱讀{inti;out_stack(status_p);for(i=0;i<20-status_p->top;i++)精品文檔放心下載printf("");out_stack1(symbol_p);for(i=0;i<20;i++)printf("");out_stack2(instr_p);printf("\n");}//狀態(tài)轉(zhuǎn)換函數(shù)intgoto_char(status*status_p,symbol_instr*instr_p)精品文檔放心下載{charx;_int y,z;x=get_top(instr_p);y=get_top(status_p);z=get_index_char(x);returntable[y][z];}//移進(jìn)--規(guī)約函數(shù)voidaction(status*status_p,symbol_instr*symbol_p,symbol_instr*instr_p)感謝閱讀{inti,j,x;chara;i=goto_char(status_p,instr_p);精品文檔放心下載//規(guī)約出錯if(i==-1)printf("\n=============== 規(guī) 約 出精品文檔放心下載錯!================\n");//規(guī)約成功if(i==12)printf("\n=============== 規(guī) 約 成謝謝閱讀功!================\n");//移進(jìn)動作_if(i>=0&&i<=11){push(status_p,i);a=pop(instr_p);push(symbol_p,a);print(status

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論