對下列文法,用遞迴下降分析法對任意輸入的符號串進行分析:
(1)e->tg
(2)g->+tg|-tg
(3)g->ε
(4)t->fs
(5)s->*fs|/fs
(6)s->ε
(7)f-> (e)
(8)f->i
#include
#include
#include
#include
/*(1)e->tg
(2)g->+tg|-tg
(3)g->ε
(4)t->fs
(5)s->*fs|/fs
(6)s->ε
(7)f-> (e)
(8)f->i
*/char a[50]
,b[50
],d[
200]
,e[10];
char ch;
int n1,i1=
0,flag=
1,n=5;
inte()
;inte1(
);intt()
;intg(
);ints()
;intf(
);void
input()
;void
input1()
;void
output()
;// 遞迴分析
// --------
void
main()
while
(ch!=
'#')
;//a陣列裡存的是我們輸入的字串
n1=j;
//字串長度
ch=b[0]
=a[0];
//第乙個字元
printf
("文法\t分析串\t\t分析字元\t剩餘串\n");
f=e1(
);if(f==0)
return
;//int count = 0;
if(ch==
'#')
}else
printf
("\n");
printf
("規則如下\n");
printf
("(1)e->tg\n(2)g->+tg|-tg\n(3)g->^\n(4)t->fs\n(5)s->*fs|/fs\n(6)s->^\n(7)f->(e)\n(8)f->i");
printf
("\n\n\n\n回車返回\n");
getchar()
;getchar()
;}//(1)e->tg
inte1()
inte()
intt()
// t-> fs
//(3)g->ε
//(2)g->+tg|-tg
intg()
else
if(ch ==
'-')
else
return(1
);}ints(
)//s->ε s->*fs|/fs
else
if(ch ==
'/')
else
return1;
}// f-> (e)
//(8)f->i
intf()
else
}else
if(ch==
'i')
else
return(1
);}//輸出分析字元
void
input()
//輸出剩餘串
void
input1()
void
output()
d[n]
='#'
;for
(j=3
;e[j]
!='#'
;j++
) k=k+1;
while
(d[k]
!='='
) d[n]
='#'
;}
遞迴下降分析程式
編譯原理 include include include file fp char sym char buff 100 int left p 0,right p 0 void proc e void proc e1 void proc t void proc t1 void proc f void ...
遞迴下降子程式
遞迴下降子程式 1 實驗目的 實現遞迴下降子程式的功能。2 語言描述 利用函式相互遞迴實現遞迴下降子程式的基礎功能。3 具體實現 include include include include include using namespace std char str 50 輸入要判斷的字串 int ...
遞迴下降分析程式
實驗一 遞迴下降分析實驗 專業 商業軟體 姓名 李嘉嘉 學號201506110247 一 實驗目的 練習構造遞迴下降語法分析程式的方法,熟悉上下文無關文法的使用,加深對課堂教學的理解 提高語法分析方法的實踐能力。二 實驗內容和要求 利用c語言構造語法分析程式。三 實驗方法 步驟及結果測試 原理分析及...