java實現語法分析

2021-08-13 03:24:22 字數 983 閱讀 3378

原始碼:github

首先改寫文法為ll(1)文法;然後為每乙個非終結符,構造相應的遞迴過程,過程的名字表示規則左部的非終結符;

過程體按規則右部符號串的順序編寫。

#include

void e();

void t();

void e1();

void t1();

void f();

char s[100];

int i, sign;

int main()

return1;}

void e()

}void e1()

else

if(s[i]!='#'&&s[i]!=')')

}}void t()

}void t1()

else

if(s[i]!='#'&&s[i]!=')'&&s[i]!='+')

}}void f()

}else

if(s[i]=='i')

++i;

else}}

(1)輸入i,預期顯示語句正確!    

(2)輸入iii,預期顯示語句有誤!

(3)輸入a,預期顯示語句有誤!

(4)輸入(i),預期顯示語句正確!

(5)輸入(a),預期顯示語句有誤!

(6)輸入(i+i),預期顯示語句正確!

(7)輸入(i+i,預期顯示語句有誤!

(8)輸入((i*i)+i)*i,預期顯示語句正確!

(9)輸入((((i+i*i)))),預期顯示語句正確!

(10)輸入(i+ia,預期顯示語句有誤!

(11)輸入i+i*i+i*a,預期顯示語句有誤!

#個人主頁:www.iooy.com

語法分析 自上而下分析

語法分析 是編譯過程的核心部分。它的任務是在詞法分析識別出單詞符號串的基礎上,分析並判定程式的語法結構是否符合語法規則。語言的語法結構是用上下文無關文法描述的。因此,語法分析器的工作本質上就是按文法的產生式,識別輸入符號串是否為乙個句子。這裡所說的輸入串是指由單詞符號 文法的終結符 組成的有限序列。...

LTP語法分析

詞性標註 part of speech tagging,pos 是給句子中每個詞乙個詞性類別的任務。這裡的詞性類別可能是名詞 動詞 形容詞或其他。採用863詞性標註集 tag description example a adjective 美麗 b other noun modifier 大型,西式...

語法分析總

表示出現一次或0次,表示出現0次或多次,表示是乙個整體 程式aint x 1,y 3 int fun int a return 2 a int main int a 3 printf d n fun a 程式a 就是個翻譯單元 乙個完整的c檔案是乙個翻譯單元 翻譯單元由若干個外部宣告和乙個檔案結束符...