編譯原理課程設(shè)計(jì)報(bào)告編譯程序構(gòu)造_第1頁
編譯原理課程設(shè)計(jì)報(bào)告編譯程序構(gòu)造_第2頁
編譯原理課程設(shè)計(jì)報(bào)告編譯程序構(gòu)造_第3頁
編譯原理課程設(shè)計(jì)報(bào)告編譯程序構(gòu)造_第4頁
編譯原理課程設(shè)計(jì)報(bào)告編譯程序構(gòu)造_第5頁
已閱讀5頁,還剩20頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、目 錄第一章 緒論21.1課程設(shè)計(jì)目的21.2課程設(shè)計(jì)要求21.3課程設(shè)計(jì)內(nèi)容21.3.1課設(shè)題目21.3.2課設(shè)內(nèi)容21.3.3具體要求21.3.4程序設(shè)計(jì)提示31.3.5測(cè)試數(shù)據(jù)31.4課程設(shè)計(jì)環(huán)境3第二章 設(shè)計(jì)方案32.1模塊劃分32.2模塊調(diào)用關(guān)系圖32.3每個(gè)模塊流程圖32.3.1詞法分析模塊流程圖32.3.2語法分析模塊流程圖32.3.3主程序流程圖3第三章 程序代碼設(shè)計(jì)33.1數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)33.2設(shè)計(jì)分析表33.3詞法分析設(shè)計(jì)33.4語法和語義分析設(shè)計(jì)3第四章 程序測(cè)試和結(jié)果34.1程序測(cè)試34.2 運(yùn)行結(jié)果3第五章 總結(jié)3參考文獻(xiàn)3附錄3源程序代碼3程序使用說明書3第一章 緒論

2、1.1課程設(shè)計(jì)目的編譯原理課程設(shè)計(jì)是編譯原理課程必不可少的一個(gè)環(huán)節(jié),通過課程設(shè)計(jì),加深對(duì)編譯原理的教學(xué)內(nèi)容的了解,以及實(shí)現(xiàn)編譯原理各部分知識(shí)的融合。進(jìn)而提高學(xué)生分析問題、解決問題,從而運(yùn)用所學(xué)知識(shí)解決實(shí)際問題的能力。1.2課程設(shè)計(jì)要求1明確課設(shè)任務(wù),復(fù)習(xí)與查閱有關(guān)資料2按要求完成課設(shè)內(nèi)容,課設(shè)報(bào)告要求文字和圖工整、思路清楚、正確。3注意增強(qiáng)程序界面的友好性。凡用戶輸入時(shí),給出足夠的提示信息使用戶感到方便使用。4注意提高程序的可讀性和可理解性:程序中應(yīng)有適當(dāng)?shù)淖⑨?,變量命名?yīng)符合實(shí)際含義,程序結(jié)構(gòu)清晰,易于閱讀和理解。1.3課程設(shè)計(jì)內(nèi)容1.3.1課設(shè)題目編譯程序構(gòu)造1.3.2課設(shè)內(nèi)容涉及詞法分析

3、、自下而上語法分析程序的實(shí)現(xiàn):slr(1)分析器的實(shí)現(xiàn)以及生成中間代碼。1.3.3具體要求根據(jù)lr分析算法構(gòu)造slr(1)分析程序,并完成語法分析動(dòng)作(當(dāng)需要一個(gè)單詞時(shí),調(diào)用詞法分析程序獲取),同時(shí)完成語義分析生成四元式輸出。要求程序具有通用性,改變文法時(shí)只需改變程序的數(shù)據(jù)初值,無需改變程序主體;要求完成一條說明語句、一條算數(shù)表達(dá)式和賦值語句的翻譯,生成中間代碼。變量說明語句的文法及相應(yīng)的語義子程序:.att表示數(shù)據(jù)類型屬性,fill函數(shù)表示將單詞id及其類別屬性填寫符號(hào)表。(0)sd; acc(1)dint id fill(id,int);d.att=int; (2)dfloat id fi

