0
編寫一個簡單的BNF語法的C子集,支持多條語句,包括分配,如果其他,和while語句無遮擋的語句。爲你的非終結者使用有意義的名字(與神祕字母相比)。假設變量由單個字母表示並且是整數。假設標準優先規則適用於運算符*,/,+, - 和括號。確保包括關係運算符(==,!=,<,>,> =,和< =)。以下是你的語法有效的程序:BNF語法使用循環語句
a = -35;while (b > a);a = a + b;if (a >= 10);c = a;else c = b;
您可以擴展BNF妥善處理一個C塊語句作爲一個同時的一部分,或者如果要不?修改您的製作以支持: 而(B> A) A = A + B; 的printf(「環路」);使用
我想出了
<statement> ::= a=-35
<while> ::= while (b>a)
<assign>::= a = a + b;
<if>::= if (a >= 10)
<assign> ::= c=a;
<else>
<assign> ::= c = b;
<while>::= while (b>a)
<assign>:= a = a + b;
<statement>::= printf ("in loop");
這是一個有效的BNF語法上面的語法?
這功課嗎? – scravy
@scravy顯然,這是家庭作業(還有誰,但老師會感興趣的「C BNF語法的一個子集」?)。問題不在於它是否是功課(爲什麼作業應該與工作任務不同),而是如果海報正在自己努力解決問題,或者他只是想要轉儲代碼。所以我主要以正確的方向回答一些線索(除非它是一個非常具體的問題)。 – SJuan76