資源簡介
一、實(shí)驗(yàn)?zāi)康?實(shí)現(xiàn)一個(gè)遞歸下降語法分析程序,識別用戶輸入的算術(shù)表達(dá)式。
二、實(shí)驗(yàn)主要內(nèi)容
1、文法如下:
E?TE`
E’?+TE’|-TE’|e
T?FT`
T’?*FT’|/FT’|e
F?(E)|i
2、求取各非終結(jié)符的First及Follow集合
3、編程實(shí)現(xiàn)下降遞歸分析法,識別從鍵盤輸入的關(guān)于整數(shù)或浮點(diǎn)數(shù)的算術(shù)表達(dá)式(在此,上述文法中的i代表整數(shù)或浮點(diǎn)數(shù))
4、對于語法錯(cuò)誤,要指出錯(cuò)誤具體信息。
代碼片段和文件信息
import?java.io.*;
import?java.lang.*;
import?java.util.*;
public?class?yf{
????
????void?e(String?buf){System.out.println(“000“);
????????t(buf);
????????e1(buf);
????????
????}
????
????void?e1(String?buf)
????{System.out.println(“01“);
????????if(sym==‘+‘)
????????{
????????????scan(buf);
????????????t(buf);
????????????e1(buf);
????????}
????????else?{if(sym==‘-‘)
????????????????{
????????????????????scan(buf);
????????????????????t(buf);
????????????????????e1(buf);
????????????????}
????????????????else{
????????????????????if(sym!=‘#‘&&sym!=‘)‘)
????????????????????error();System.out.println(“001“);
????????????????}
????????????}
????}
????void?t(String?buf)
????{System.out.println(“02“);
????????f(buf);
????????t1(buf);
????}
????void?t1(String?
評論
共有 條評論