4、ll(id,float); d.att=float; (3)dd(1),id fill(id,d(1).att);d.att=d(1).att; 算數(shù)表達(dá)式和賦值語句的文法及相應(yīng)的語義子程序。(1)aid=e; p=lookup();emit(=, e.palce , _, p); (2)ee(1)+t e.palce=newtemp(); emit(+,e(1).palce,t.palce,e.palce)(3)et e.palce=t.palce;(4)tt(1)*f t.palce=newtemp(); emit(*,t(1).palce,f.palce,t.palce)(

5、5)tf t.palce=f.palce;(6)f(e) f.palce=e.palce;(7)fid p=lookup()f.palce=p;構(gòu)造其用于slr(1)分析的識(shí)別活前綴的dfa以及action表和goto表。然后編程實(shí)現(xiàn)。(關(guān)于詞法分析部分只需識(shí)別出與此文法相關(guān)的單詞即可(+,*,(,),id,=)。1.3.4程序設(shè)計(jì)提示(1)分析棧設(shè)計(jì)時(shí)可以用一個(gè)棧完成,也可以設(shè)計(jì)三個(gè)棧:一個(gè)符號(hào)棧,一個(gè)狀態(tài)棧,一個(gè)語義棧,則歸約時(shí),則需要在符號(hào)棧中退掉n個(gè)符號(hào),在狀態(tài)棧中退掉n個(gè)符號(hào)(n為產(chǎn)生式符號(hào)個(gè)數(shù)),語義棧中退掉n個(gè)符號(hào)對(duì)應(yīng)的語義;(2)終結(jié)符表和非終結(jié)符表的組織和預(yù)測(cè)分

6、析程序中相同(將符號(hào)對(duì)應(yīng)到一個(gè)數(shù)字,表示在分析表中對(duì)應(yīng)的下標(biāo))。(3)action表中的錯(cuò)誤處理:簡(jiǎn)化的錯(cuò)誤處理:當(dāng)查找action表出現(xiàn)空白時(shí),則當(dāng)前單詞無法移進(jìn)和規(guī)約,可簡(jiǎn)單的認(rèn)為當(dāng)前單詞為多余的單詞,則拋棄當(dāng)前單詞,讀下一單詞繼續(xù)分析。1.3.5測(cè)試數(shù)據(jù)作為程序測(cè)試數(shù)據(jù),以賦值語句area=r*r+r$作為測(cè)試輸入(源程序)。程序要求輸出二元式序列、符號(hào)表、語法分析過程、四元式序列。假設(shè)aa.txt的文件內(nèi)容如下: int area,r; area=r*r+r;程序運(yùn)行情況如下:請(qǐng)輸入源文件名稱:e:aa.txt語法分析過程如下: 狀態(tài)棧 符號(hào)棧 語義棧 動(dòng)作說明源程序?qū)?yīng)的二元式如下:

7、 (int,-) (id,0) (,-) (id,1) (;,-)(id,0)(=,)(id,1) (*,) (id,1) (+,) (id,1) (;,-)符號(hào)表如下:arear 源程序?qū)?yīng)的四元式序列如下: (*,r,r,t1) (+,t1,r,t2) (=,t2,area)分析過程完成。1.4課程設(shè)計(jì)環(huán)境硬件環(huán)境:圖書館五樓計(jì)算機(jī)系軟一實(shí)驗(yàn)室;軟件環(huán)境:jcreator第二章 設(shè)計(jì)方案2.1模塊劃分 將系統(tǒng)模塊劃分為四個(gè)模塊:數(shù)據(jù)結(jié)構(gòu)模塊,詞法分析模塊,slr(1)分析程序模塊和語義分析模塊。輸入或讀取文件符號(hào)表獲得代碼進(jìn)行詞法分析二元式判斷文法輸出四元式表達(dá)式文法分析聲明文法分析分析過

8、程slr(1)分析程序模塊語義分析模塊詞法分析模塊數(shù)據(jù)結(jié)構(gòu)模塊2.2模塊調(diào)用關(guān)系圖2.3每個(gè)模塊流程圖2.3.1詞法分析模塊流程圖轉(zhuǎn)化成單詞數(shù)組獲得代碼結(jié)束,返回所有單詞計(jì)數(shù)器小于單詞個(gè)數(shù)獲得單個(gè)單詞關(guān)鍵字加入二元式表是標(biāo)識(shí)符,加入符號(hào)表,加入二元式表計(jì)數(shù)器加12.3.2語法分析模塊流程圖初始化狀態(tài)棧和符號(hào)棧判斷當(dāng)前字符根據(jù)當(dāng)前字符和狀態(tài),查找slr分析表判斷action結(jié)束規(guī)約(生成四元式)移進(jìn)將處理過程放入處理數(shù)組,字符串指針,各棧頂指針變化,各棧棧內(nèi)內(nèi)容變化2.3.3主程序流程圖調(diào)用詞法分析函數(shù)并輸出二元式輸入源程序文件名打印四元式調(diào)用slr(1)分析程序打印標(biāo)識(shí)符表和常量表第三章 程序

