原始碼: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檔案是乙個翻譯單元 翻譯單元由若干個外部宣告和乙個檔案結束符...