版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、snl編譯器程序設(shè)計(jì)文檔項(xiàng)目組長:陳 亮 (軟件學(xué)院06級(jí) 1291406006)項(xiàng)目組員:湯 源 (軟件學(xué)院06級(jí) 1291406) 呂 浩 (軟件學(xué)院06級(jí) 1291406)李春娟 (軟件學(xué)院06級(jí) 1291406)黨雪迎 (軟件學(xué)院06級(jí) 1291406)開發(fā)日期:2009年5月1日2009年6月21日第一章 引言31.1 編寫目的31.2背景31.3參考資料3第二章 項(xiàng)目概述42.1 工作內(nèi)容42.2主要參加人員42.3產(chǎn)品42.3.1程序42.3.2文件42.4 驗(yàn)收標(biāo)準(zhǔn)52.5 完成項(xiàng)目最遲期限5第三章 實(shí)施計(jì)劃53.1 接口人員53.2 工作任務(wù)的分解、人物分工及進(jìn)度63.3 關(guān)
2、鍵問題6第四章 程序系統(tǒng)的結(jié)構(gòu)74.1 用例圖設(shè)計(jì)74.2 類圖設(shè)計(jì)84.3 包圖設(shè)計(jì)94.4 構(gòu)件圖設(shè)計(jì)94.5 活動(dòng)圖設(shè)計(jì)104.6 順序圖設(shè)計(jì)104.7 狀態(tài)圖設(shè)計(jì)114.8合作圖設(shè)計(jì)11第五章 程序設(shè)計(jì)說明115.1 程序描述115.2 功能125.3 運(yùn)行環(huán)境125.4 類及函數(shù)說明12第六章 程序測試說明21第七章 程序開發(fā)總結(jié)22第一章 引言1.1 編寫目的該文檔的閱讀群體是該項(xiàng)目組的全部成員,一方面讓所有成員能理解本程序的系統(tǒng)結(jié)構(gòu),另一方面明確自己的分工,方便在編程的過程中合理運(yùn)用。1.2背景項(xiàng)目名稱: snl編譯器項(xiàng)目類型: java小程序任務(wù)提出者:陳亮開發(fā)者: 陳亮 湯源
3、 呂浩 李春娟 黨雪迎用戶: 對snl語言編譯感興趣者項(xiàng)目思路來源:隨著社會(huì)的發(fā)展,編譯器的開發(fā)程序?qū)映霾桓F,如何讓同學(xué)能更好的了解編譯器的工作過程呢?于是就產(chǎn)生了用java語言編寫一個(gè)snl編譯器,可以讓同學(xué)們更好的理解編譯這門學(xué)科的內(nèi)容,運(yùn)用所學(xué)知識(shí)了解編譯的過程,使所學(xué)的知識(shí)得到運(yùn)用。1.3參考資料uml及建模北京 清華大學(xué)出版社 北京交通大學(xué)出版社郭寧 面向?qū)ο蠹夹g(shù)與工具 北京 電子工業(yè)出版社陳文宇 白忠建 白忠建編譯程序的設(shè)計(jì)與實(shí)現(xiàn)北京 高等教育出版社劉磊 等網(wǎng)絡(luò)資源:第二章 項(xiàng)目概述2.1 工作內(nèi)容任務(wù)名稱具體內(nèi)容需求分析調(diào)研報(bào)告設(shè)計(jì),調(diào)研總結(jié),需求分析文檔書寫面向?qū)ο笤O(shè)計(jì)面向?qū)ο?/p>
4、的用例圖、類圖等設(shè)計(jì)程序設(shè)計(jì)程序?qū)崿F(xiàn)功能函數(shù)的設(shè)計(jì)程序具體實(shí)現(xiàn)類的實(shí)現(xiàn),功能函數(shù)的實(shí)現(xiàn)程序測試程序整體測試,用戶測試,測試文檔書寫2.2主要參加人員項(xiàng)目組組長:陳亮備注:一直擔(dān)任期末大作業(yè)的項(xiàng)目組組長,且具有一定開發(fā)經(jīng)驗(yàn)。項(xiàng)目組成員:湯源 呂浩 李春娟 黨雪迎備注: 湯源、呂浩 :成績優(yōu)異,具有開發(fā)經(jīng)驗(yàn)。 李春娟、黨雪迎:參加過面向?qū)ο缶W(wǎng)站架構(gòu)的培訓(xùn),初步學(xué)習(xí)structs架構(gòu)的相關(guān)知識(shí)。2.3產(chǎn)品2.3.1程序程序名稱:snl編譯器編程語言:java存儲(chǔ)程序的媒體形式:硬盤存儲(chǔ)2.3.2文件文件夾名:snljava mycompiler說明:compiler.java 主程序cifa中包含詞
5、法分析的creattoken.javayufa中包含語法分析的recursion.java備注:單擊test.html即可運(yùn)行本程序。2.4 驗(yàn)收標(biāo)準(zhǔn)根據(jù)上課教師對于期末大作業(yè)的要求,本項(xiàng)目做到了如下幾點(diǎn):1. 面向?qū)ο蟮脑O(shè)計(jì)思想,實(shí)現(xiàn)了詞法分析的token生成、語法分析的語法樹生成和錯(cuò)誤的檢測。2. 項(xiàng)目組成員分工明確。2.5 完成項(xiàng)目最遲期限本項(xiàng)目的最后完成期限是2009年6月21日第三章 實(shí)施計(jì)劃3.1 接口人員本項(xiàng)目的接口人員為項(xiàng)目組組長陳亮,其主要工作只職能如下:負(fù)責(zé)確定項(xiàng)目需求。負(fù)責(zé)與鄭曉娟老師交流,定期匯報(bào)項(xiàng)目的進(jìn)展程度。負(fù)責(zé)與項(xiàng)目組其他成員聯(lián)系,分配任務(wù),協(xié)調(diào)各部門的工作。3.
6、2 工作任務(wù)的分解、人物分工及進(jìn)度3.3 關(guān)鍵問題影響整個(gè)項(xiàng)目成敗的關(guān)鍵問題及對項(xiàng)目的影響:面向?qū)ο蟮乃枷胫匦略O(shè)計(jì)程序。影響:以前對于程序設(shè)計(jì)的思想還都停留在面向過程的思想,產(chǎn)生的問題是代碼冗余,安全性欠缺的隱患。于是我們在原來項(xiàng)目的基礎(chǔ)上進(jìn)行重構(gòu),用面向?qū)ο蟮乃枷胫貙ひ?guī)劃。對于編譯程序的實(shí)現(xiàn)原理還需重新鞏固學(xué)習(xí)。技術(shù)難點(diǎn):接口的設(shè)計(jì)。token的產(chǎn)生。語法樹的生成風(fēng)險(xiǎn):由于程序開發(fā)周期短,程序員本身開發(fā)經(jīng)驗(yàn)尚淺,只能完成貶義詞的詞法分析和語法分析部分。第四章 程序系統(tǒng)的結(jié)構(gòu)4.1 用例圖設(shè)計(jì)4.2 類圖設(shè)計(jì)4.3 包圖設(shè)計(jì)4.4 構(gòu)件圖設(shè)計(jì)4.5 活動(dòng)圖設(shè)計(jì)4.6 順序圖設(shè)計(jì)4.7 狀態(tài)圖設(shè)
7、計(jì)4.8合作圖設(shè)計(jì)第五章 程序設(shè)計(jì)說明5.1 程序描述snl編譯器把snl源程序編譯成虛擬目標(biāo)機(jī)上的目標(biāo)程序(現(xiàn)階段只完成了詞法分析和語法分析階段),然后再由解釋程序?qū)υ撃繕?biāo)程序進(jìn)行解釋執(zhí)行,才能得到最終的運(yùn)行結(jié)果。5.2 功能功能結(jié)構(gòu)框圖(藍(lán)色為已完成部分,紅色為未完成部分):詞法分析程序:詞法分析是編譯過程的第一階段。它的任務(wù)是對輸入的字符串形式的源程序按順序進(jìn)行掃描,根據(jù)snl語言的語法規(guī)則識(shí)別具有獨(dú)立意義的單詞(符號(hào)),并輸出與其等價(jià)的token序列。語法分析程序: 語法分析是編譯程序的第二階段,也是編譯程序的核心部分。它的任務(wù)是,根據(jù)snl語言的語法規(guī)則,對源程序進(jìn)行語法檢查,并識(shí)別
8、出相應(yīng)的語法成分。按照snl編譯程序的模型,語法分析的輸入時(shí)從詞法分析器輸出的源程序的token序列的形式,然后根據(jù)語言的文法規(guī)則進(jìn)行分析處理,輸出無語法錯(cuò)誤的語法成分,表示成語法樹的形式。5.3 運(yùn)行環(huán)境硬件: 個(gè)人電腦1臺(tái)。操作系統(tǒng)類型:windows xp os。應(yīng)用軟件: myeclipse,jdk1.6,ie瀏覽器等主要適合中小型java程序開發(fā)的軟件。5.4 類及函數(shù)說明一 compiler.javapiler 主函數(shù)init()結(jié)構(gòu)布局actionperformed()接收操作事件的接口2.mywindow 窗體類二 creattoken.java1.tokentype 定義to
9、ken類型2.chainnodetype 定義指針3.creattoken 總程序處理函數(shù)名 creattoken(string s) 功 能 構(gòu)造函數(shù)函數(shù)名 gettokenlist功 能 取得token序列函數(shù)說 明 函數(shù)從源文件字符串序列中獲取所有token序列,使用確定性有限自動(dòng)機(jī)dfa,采用直接轉(zhuǎn)向法超前讀字符,對保留字采用查表方式識(shí)別產(chǎn)生詞法錯(cuò)誤時(shí)候,僅僅略過產(chǎn)生錯(cuò)誤的字符,不加改正函數(shù)名 getnextchar功 能 取得下一非空字符函數(shù)說 明 讀取一個(gè)字節(jié)的數(shù)據(jù),到達(dá)文件尾時(shí),eof為true函數(shù)名 ungetnextchar功 能 字符回退函數(shù)說 明 回退一個(gè)字節(jié)的數(shù)據(jù)函數(shù)名
10、 isdigit功 能 檢查參數(shù)c是不是數(shù)字函數(shù)名 isalpha功 能 檢查參數(shù)c是不是字母函數(shù)名 reservedlookup功 能 保留字查找函數(shù)說 明 使用線性查找,查看一個(gè)標(biāo)識(shí)符是否是保留字標(biāo)識(shí)符,如果在保留字表中則返回相應(yīng)單詞,否則返回單詞id 函數(shù)名 copy功 能 將b中的信息拷貝到a.token中。函數(shù)名 returntokenlist功 能 將token序列輸出,顯示在文件中。說 明 用于顯示詞法分析結(jié)果 三 recursion.javatreenode 語法樹結(jié)點(diǎn)的定義attr 記錄語法樹節(jié)點(diǎn)其他屬性arrayattr 記錄數(shù)組類型的屬性procattr 記錄過程的屬性e
11、xpattr 記錄表達(dá)式的屬性tokentype token序列的定義recursion 總程序的處理 函數(shù)名 program功 能 總程序的處理函數(shù)產(chǎn)生式 < program > := programhead declarepart programbody .說 明 函數(shù)根據(jù)文法產(chǎn)生式,調(diào)用相應(yīng)的遞歸處理函數(shù),生成語法樹節(jié)點(diǎn),語法樹的根節(jié)點(diǎn)的第一個(gè)子節(jié)點(diǎn)指向程序頭部分programhead,declarapart為programhead的兄弟節(jié)點(diǎn),程序體部分programbody為declarepart的兄弟節(jié)點(diǎn).函數(shù)頭部分函數(shù)名 programhead 功 能 程序頭的處理函數(shù)
12、產(chǎn)生式 < programhead > := program programname 說 明 函數(shù)根據(jù)文法產(chǎn)生式,調(diào)用相應(yīng)的遞歸處理函數(shù),生成語法樹節(jié)點(diǎn) 聲明部分函數(shù)名 declarepart功 能 聲明部分的處理產(chǎn)生式 < declarepart > := typedec vardec procdec說 明 函數(shù)根據(jù)文法產(chǎn)生式,調(diào)用相應(yīng)的遞歸處理函數(shù),生成語法樹節(jié)點(diǎn)類型聲明部分函數(shù)名 typedec功 能 類型聲明部分的處理產(chǎn)生式 < typedec > := | typedeclaration說 明 根據(jù)文法產(chǎn)生式,調(diào)用相應(yīng)的遞歸處理函數(shù),生成語法樹節(jié)點(diǎn)
13、函數(shù)名 typedeclaration功 能 類型聲明部分的處理函數(shù)產(chǎn)生式 < typedeclaration > := type typedeclist說 明 函數(shù)根據(jù)文法產(chǎn)生式,調(diào)用相應(yīng)的遞歸處理函數(shù),生成語法樹節(jié)點(diǎn) */函數(shù)名 typedeclist功 能 類型聲明部分的處理函數(shù)產(chǎn)生式 < typedeclist > := typeid = typename ; typedecmore說 明 函數(shù)根據(jù)文法產(chǎn)生式,調(diào)用相應(yīng)的遞歸處理函數(shù),生成語法樹節(jié)點(diǎn)函數(shù)名 typedecmore功 能 類型聲明部分的處理函數(shù)產(chǎn)生式 < typedecmore > :=
14、 | typedeclist說 明 函數(shù)根據(jù)文法產(chǎn)生式,調(diào)用相應(yīng)的遞歸處理函數(shù),生成語法樹節(jié)點(diǎn)函數(shù)名 typeid功 能 類型聲明部分的處理函數(shù)產(chǎn)生式 < typeid > := id說 明 函數(shù)根據(jù)文法產(chǎn)生式,調(diào)用相應(yīng)的遞歸處理函數(shù),生成語法樹節(jié)點(diǎn)函數(shù)名 typename功 能 類型聲明部分的處理產(chǎn)生式 < typename > := basetype | structuretype | id說 明 函數(shù)根據(jù)文法產(chǎn)生式,調(diào)用相應(yīng)的遞歸處理函數(shù),生成語法樹節(jié)點(diǎn)函數(shù)名 basetype功 能 類型聲明部分的處理函數(shù)產(chǎn)生式 < basetype > := int
15、eger | char 說 明 函數(shù)根據(jù)文法產(chǎn)生式,調(diào)用相應(yīng)的遞歸處理函數(shù),生成語法樹節(jié)點(diǎn)函數(shù)名 structuretype功 能 類型聲明部分的處理函數(shù)產(chǎn)生式 < structuretype > := arraytype | rectype說 明 函數(shù)根據(jù)文法產(chǎn)生式,調(diào)用相應(yīng)的遞歸處理函數(shù),生成語法樹節(jié)點(diǎn)函數(shù)名 arraytype功 能 類型聲明部分的處理函數(shù)產(chǎn)生式 < arraytype > := array low.top of basetype說 明 函數(shù)根據(jù)文法產(chǎn)生式,調(diào)用相應(yīng)的遞歸處理函數(shù),生成語法樹節(jié)點(diǎn)函數(shù)名 rectype功 能 類型聲明部分的處理函數(shù)產(chǎn)
16、生式 < rectype > := record fielddeclist end說 明 函數(shù)根據(jù)文法產(chǎn)生式,調(diào)用相應(yīng)的遞歸處理函數(shù),生成語法樹節(jié)點(diǎn)函數(shù)名 fielddeclist */功 能 類型聲明部分的處理函數(shù) */產(chǎn)生式 < fielddeclist > := basetype idlist ; fielddecmore | arraytype idlist; fielddecmore 說 明 函數(shù)根據(jù)文法產(chǎn)生式,調(diào)用相應(yīng)的遞歸處理函數(shù),生成語法樹節(jié)點(diǎn) 函數(shù)名 fielddecmore功 能 類型聲明部分的處理函數(shù)產(chǎn)生式 < fielddecmore &g
17、t; := | fielddeclist 說 明 函數(shù)根據(jù)文法產(chǎn)生式,調(diào)用相應(yīng)的遞歸處理函數(shù),生成語法樹節(jié)點(diǎn)函數(shù)名 idlist功 能 類型聲明部分的處理函數(shù)產(chǎn)生式 < idlist > := id idmore 說 明 函數(shù)根據(jù)文法產(chǎn)生式,調(diào)用相應(yīng)的遞歸處理函數(shù),生成語法樹節(jié)點(diǎn)函數(shù)名 idmore 功 能 類型聲明部分的處理函數(shù)產(chǎn)生式 < idmore > := | , idlist 說 明 函數(shù)根據(jù)文法產(chǎn)生式,調(diào)用相應(yīng)的遞歸處理函數(shù),生成語法樹節(jié)點(diǎn)變量聲明部分函數(shù)名 vardec功 能 變量聲明部分的處理產(chǎn)生式 < vardec > := | varde
18、claration 說 明 函數(shù)根據(jù)文法產(chǎn)生式,調(diào)用相應(yīng)的遞歸處理函數(shù),生成語法樹節(jié)點(diǎn)函數(shù)名 vardeclaration功 能 變量聲明部分的處理函數(shù)產(chǎn)生式 < vardeclaration > := var vardeclist 說 明 函數(shù)根據(jù)文法產(chǎn)生式,調(diào)用相應(yīng)的遞歸處理函數(shù),生成語法樹節(jié)點(diǎn)函數(shù)名 vardeclist功 能 變量聲明部分的處理函數(shù)產(chǎn)生式 < vardeclist > := typename varidlist; vardecmore 說 明 函數(shù)根據(jù)文法產(chǎn)生式,調(diào)用相應(yīng)的遞歸處理函數(shù),生成語法樹節(jié)點(diǎn)函數(shù)名 vardecmore功 能 變量聲明部
19、分的處理函數(shù)產(chǎn)生式 < vardecmore > := | vardeclist 說 明 函數(shù)根據(jù)文法產(chǎn)生式,調(diào)用相應(yīng)的遞歸處理函數(shù),生成語法樹節(jié)點(diǎn)函數(shù)名 varidlist功 能 變量聲明部分的處理函數(shù)產(chǎn)生式 < varidlist > := id varidmore 說 明 函數(shù)根據(jù)文法產(chǎn)生式,調(diào)用相應(yīng)的遞歸處理函數(shù),生成語法樹節(jié)點(diǎn)函數(shù)名 varidmore功 能 變量聲明部分的處理函數(shù)產(chǎn)生式 < varidmore > := | , varidlist 說 明 函數(shù)根據(jù)文法產(chǎn)生式,調(diào)用相應(yīng)的遞歸處理函數(shù),生成語法樹節(jié)點(diǎn)過程聲明部分函數(shù)名 procdec
20、功 能 函數(shù)聲明部分的處理產(chǎn)生式 < procdec > := | procdeclaration 說 明 函數(shù)根據(jù)文法產(chǎn)生式,調(diào)用相應(yīng)的遞歸處理函數(shù),生成語法樹節(jié)點(diǎn)/函數(shù)名 procdeclaration功 能 函數(shù)聲明部分的處理函數(shù)產(chǎn)生式 < procdeclaration > := procedure procname(paramlist); procdecpart procbody procdecmore說 明 函數(shù)根據(jù)文法產(chǎn)生式,調(diào)用相應(yīng)的遞歸處理函數(shù),生成語法樹節(jié)點(diǎn)函數(shù)名 procdecmore功 能 更多函數(shù)聲明中處理函數(shù)產(chǎn)生式 < procdecm
21、ore > := | procdeclaration 說 明 函數(shù)根據(jù)文法產(chǎn)生式,調(diào)用相應(yīng)的遞歸處理函數(shù),生成語法樹節(jié)點(diǎn)函數(shù)名 paramlist功 能 函數(shù)聲明中參數(shù)聲明部分的處理函數(shù)產(chǎn)生式 < paramlist > := | paramdeclist 說 明 函數(shù)根據(jù)文法產(chǎn)生式,調(diào)用相應(yīng)的遞歸處理函數(shù),生成語法樹節(jié)點(diǎn)函數(shù)名 paramdeclist功 能 函數(shù)聲明中參數(shù)聲明部分的處理函數(shù)/產(chǎn)生式 < paramdeclist > := param parammore 說 明 函數(shù)根據(jù)文法產(chǎn)生式,調(diào)用相應(yīng)的遞歸處理函數(shù),生成語法樹節(jié)點(diǎn)函數(shù)名 parammore
22、功 能 函數(shù)聲明中參數(shù)聲明部分的處理函數(shù)產(chǎn)生式 < parammore > := | ; paramdeclist 說 明 函數(shù)根據(jù)文法產(chǎn)生式,調(diào)用相應(yīng)的遞歸處理函數(shù),生成語法樹節(jié)點(diǎn)函數(shù)名 param功 能 函數(shù)聲明中參數(shù)聲明部分的處理函數(shù)產(chǎn)生式 < param > := typename formlist | var typename formlis 說 明 函數(shù)根據(jù)文法產(chǎn)生式,調(diào)用相應(yīng)的遞歸處理函數(shù),生成語法樹節(jié)點(diǎn)函數(shù)名 formlist功 能 函數(shù)聲明中參數(shù)聲明部分的處理函數(shù)產(chǎn)生式 < formlist > := id fidmore 說 明 函數(shù)根據(jù)
23、文法產(chǎn)生式,調(diào)用相應(yīng)的遞歸處理函數(shù),生成語法樹節(jié)點(diǎn)函數(shù)名 fidmore功 能 函數(shù)聲明中參數(shù)聲明部分的處理函數(shù)產(chǎn)生式 < fidmore > := | , formlist 說 明 函數(shù)根據(jù)文法產(chǎn)生式,調(diào)用相應(yīng)的遞歸處理函數(shù),生成語法樹節(jié)點(diǎn)函數(shù)名 procdecpart功 能 函數(shù)中的聲明部分的處理函數(shù)產(chǎn)生式 < procdecpart > := declarepart 說 明 函數(shù)根據(jù)文法產(chǎn)生式,調(diào)用相應(yīng)的遞歸處理函數(shù),生成語法樹節(jié)點(diǎn)函數(shù)名 procbody功 能 函數(shù)體部分的處理函數(shù)產(chǎn)生式 < procbody > := programbody 說 明
24、 函數(shù)根據(jù)文法產(chǎn)生式,調(diào)用相應(yīng)的遞歸處理函數(shù),生成語法樹節(jié)點(diǎn)函數(shù)體部分函數(shù)名 programbody功 能 程序體部分的處理/產(chǎn)生式 < programbody > := begin stmlist end 說 明 函數(shù)根據(jù)文法產(chǎn)生式,調(diào)用相應(yīng)的遞歸處理函數(shù),生成語法樹節(jié)點(diǎn)函數(shù)名 stmlist功 能 語句部分的處理函數(shù)產(chǎn)生式 < stmlist > := stm stmmore 說 明 函數(shù)根據(jù)文法產(chǎn)生式,調(diào)用相應(yīng)的遞歸處理函數(shù),生成語法樹節(jié)點(diǎn)函數(shù)名 stmmore功 能 語句部分的處理函數(shù)產(chǎn)生式 < stmmore > := | ; stmlist 說
25、明 函數(shù)根據(jù)文法產(chǎn)生式,調(diào)用相應(yīng)的遞歸處理函數(shù),生成語法樹函數(shù)名 stm功 能 語句部分的處理函數(shù)產(chǎn)生式 < stm > := conditionalstm if | loopstm while | inputstm read | outputstm write | returnstm return | id asscall id 說 明 函數(shù)根據(jù)文法產(chǎn)生式,調(diào)用相應(yīng)的遞歸處理函數(shù),生成語法樹節(jié)點(diǎn)函數(shù)名 asscall功 能 語句部分的處理函數(shù)產(chǎn)生式 < asscall > := assignmentrest :=,lmidparen,dot | callstmrest
26、 ( 說 明 函數(shù)根據(jù)文法產(chǎn)生式,調(diào)用相應(yīng)的遞歸處理函數(shù),生成語法樹節(jié)點(diǎn)函數(shù)名 assignmentrest功 能 賦值語句部分的處理函數(shù)產(chǎn)生式 < assignmentrest > := varimore : = exp 說 明 函數(shù)根據(jù)文法產(chǎn)生式,調(diào)用相應(yīng)的遞歸處理函數(shù),生成語法樹節(jié)點(diǎn)函數(shù)名 conditionalstm功 能 條件語句部分的處理函數(shù)產(chǎn)生式 <conditionalstm>:=if relexp then stmlist else stmlist fi 說 明 函數(shù)根據(jù)文法產(chǎn)生式,調(diào)用相應(yīng)的遞歸處理函數(shù),生成語法樹節(jié)點(diǎn)函數(shù)名 loopstm功 能 循
27、環(huán)語句部分的處理函數(shù)產(chǎn)生式 < loopstm > := while relexp do stmlist endwh說 明 函數(shù)根據(jù)文法產(chǎn)生式,調(diào)用相應(yīng)的遞歸處理函數(shù),生成語法樹節(jié)點(diǎn)函數(shù)名 inputstm功 能 輸入語句部分的處理函數(shù)產(chǎn)生式 < inputstm > := read(id)說 明 函數(shù)根據(jù)文法產(chǎn)生式,調(diào)用相應(yīng)的遞歸處理函數(shù),生成語法樹節(jié)點(diǎn)函數(shù)名 outputstm功 能 輸出語句部分的處理函數(shù)產(chǎn)生式 < outputstm > := write(exp說 明 函數(shù)根據(jù)文法產(chǎn)生式,調(diào)用相應(yīng)的遞歸處理函數(shù),生成語法樹節(jié)點(diǎn)函數(shù)名 returnst
28、m功 能 返回語句部分的處理函數(shù)產(chǎn)生式 < returnstm > := return(exp)說 明 函數(shù)根據(jù)文法產(chǎn)生式,調(diào)用相應(yīng)的遞歸處理函數(shù),生成語法樹節(jié)點(diǎn)函數(shù)名 callstmrest功 能 函數(shù)調(diào)用語句部分的處理函數(shù)產(chǎn)生式 < callstmrest > := (actparamlist)說 明 函數(shù)根據(jù)文法產(chǎn)生式,調(diào)用相應(yīng)的遞歸處理函數(shù),生成語法樹節(jié)點(diǎn)函數(shù)名 actparamlist功 能 函數(shù)調(diào)用實(shí)參部分的處理函數(shù)產(chǎn)生式 < actparamlist > := | exp actparammore 說 明 函數(shù)根據(jù)文法產(chǎn)生式,調(diào)用相應(yīng)的遞歸處理
29、函數(shù),生成語法樹節(jié)點(diǎn)函數(shù)名 actparammore功 能 函數(shù)調(diào)用實(shí)參部分的處理函數(shù)產(chǎn)生式 < actparammore > := | , actparamlist說 明 函數(shù)根據(jù)文法產(chǎn)生式,調(diào)用相應(yīng)的遞歸處理函數(shù),生成語法樹節(jié)點(diǎn)表達(dá)式部分函數(shù)名 exp功 能 表達(dá)式處理函數(shù)產(chǎn)生式 exp := simple_exp | 關(guān)系運(yùn)算符 simple_exp說 明 函數(shù)根據(jù)文法產(chǎn)生式,調(diào)用相應(yīng)的遞歸處理函數(shù),生成語法樹節(jié)點(diǎn)函數(shù)名 simple_exp功 能 表達(dá)式處理產(chǎn)生式 simple_exp := term | 加法運(yùn)算符 term說 明 函數(shù)根據(jù)文法產(chǎn)生式,調(diào)用相應(yīng)的遞歸處理函
30、數(shù),生成語法樹節(jié)點(diǎn)函數(shù)名 term功 能 項(xiàng)處理函數(shù)產(chǎn)生式 < 項(xiàng) > := factor | 乘法運(yùn)算符 factor說 明 函數(shù)根據(jù)文法產(chǎn)生式,調(diào)用相應(yīng)的遞歸處理函數(shù),生成語法樹節(jié)點(diǎn)函數(shù)名 factor功 能 因子處理函數(shù)產(chǎn)生式 factor := intc | variable | ( exp )說 明 函數(shù)根據(jù)文法產(chǎn)生式,調(diào)用相應(yīng)的遞歸處理函數(shù),生成語法樹節(jié)點(diǎn)函數(shù)名 variable功 能 變量處理函數(shù)產(chǎn)生式 variable := id varimore說 明 函數(shù)根據(jù)文法產(chǎn)生式,調(diào)用相應(yīng)的遞歸處理函數(shù),生成語法樹節(jié)點(diǎn)函數(shù)名 varimore功 能 變量處理產(chǎn)生式 varimore := | exp | . fieldvar dot 說 明 函數(shù)根據(jù)文法產(chǎn)生式,調(diào)用相應(yīng)的遞歸處理函數(shù),生成語法樹節(jié)點(diǎn)函數(shù)名 fieldvar功 能 變量處理函數(shù)產(chǎn)生式 fieldvar := id fieldvarmore 說 明 函數(shù)根據(jù)文法產(chǎn)生式,調(diào)用相應(yīng)的遞歸處理函數(shù),生成語法樹節(jié)點(diǎn)函數(shù)名 fieldvarmore功 能 變量處理函數(shù) 產(chǎn)生式 fieldvarmore := | exp 說 明 函數(shù)根據(jù)文法產(chǎn)生式,調(diào)用相應(yīng)的遞歸處理函數(shù),生成語法樹節(jié)點(diǎn)函數(shù)名 match功 能 終極符匹配處理函數(shù)說 明 函數(shù)參數(shù)e
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 質(zhì)量檢測合同模板
- 2024年度平房區(qū)環(huán)境整治:建筑施工合同范本
- 開發(fā)商授權(quán)拆遷補(bǔ)償合同
- 2024年住家保姆工作協(xié)議
- 勞務(wù)協(xié)議書樣式
- 簡單工程承包協(xié)議范例
- 2024標(biāo)準(zhǔn)臨時(shí)用工合同樣本
- 2024年蘇州市租房合同范本
- 拼車服務(wù)協(xié)議示例
- 2024中介的買賣合同書范文
- 初中語文人教七年級(jí)上冊要拿我當(dāng)一挺機(jī)關(guān)槍使用
- 北京頌歌原版五線譜鋼琴譜正譜樂譜
- 病史采集和臨床檢查方法
- PSUR模板僅供參考
- 火力發(fā)電企業(yè)作業(yè)活動(dòng)風(fēng)險(xiǎn)分級(jí)管控清單(參考)
- 民法典合同編之保證合同實(shí)務(wù)解讀PPT
- 全國第四輪學(xué)科評估PPT幻燈片課件(PPT 24頁)
- 大氣污染控制工程課程設(shè)計(jì)-某廠酸洗硫酸煙霧治理設(shè)施設(shè)計(jì)
- 名牌包包網(wǎng)紅主播電商直播帶貨話術(shù)腳本
- 高考語文作文素材人物速遞——蘇炳添課件18張
- 蛋雞養(yǎng)殖場管理制度管理辦法
評論
0/150
提交評論