9、代碼設(shè)計(jì)3.1數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)分隔符: char arr1 = , ;, , , (, ), ; 運(yùn)算符: char arr = +, -, *, /, =, ;關(guān)鍵字: string key = int, float, char, while, if ; 存儲(chǔ)二元式: eryuan er = new eryuan();數(shù)字位置: int num = 0;標(biāo)識(shí)符位置: int id_;string vn0 = d, s ;string vt0 = ;, int, float, , id, # ;非終結(jié)符: string vn = e, t, f, a ; 終結(jié)符: string vt = id,

10、=, +, *, (, ), ;, # ; 非終結(jié)符個(gè)數(shù): int lengthvn = 3; 終結(jié)符個(gè)數(shù): int lengthvt = 8; 狀態(tài)數(shù): int lengthzt = 15; 規(guī)約數(shù)組: int guiyue0;算數(shù)表達(dá)式和賦值語句文法的goto子表: int goto1;算數(shù)表達(dá)式和賦值語句文法的action子表: int action;標(biāo)識(shí)符: string ident = new string100;標(biāo)識(shí)符數(shù): int countid = 0;存儲(chǔ)四元式: siyuan si = new siyuan50; 存儲(chǔ)臨時(shí)變量tn :string ident_t = new

11、string100;tn的個(gè)數(shù):int lengthidt = 0;輸入的字符串: string input0;3.2設(shè)計(jì)分析表變量說明語句的文法及相應(yīng)的語義子程序:.att表示數(shù)據(jù)類型屬性,fill函數(shù)表示將單詞id及其類別屬性填寫符號(hào)表。(0)sd; acc(1)dint id fill(id,int);d.att=int; (2)dfloat id fill(id,float); d.att=float; (3)dd(1),id fill(id,d(1).att);d.att=d(1).att; i0:s d;d int idd float idd d , iddi1:s d ;d d

12、, idinti2:d int ididi6:d int id floati3:d float idi7:d float id ,i5:d d , ididi8:d d , id i4:s d ; id;follow(s) = #follow(d) = , ;狀態(tài)actiongoto;intfloat,id#d0s2s311s4s52s63s74acc5s86r1r17r2r28r3r33.3詞法分析設(shè)計(jì)boolean isfengefu(string str) 判斷i當(dāng)前所指的字符是否為一個(gè)分界符,是的話返回真,反之返回假void isnum(string str) 此函數(shù)判斷傳遞的參數(shù)是否

