版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 課程設(shè)計(jì)報(bào)告</b></p><p> 2010~2011學(xué)年第一學(xué)期</p><p> 課程名稱:編譯原理</p><p> 課程設(shè)計(jì)題目:語(yǔ)法分析器</p><p> 姓 名:</p><p> 系:計(jì)算機(jī)</p><p> 專
2、 業(yè):計(jì)算機(jī)科學(xué)與技術(shù)</p><p> 年 級(jí):</p><p> 學(xué) 號(hào):</p><p> 指導(dǎo)教師:</p><p> 職 稱:</p><p> 目 錄</p><p> 1 正則表達(dá)式1</p><p> 1.1
3、正則表達(dá)式1</p><p> 1.2 確定化(化簡(jiǎn))后的狀態(tài)轉(zhuǎn)換圖1</p><p> 1.3 分析程序代碼1</p><p> 1.4 程序運(yùn)行截圖4</p><p><b> 1.5 小結(jié)4</b></p><p> 2 LL(1)分析5</p>
4、<p> 2.1 LL(1)文法5</p><p> 2.2 LL(1)預(yù)測(cè)分析表5</p><p> 2.3 分析程序代碼5</p><p> 2.4 程序運(yùn)行截圖7</p><p><b> 2.5 小結(jié)7</b></p><p> 3 算符優(yōu)先分析
5、8</p><p> 3.1 算符優(yōu)先文法8</p><p> 3.2 算符優(yōu)先關(guān)系表8</p><p> 3.3 分析程序代碼8</p><p> 3.4 程序運(yùn)行截圖10</p><p> 3.5 小結(jié)11</p><p> 4 LR分析12</p
6、><p> 4.1 LR文法12</p><p> 4.2 LR分析表12</p><p> 4.3 分析程序代碼12</p><p> 4.4 程序運(yùn)行截圖14</p><p> 4.5 小結(jié)14</p><p><b> 參考文獻(xiàn):14</b&g
7、t;</p><p><b> 1 正則表達(dá)式</b></p><p> 1.1 正則表達(dá)式</p><p> (a|b)*(aa|bb)(a|b)* (注:該正規(guī)式為示例,可更改)</p><p> 1.2 確定化(化簡(jiǎn))后的狀態(tài)轉(zhuǎn)換圖</p><p> 1.3 分析程序代碼
8、</p><p> #include <iostream> </p><p> #include <string> </p><p> using namespace std; </p><p> cons
9、t int Max=20; </p><p> typedef struct ArcNode{ </p><p> int&
10、#160;adjvex;//該弧所指向的頂點(diǎn)的位置 </p><p> char info; //權(quán) </p><p> struct ArcNode *nextarc;//指向下一條弧的指針 </p><p> }ArcNode;
11、 </p><p> typedef struct VNode{ </p><p> char data; //
12、頂點(diǎn)信息 </p><p> ArcNode *firstarc; //指向第一條依附該頂點(diǎn)的弧的指針 </p><p><b> }VNode; </b></p&g
13、t;<p> class Nfa </p><p><b> { </b></p><p><b> public: </b></p><p> Nfa();
14、0;//構(gòu)造函數(shù),初始化nfa </p><p> int FindAdj(char c); //返回c狀態(tài)的在鄰接表中的序號(hào) </p><p> void AlpAdd(char c);
15、; //向字母表集合中添加表中沒(méi)有的新元素c </p><p> void InitVisit(); //初始化Visited集合 </p><p> voi
16、d e_closure(int index); //求單一狀態(tài)c的e-閉包 </p><p> void e_closure(int a[]); //重載的狀態(tài)集合的e-閉包 </p><p> void move(int
17、160;I,char a); //單一狀態(tài)I的a弧轉(zhuǎn)換 </p><p> void move(int I[],char a); //重載的狀態(tài)集合的a弧轉(zhuǎn)換 </p><p> void Nfa::Visit_I(int
18、160;*Temp); //Visited轉(zhuǎn)換為集合 </p><p> void Insert(int I[],int a); //向狀態(tài)集合中添加新元素 </p><p> int TAdd(int I[]);
19、 //狀態(tài)矩陣T中加入新?tīng)顟B(tài)集合 </p><p> void Resault(int i); </p><p> void Nfa_Dfa(); </p><p> private:
20、</p><p> int K; //狀態(tài)數(shù) </p><p> int T[Max][Max];
21、; //狀態(tài)子集矩陣 </p><p> VNode AdjList[Max]; //nfa,鄰接表的數(shù)據(jù)結(jié)構(gòu)存儲(chǔ) </p><p> VNode Dfa[Max];
22、60; //dfa </p><p> bool Visited[Max]; //存e-閉包結(jié)果 </p><p> char Alp[Max];&
23、#160; //字母表,0號(hào)單元用于存放個(gè)數(shù) </p><p><b> }; </b></p><p> Nfa::Nfa() </p><p><b> { </b>&
24、lt;/p><p> K=Alp[0]=0; </p><p><b> char c; </b></p><p> string line; </p><p> ArcNode *p; </p
25、><p> while(cin>>c&&c!='#') </p><p><b> { </b></p><p> AdjList[K].data=c; </p><p> AdjList[K].firsta
26、rc=new ArcNode; </p><p> AdjList[K].firstarc->nextarc=NULL; </p><p><b> K++; </b></p><p><b> } </b><
27、;/p><p> getline(cin,line); </p><p> while(getline(cin,line)&&line!="#") </p><p><b> { &
28、lt;/b></p><p> int index=FindAdj(line[0]); </p><p> if(index!=-1) </p><p><b> { </b></p><p> p=AdjList[index].f
29、irstarc; </p><p> while(p->nextarc) </p><p> p=p->nextarc; </p><p> p->nextarc=new ArcNode; </p><p> p->
30、;nextarc->nextarc=NULL; </p><p> p->nextarc->adjvex=FindAdj(line[4]); </p><p> p->nextarc->info=line[2]; </p><p> AlpAdd(p->nex
31、tarc->info); </p><p><b> } </b></p><p><b> } </b></p><p> cout<<"------------------------------"<&l
32、t;endl; </p><p> cout<<"Initialization completely."<<endl; </p><p> cout<<"K={"; </p><p> for(int
33、;i=0;i<K-1;i++) </p><p> cout<<AdjList[i].data<<","; </p><p> cout<<AdjList[K-1].data<<"}."<<endl; </p&
34、gt;<p> cout<<"∑={"; </p><p> for(int i=1;i<(int)Alp[0];i++) </p><p> cout<<Alp[i]<<","; </p><
35、p> cout<<Alp[Alp[0]]<<"}."<<endl; </p><p> for(int i=0;i<K;i++) </p><p><b> { </b></p><p> p=
36、AdjList[i].firstarc; </p><p> p=p->nextarc; </p><p> while(p) </p><p><b> { </b></p><p> cout<<&quo
37、t;f("<<AdjList[i].data<<","<<p->info<<")="<<p->adjvex<<" "; </p><p> p=p->nextarc; </p>
38、<p><b> } </b></p><p> if(i<K&&AdjList[i].firstarc->nextarc) </p><p> #include<stdio.h></p><p> int exch[4][2]={1,2,
39、3,2,1,3,3,3};</p><p> void judge(char *s) </p><p><b> {</b></p><p> int cur = 0, i = 0;</p><p> while(s[i])</p><p><b> {</b>&l
40、t;/p><p> if(s[i]-'a' > 1 || s[i] < 'a')</p><p><b> break;</b></p><p> cur=exch[cur][ s[i++] - 'a'];</p><p><b> }</b
41、></p><p> if(s[i] == 0 && cur == 3)</p><p> printf ("%s √ Right!\n\n",s);</p><p> else printf ("%s × Wrong!\n\n",s);</p><p><
42、b> }</b></p><p> int main()</p><p><b> {</b></p><p> char str[100];</p><p><b> while(1)</b></p><p><b> {</
43、b></p><p> printf("有限自動(dòng)機(jī),判斷是否符合 (a|b)*(aa|bb)(a|b)*\n");</p><p> printf("請(qǐng)輸入字符串: ");</p><p> gets(str);</p><p> judge(str);</p><
44、p><b> }</b></p><p><b> }</b></p><p> 1.4 程序運(yùn)行截圖</p><p><b> 1.5 小結(jié)</b></p><p> 平時(shí)的學(xué)習(xí)需要通過(guò)實(shí)踐來(lái)檢驗(yàn),通過(guò)這次實(shí)驗(yàn)我能發(fā)現(xiàn)自身存在的一些問(wèn)題,并且加以改正,同時(shí)通
45、過(guò)實(shí)驗(yàn)加強(qiáng)了自己的動(dòng)手能力,并且增強(qiáng)了對(duì)于正則表達(dá)式的理解,并不只在于應(yīng)試方面。</p><p> 2 LL(1)分析</p><p> 2.1 LL(1)文法</p><p> E→TE' (注:該文法為示例,可更改)</p><p><b> E'→+TE'|ε</b>&l
46、t;/p><p><b> T→FT'</b></p><p><b> T'→*FT'|ε</b></p><p><b> F→(E)|i</b></p><p> 2.2 LL(1)預(yù)測(cè)分析表</p><p> 2.
47、3 分析程序代碼</p><p> 輸入文法:E→TE' (注:該文法為示例,可更改)</p><p><b> E'→+TE'|ε</b></p><p><b> T→FT'</b></p><p><b> T'→*FT
48、9;|ε</b></p><p><b> F→(E)|i</b></p><p><b> 代碼:</b></p><p> #include<stdio.h></p><p> #include<string.h> </p><
49、p> char data[5][6][10]={ "12","","","12","","",</p><p> "","12+","","","-","-",
50、</p><p> "34","","","34","","",</p><p> "","-","34*","","-","-",</p&g
51、t;<p> "i","","",")0(","","",</p><p> };// 第一維0-4分別代表 EE'TT'F ,第二維0-5代表i+*()# -代表ε</p><p> int exch(char ch)</p&g
52、t;<p><b> {</b></p><p> switch(ch)</p><p><b> {</b></p><p> case 'i': return 0;</p><p> case '+': return 1;</p>
53、;<p> case '*': return 2;</p><p> case '(': return 3;</p><p> case ')': return 4;</p><p> case 0 : return 5; //字符串結(jié)束標(biāo)志代表'#'.</p>&
54、lt;p> default: return -1;</p><p><b> }</b></p><p><b> }</b></p><p> void judge(char *s)</p><p><b> {</b></p><p>
55、; int tot=0,i=0,cur,k=exch(s[0]);</p><p> char sta[100];;</p><p> sta[++tot]='0';</p><p> while(tot>0)</p><p><b> {</b></p><p>
56、 cur = sta[tot] - '0';</p><p> if(s[i] == ' ') // 去空格</p><p> ++tot,k=exch(s[++i]);</p><p> else if(cur+'0' == s[i]) // 推導(dǎo)出相同字符,出棧</p><p>
57、 k=exch(s[++i]);</p><p> else if(k < 0 || data[cur][k][0] == 0) // 踩空,或者出現(xiàn)非法字符</p><p><b> break;</b></p><p> else if(data[cur][k][0] != '-') //不是ε,進(jìn)棧繼續(xù)推導(dǎo)
58、</p><p><b> {</b></p><p> strcpy(sta+tot,data[cur][k]);</p><p> tot+=strlen(data[cur][k]);</p><p><b> }</b></p><p><b> -
59、-tot;</b></p><p><b> }</b></p><p> if(tot==0)</p><p> printf(" %s √ Right!\n\n",s);</p><p> else printf(" %
60、s × Wrong!\n\n",s);</p><p><b> }</b></p><p> int main()</p><p><b> {</b></p><p> char str[100];</p><p> printf(&quo
61、t;判斷符號(hào)串是否符合文法:\n\n\tE→TE'\n\t");</p><p> printf("E'→+TE'|ε\n\tT→FT'\n\tT'→*FT'|ε\n\tF→(E)|i\n\n");</p><p> while(printf("輸入符號(hào)串: ")&&get
62、s(str)&&str[0])</p><p> judge(str);</p><p><b> return 0;</b></p><p><b> }</b></p><p> 2.4 程序運(yùn)行截圖</p><p><b> 2.5
63、 小結(jié)</b></p><p> 實(shí)踐實(shí)踐驗(yàn)證里的唯一標(biāo)準(zhǔn),這次課程設(shè)計(jì)主要鞏固了我對(duì)LL(1)文法的深刻認(rèn)識(shí),掌握程序?qū)崿F(xiàn)文法判斷、鏈表的使用等多種問(wèn)題的基本方法,進(jìn)一步提高了綜合運(yùn)用所學(xué)知識(shí)的能力。</p><p><b> 3 算符優(yōu)先分析</b></p><p> 3.1 算符優(yōu)先文法</p>&l
64、t;p> E→T | E+T | E-T (注:該文法為示例,可更改)</p><p> T→F | T*F | T/F</p><p><b> F→(E) | i</b></p><p> 3.2 算符優(yōu)先關(guān)系表</p><p> 3.3 分析程序代碼</p><p>
65、 #include<stdio.h></p><p> #include<string.h></p><p> char com[8][8]={ '>', '>', '<', '<', '<', '>', '<
66、;', '>',</p><p> '>', '>', '<', '<', '<', '>', '<', '>',</p><p> '>', '>
67、;', '>', '>', '<', '>', '<', '>',</p><p> '>', '>', '>', '>', '<', '>'
68、, '<', '>',</p><p> '<', '<', '<', '<', '<', '=', '<', ' ',</p><p> '>', '
69、;>', '>', '>', '-', '>', '-', '>', </p><p> '>', '>', '>', '>', '-', '>'
70、, '-', '>',</p><p> '<', '<', '<', '<', '<', '-', '<', '=',</p><p> }; // 0-7 分別代表 + - * /
71、( ) i #</p><p> int exch(char ch)</p><p><b> {</b></p><p> switch(ch)</p><p><b> {</b></p><p> case '+': return 0;<
72、/p><p> case '-': return 1;</p><p> case '*': return 2;</p><p> case '/': return 3;</p><p> case '(': return 4;</p><p> c
73、ase ')': return 5;</p><p> case 'i': return 6;</p><p> case 0 : return 7; //字符串結(jié)束標(biāo)志代表‘#’</p><p> default: return -1;</p><p><b> }</b><
74、;/p><p><b> }</b></p><p> char expre[6][5]={"N+N","N-N","N*N","N/N","(=N)","i"}; //為了挽回因忽略語(yǔ)法變量而產(chǎn)生的錯(cuò)誤,在規(guī)約時(shí)檢驗(yàn)終結(jié)符是否帶了應(yīng)有的操作對(duì)象。
75、</p><p> int confirm(char *sta,int t) //檢驗(yàn)終結(jié)符是否帶了應(yīng)有的變量。</p><p><b> {</b></p><p> int i,n=t;</p><p> while( n>0&&sta[n]!='<')</p
76、><p><b> n--;</b></p><p><b> if(n>0)</b></p><p> for(i=0;i<6;i++)</p><p> if(memcmp(expre[i],sta+n+1,sizeof(char)*(t-n))==0)</p>&
77、lt;p><b> {</b></p><p> sta[n] = 'N'; // 說(shuō)明是有應(yīng)有的操作對(duì)象,所以進(jìn)行規(guī)約。</p><p><b> return n;</b></p><p><b> }</b></p><p><b&g
78、t; return 0;</b></p><p><b> }</b></p><p> void judge(char *s)</p><p><b> {</b></p><p> char sta[100];</p><p> int tot=0
79、,cur,m,k,i=0;</p><p> sta[++tot]=0;</p><p> while(tot>0)</p><p><b> {</b></p><p><b> m=tot;</b></p><p><b> do {</b
80、></p><p> cur=exch(sta[m--]);</p><p> }while(cur<0); // 要忽略變量,直接對(duì)終結(jié)符進(jìn)行比較優(yōu)先級(jí)。</p><p> while(s[i] == ' ') // 跳過(guò)空格</p><p><b> i++;</b><
81、/p><p> k = exch(s[i]);</p><p> if( cur==k&&cur==7)</p><p> tot = 0; // 規(guī)約成功,結(jié)束標(biāo)記。</p><p> else if( k<0 || com[cur][k] == '-' ) // 踩空或者輸入非法符</p&
82、gt;<p><b> tot = -1;</b></p><p> else if( com[cur][k] != '>' ) // 遇到‘>',準(zhǔn)備規(guī)約</p><p><b> {</b></p><p> if(sta[tot] == 'N
83、9;) // 這里一個(gè)小問(wèn)題就是變量N是要在'<'左邊還是右邊呢,這要取決于終結(jié)符是什么,左右兩邊有幾個(gè)變量,不過(guò)針對(duì)本程序方法,只需全部放在右邊。</p><p><b> {</b></p><p> sta[tot] = com[cur][k];</p><p> sta[++tot] = 'N
84、39;;</p><p><b> }</b></p><p><b> else </b></p><p> sta[++tot] = com[cur][k];</p><p> sta[++tot] =s[i++];</p><p><b> }<
85、;/b></p><p> else if( (tot = confirm( sta,tot ))==0 ) //檢驗(yàn)終結(jié)符是否帶了應(yīng)有的變量。沒(méi)有,就規(guī)約失敗</p><p><b> tot = -1;</b></p><p><b> }</b></p><p> if(tot=
86、=0)</p><p> printf(" %s √ Right!\n\n",s);</p><p> else printf(" %s × Wrong!\n\n",s);</p><p><b> }</b></p><
87、p> int main()</p><p><b> {</b></p><p> char str[100];</p><p> printf("判斷符號(hào)串是否符合文法:\n\n\tE→T | E+T | E-T\n\tT→F | T*F | T/F\n\tF→(E) | i\n\n");</p>
88、<p> while(printf("輸入符號(hào)串: ")&&gets(str)&&str[0])</p><p> judge(str);</p><p><b> return 0;</b></p><p><b> }</b></p>
89、<p> 3.4 程序運(yùn)行截圖</p><p><b> 3.5 小結(jié)</b></p><p> 通過(guò)這次課程設(shè)計(jì),我發(fā)現(xiàn)之前沒(méi)發(fā)現(xiàn)的問(wèn)題。算符優(yōu)先分析方法有一定的局限性由于算符優(yōu)先分析法去掉了單非終結(jié)符之間的歸約,盡管在分析過(guò)程中,當(dāng)決定是否為句柄時(shí)采取一些檢查措施,但仍難完全避免把錯(cuò)誤的句子得到正確的歸約。</p><p
90、><b> 4 LR分析</b></p><p><b> 4.1 LR文法</b></p><p> (0) S'→S (注:該文法為示例,可更改)</p><p> (1) S→BB </p><p> (2) B→aB </p><p
91、><b> (3) B→b</b></p><p> 4.2 LR分析表</p><p> 4.3 分析程序代碼</p><p> #include<stdio.h></p><p> #include<string.h> </p><p> in
92、t action[7][5]= {</p><p> 3, 4, 0, 1, 2,</p><p> 0, 0,-4, 0, 0,</p><p> 3, 4, 0, 0, 5,</p><p> 3, 4, 0, 0, 6,</p><p> -3,-3,-3, 0, 0,</p><
93、;p> -1,-1,-1, 0, 0,</p><p> -2,-2,-2, 0, 0</p><p> };// 負(fù)數(shù)代表此時(shí)可規(guī)約,即r,第二維0-5分別代表a b # S B,-4表示acc</p><p> int cnt[]={0,'S'*10+2,'B'*10+2,'B'*10+1};// 表
94、示ri的產(chǎn)生式的左邊變量和右邊長(zhǎng)度</p><p> int exch(char ch)</p><p><b> {</b></p><p> switch(ch)</p><p><b> {</b></p><p> case 'a': ret
95、urn 0;</p><p> case 'b': return 1;</p><p><b> case '#':</b></p><p> case'\0': return 2; //字符串結(jié)束標(biāo)志代表‘#'.</p><p> case 'S&
96、#39;: return 3;</p><p> case 'B': return 4;</p><p> default: return -1;</p><p><b> }</b></p><p><b> }</b></p><p> void
97、 judge(char *s)</p><p><b> {</b></p><p> int int_stack[100],ti=0,tc=0,i=1,cur,k=exch(s[0]);</p><p> char char_stack[100];</p><p> int_stack[++ti]=0;<
98、/p><p> while(ti>0)</p><p><b> {</b></p><p> cur = int_stack[ti];</p><p> if(k<0||action[cur][k]==0) // 踩空,或者出現(xiàn)非法字符</p><p><b> ti
99、 = -1;</b></p><p> else if(action[cur][k]>0) //入棧,等待規(guī)約</p><p><b> {</b></p><p> int_stack[++ti] = action[cur][k]; //數(shù)字棧</p><p> char_stack[++t
100、c] = s[i]; //字符棧</p><p> k = exch(s[i++]);</p><p><b> }</b></p><p> else if(action[cur][k] == -4) //規(guī)約完成,說(shuō)明是符合要求</p><p><b> ti = 0;</b></
101、p><p> else // 可以規(guī)約</p><p><b> {</b></p><p> --i; //說(shuō)明輸入的字符s[i-1]還沒(méi)有用,此時(shí)它不進(jìn)棧,故i--,以便下次取到的是要s[i-1];</p><p> ti -= cnt[ -action[cur][k] ]%10; // 取ri的長(zhǎng)度,出棧這么
102、多個(gè)的字符</p><p> tc -= cnt[ -action[cur][k] ]%10;</p><p> char_stack[++tc] = cnt[ -action[cur][k] ]/10; // 取產(chǎn)生式的左邊變量,進(jìn)行規(guī)約。</p><p> k = exch( char_stack[tc] );</p><p>
103、<b> }</b></p><p><b> }</b></p><p> if(ti == 0)</p><p> printf(" %s √ Right!\n\n",s);</p><p> else printf("
104、 %s × Wrong!\n\n",s);</p><p><b> }</b></p><p> int main()</p><p><b> {</b></p><p> char str[100];</p><p> prin
105、tf("判斷符號(hào)串是否符合如下文法:\n\n\tS→BB\n\tB→aB\n\tB→b\n\n");</p><p> while(printf("輸入符號(hào)串: ")&&gets(str)&&str[0])</p><p> judge(str);</p><p><b> re
106、turn 0;</b></p><p><b> }</b></p><p> 4.4 程序運(yùn)行截圖</p><p><b> 4.5 小結(jié)</b></p><p> LR(0)分析器規(guī)約沒(méi)有平時(shí)學(xué)的那么輕松,在實(shí)驗(yàn)的過(guò)程中我還是借助了老師、同學(xué)以及參考書(shū)的力量來(lái)完成改課程設(shè)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 編譯原理課程設(shè)計(jì)--- 語(yǔ)法分析器
- 編譯原理課程設(shè)計(jì)---語(yǔ)法分析器
- 編譯原理課程設(shè)計(jì)--語(yǔ)法分析器
- 編譯原理語(yǔ)法分析器課程設(shè)計(jì)
- 編譯原理詞法分析器語(yǔ)法分析課程設(shè)計(jì)
- 語(yǔ)法分析課程設(shè)計(jì)---編譯原理語(yǔ)法分析器的設(shè)計(jì)與實(shí)現(xiàn)
- 編譯原理課程設(shè)計(jì)-詞法語(yǔ)法分析器
- 編譯原理課程設(shè)計(jì)--表達(dá)式語(yǔ)法分析器
- 編譯原理課程設(shè)計(jì)--pascal語(yǔ)言詞法、語(yǔ)法分析器設(shè)計(jì)
- 編譯原理課程設(shè)計(jì)--構(gòu)造lr(0)分析法語(yǔ)法分析器
- c-minus詞法分析和語(yǔ)法分析設(shè)計(jì)編譯器編譯原理課程設(shè)計(jì)
- 編譯原理課程設(shè)計(jì)--c-編譯器詞法分析與語(yǔ)法分析的實(shí)現(xiàn)
- 課程設(shè)計(jì)----編譯原理詞法分析器
- 編譯課程設(shè)計(jì)-遞歸下降語(yǔ)法分析
- 編譯原理課程設(shè)計(jì)詞法分析器文檔
- 編譯原理課程設(shè)計(jì)報(bào)告詞法分析器
- 編譯原理語(yǔ)法分析
- 編譯原理課程設(shè)計(jì)報(bào)告之詞法分析器
- 編譯原理課程設(shè)計(jì)---ll(1)遞歸下降分析器
- 編譯原理課程設(shè)計(jì)-lr分析器總控程序的實(shí)現(xiàn)
評(píng)論
0/150
提交評(píng)論