13、為數(shù)字,是的話返回真,反之返回假void isid(string str) 此函數(shù)判斷傳遞的參數(shù)是否為標(biāo)識(shí)符,是的話返回真,反之返回假boolean isoperation(string str) 判斷i當(dāng)前所指的字符是否為一個(gè)運(yùn)算符,是的話返回真,反之返回假void result(string a) 將字符串分類,得到數(shù)字、關(guān)鍵字、標(biāo)識(shí)符等 a=a.trim();if (a.equals(null) | a.equals(n) | a.length() = 0|a.equals( )return;try if (a.length() = 1) if (a.equals(,) | a.equa

14、ls(;) | a.equals()| a.equals() | a.equals() | a.equals()| a.equals()isfengefu(a);else if (a.equals(+) | a.equals(-) | a.equals(*)| a.equals(/) | a.equals(=) | a.equals()isoperation(a);else if (a.charat(0) = 0)isnum(a);elseisid(a); else if (a.charat(0) = 0) for (int k = 1; k = a.length(); k+)if (a.ch

15、arat(k) = 0)| a.charat(k) = .)continue;isnum(a); else if (iskey(a);elseisid(a); catch (exception ee) system.out.println(ee);boolean iskey(string str) 此函數(shù)判斷傳遞的參數(shù)是否為關(guān)鍵字,是的話,返回真,反之返回假void isnum(string strclass eryuan) 存儲(chǔ)二元式void show() 輸出二元式3.4語法和語義分析設(shè)計(jì)boolean isdelim(char c) 返回是否是終結(jié)符中字符void yufa( ) 語法分

16、析,中間嵌套語義分析(主要代碼分析) x = stack.gethead();/ 得到棧頂狀態(tài)值value = actionxa;/ value為下一狀態(tài)值while (true) system.out.println();stack.show();/ 輸出各個(gè)棧頂值if (value = 0 & value = 100)/ 歸約 int size, vn_temp, id_temp;value = value - 100;vn_temp = guiyuevalue0;size = guiyuevalue1;int id = new intsize;for (i = 1; i = size;

17、i+) temp = stack.pop();idi - 1 = temp.yuyi;/ 獲得語義棧的值if (temp = null) system.out.println(出棧錯(cuò)誤!);return;string getid(int x) 返回標(biāo)識(shí)符或者臨時(shí)標(biāo)識(shí)符void emit()存儲(chǔ)四元式class stack 堆棧void show() 輸出四元式int tempid() 產(chǎn)生臨時(shí)標(biāo)識(shí)符void error(int i)/ 錯(cuò)誤處理b = false;system.out.print(n出錯(cuò):);switch (i) case 1:system.out.println(非法字符!)

18、;break;case 2:system.out.println(有語義錯(cuò)誤!);break;case 3:system.out.println(無結(jié)尾符號(hào)!);break;算數(shù)表達(dá)式和賦值語句的文法及相應(yīng)的語義子程序。(0)aid=e; p=lookup();emit(e.palce, , p); (1)ee(1)+t e.palce=newtemp(); emit(+,e(1).palce,t.palce,e.palce)(2)et e.palce=t.palce;(3)tt(1)*f t.palce=newtemp(); emit(+,t(1).palce,f.palce,

19、t.palce)(4)tf t.palce=f.palce;(5)f(e) f.palce=e.palce;(6)fid p=lookup()f.palce=p;i1:a id = e;=ei2:a id = e;e e + te tt t * ft ff ( e )f id+i3:a id = e ;e e + tti12:e e + t t t * fi5:t f f(i6:f ( e )e e + te tt t * ft ff ( e )f id*id(i13:t t * f i4:e t t t * ftfi10:t t * ff ( e )f idi7:f id id

20、id(fid*i14:f ( e ) i11:f ( e )e e + te)i0:a id = e;id+fi9:e e + tt t * ft ff ( e )f idt(i8:a id = e ; ;follow(a) = #;follow(e) = ;, +, );follow(t) = *, ;, +, );follow(f) = *, ;, +, );狀態(tài)actiongotoid=+*();#etf0s11s22s7s63453s9s84r210r2r25r4r4r4r46s7s611457r6r6r6r68acc9s7s612510s7s61311s9s1412r1s10r1r1

21、13r3r3r3r314r5r5r5r5第四章 程序測(cè)試和結(jié)果4.1程序測(cè)試源程序: hou.txt4.2 運(yùn)行結(jié)果1.詞法分析結(jié)果:如圖 2.slr(1) 運(yùn)行結(jié)果:如圖3.語義運(yùn)行結(jié)果:如圖第五章 總結(jié)本次課程設(shè)計(jì)涉及詞法分析、自下而上語法分析程序的實(shí)現(xiàn),slr(1)分析器的實(shí)現(xiàn)以及生成中間代碼。要求根據(jù)lr分析算法構(gòu)造slr(1)分析程序,并完成語法分析動(dòng)作,同時(shí)完成語義分析生成四元式輸出。通過兩個(gè)星期的實(shí)驗(yàn),已經(jīng)順利完成了任務(wù)。在這次課設(shè)當(dāng)中,感覺到編譯原理強(qiáng)大的理論性和抽象性,有了平時(shí)做實(shí)驗(yàn)的基礎(chǔ)不會(huì)覺得無從下手,但是對(duì)于實(shí)現(xiàn)各個(gè)功能的函數(shù)的連接覺得很困惑。后來經(jīng)過上網(wǎng)查閱資料,請(qǐng)教

22、老師和同學(xué),我學(xué)到了不少東西,對(duì)聲明文法的分析中用到了詞法分析中產(chǎn)生的符號(hào)表,利用參數(shù)傳遞此符號(hào)表,產(chǎn)生說明語句的編譯過程。此程序還有一些不足的地方。其一,就是不能全面的容錯(cuò),當(dāng)輸入錯(cuò)誤的語句時(shí)不能夠分析出來,而且對(duì)于不同屬性的各標(biāo)識(shí)符進(jìn)行運(yùn)算時(shí)沒有相應(yīng)的容錯(cuò)判斷,如果有時(shí)間還有待于提高,這也是一個(gè)巨大的工作。其二,不是圖形用戶界面,只在運(yùn)行結(jié)果中顯示,作為軟件使用不夠方面。我們都該努力地追求實(shí)用性。編譯原理是計(jì)算機(jī)專業(yè)的重要專業(yè)課之一。而實(shí)驗(yàn)又是學(xué)好編譯原理課程的重要環(huán)節(jié),設(shè)計(jì)一個(gè)與理論內(nèi)容相適宜的實(shí)驗(yàn)是整體上提高編譯原理能力決定性因素。在此次課程設(shè)計(jì)中我學(xué)到了很多,遇到的困難也帶給我感受很

23、多。通過這個(gè)全面的編譯原理的實(shí)驗(yàn)我很大的提高了自己認(rèn)真思考和自學(xué)的能力。同時(shí)感謝老師和同學(xué)的教導(dǎo)與幫助。我會(huì)在今后的學(xué)習(xí)中更加努力。參考文獻(xiàn)1胡元義。 編譯原理教程。 西安: 西安電子科技大學(xué)出版社, 2006.4。2陳火旺,劉春林等,程序設(shè)計(jì)語言編譯原理(第三版)。北京:國(guó)防工業(yè)出版社,2000。3蔣立源,康幕寧主編,編譯原理。 西安:西北工業(yè)大學(xué)出版社,2000.34周靄如,林偉健. c+程序設(shè)計(jì)基礎(chǔ)。北京:電子工業(yè)出版社, 2006.4。 5 侯文泳,張冬沫編著,編譯原理教程。北京:電子工業(yè)出版社. 2004。附錄源程序代碼cifa.javapackage com.yang.ks;cla

24、ss cifa char arr1 = , ;, , , (, ), ;/ 分隔符char arr = +, -, *, /, =, ;/ 運(yùn)算符string key = int, float, char, while, if ;/ 關(guān)鍵字eryuan er = new eryuan();/ 存儲(chǔ)二元式int num = 0;/ 數(shù)字位置int id_;/ 標(biāo)識(shí)符位置node1 node1 = new node150;void cifa(string s) int begin = 0, end = 0;try do try for (; begin+)if (s.charat(begin) !

25、= & s.charat(begin) != n)break; catch (exception e) / todo auto-generated catch blocke.printstacktrace();string nowstring = null;string nowstring1 = ;try int r;for (r = begin; r = s.length()break;nowstring = s.substring(begin, end);/ 返回定長(zhǎng)字符串result(nowstring);result(nowstring1);begin = end + 1; while

26、 (true); catch (exception ee) system.out.println(ee);boolean isfengefu(string str)/ 判斷i當(dāng)前所指的字符是否為一個(gè)分界符,是的話返回真,反之假node1 node = new node1();for (int t = 0; t 7; t+)try if (str.charat(0) = arr1t) node.num = -1;node.str = str;er.add(node);return true; catch (exception e) e.printstacktrace();return false

27、;void isnum(string str)/ 此函數(shù)判斷傳遞的參數(shù)是否為數(shù)字,是的話,返回真,反之返回假node1 node = new node1();node.num = num;node.str = str;er.add(node);num+;void isid(string str)/ 此函數(shù)判斷傳遞的參數(shù)是否為標(biāo)識(shí)符,是的話,返回真,反之返回假if (str = n)return;node1 node = new node1();int flag = 0;for (int r = 0; r node1.length; r+) try if (node1r.str.equals()

28、break;if (str.equals(node1r.str) node.num = node1r.num;node.str = node1r.str;er.add(node);flag = 1;break; catch (exception e) / todo auto-generated catch blocke.printstacktrace();if (flag = 0) node.num = id_;node.str = str;er.add(node);id_+;boolean isoperation(string str)/ 判斷i當(dāng)前所指的字符是否為一個(gè)運(yùn)算符,是的話返回真,

29、反之假node1 node = new node1();for (int t = 0; t 7; t+)try if (str.charat(0) = arrt) node.num = -1;node.str = str;er.add(node); catch (exception e) e.printstacktrace();return false;void result(string a)/ 將字符串分類,得到數(shù)字、關(guān)鍵字、標(biāo)識(shí)符等 a=a.trim();if (a.equals(null) | a.equals(n) | a.length() = 0|a.equals( )return

30、;try if (a.length() = 1) if (a.equals(,) | a.equals(;) | a.equals()| a.equals() | a.equals() | a.equals()| a.equals()isfengefu(a);else if (a.equals(+) | a.equals(-) | a.equals(*)| a.equals(/) | a.equals(=) | a.equals()isoperation(a);else if (a.charat(0) = 0)isnum(a);elseisid(a); else if (a.charat(0)

31、 = 0) for (int k = 1; k = a.length(); k+)if (a.charat(k) = 0)| a.charat(k) = .)continue;isnum(a); else if (iskey(a);elseisid(a); catch (exception ee) system.out.println(ee);boolean iskey(string str)/ 此函數(shù)判斷傳遞的參數(shù)是否為關(guān)鍵字,是的話,返回真,反之返回假for (int i = 0; i 5; i+) if (str.equals(keyi) node1 node = new node1()

32、;node.num = -1;node.str = str;er.add(node);return true;return false;class eryuan/ 存儲(chǔ)二元式int i = -1;void add(node1 x) try i+;node1i = new node1();node1i.str = x.str;node1i.num = x.num; catch (exception e) / todo auto-generated catch blocke.printstacktrace();void show()/ 輸出二元式system.out.println(二元式為:);

33、for (int j = 0; j 49) error(3);return;if (inputto.charat(i + 1) = )i+;atj = inputto.charat(i + 1);i+;j+;atj = #;input = new string(at, 0, j + 1);int gotot2 = -1, -1, -1 , -1, -1, -1 , 3, 4, 5 , -1, -1, -1 , -1, -1, -1 , -1, -1, -1 , 11, 4, 5 , -1, -1, -1 , -1, -1, -1 , -1, 12, 5 , -1, -1, 13 , -1, -

34、1, -1 , -1, -1, -1 , -1, -1, -1 , -1, -1, -1 ;goto1 = gotot2;int action2 = 1, -1, -1, -1, -1, -1, -1, -1 ,/ 0 -1, 2, -1, -1, -1, -1, -1, -1 ,/ 1 7, -1, -1, -1, 6, -1, -1, -1 ,/ 2 -1, -1, 9, -1, -1, -1, 8, -1 ,/ 3 -1, -1, 102, 10, -1, 102, 102, -1 ,/ 4 -1, -1, 104, 104, -1, 104, 104, -1 ,/ 5 7, -1, -

35、1, -1, 6, -1, -1, -1 ,/ 6 -1, -1, 106, 106, -1, 106, 106, -1 ,/ 7 -1, -1, -1, -1, -1, -1, -1, 100 ,/ 8 7, -1, -1, -1, 6, -1, -1, -1 ,/ 9 7, -1, -1, -1, 6, -1, -1, -1 ,/ 10 -1, -1, 9, -1, -1, 14, -1, -1 ,/ 11 -1, -1, 101, 10, -1, 101, 101, -1 ,/ 12 -1, -1, 103, 103, -1, 103, 103, -1 ,/ 13 -1, -1, 105

36、, 105, -1, 105, 105, -1 / 14;action = action2;int guiyue2 = 3, 4 , 0, 3 , 0, 1 , 1, 3 , 1, 1 , 2, 3 , 2, 1 ;guiyue = guiyue2;node gettoken()node node = new node();string token = new string();if (isdelim(input.charat(idex)/ 判斷是否為終結(jié)符token += input.charat(idex);switch (token.tochararray()0) case n:node.vt = 8;break;case :node.vt = 8;break;case =:node.vt = 1;break;case +:node.vt = 2;break;case *:node.vt = 3;break;case (:node.vt = 4;break;case ):node.vt = 5;break;case ;:node.vt = 6;break;

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論