0
寫了一個「聲明」語法滿足以下要求:編寫符合下列要求的明確聲明的語法:
- 跳躍是一個有效的語句
- 分配形式
x := E
的是一個有效的聲明,其中x是一個標識符,E是一個 算術表達式 - 兩個語句的組成S0; S1是一個有效的語句
我有以下的解決方案,但我不知道這是否是正確的:
x:: E|skip|s0 E|s1 E
寫了一個「聲明」語法滿足以下要求:編寫符合下列要求的明確聲明的語法:
x := E
的是一個有效的聲明,其中x是一個標識符,E是一個 算術表達式我有以下的解決方案,但我不知道這是否是正確的:
x:: E|skip|s0 E|s1 E
這個怎麼樣?我不確定什麼會被視爲「有效」的算術表達式,什麼會被認爲是有效的標識符,但是這樣的事情呢?
S :: 'skip'
S :: IDENTIFIER ':=' E
S :: S | S ';' S
A1 :: '+' | '-'
A2 :: '*' | '/'
NBR :: '1'|'2'|'3'|'4'|'5'|'6'|'7'|'8'|'9'|'0'
O :: NBR /* remove this if arithm. expression only on identifiers */
O :: IDENTIFIER
O :: '(' E ')'
F :: O
F :: O A1 O
E :: F A2 F
S:
SKIP
| ID ':=' E
| S ';' S
;
必須有針對E其他規則和SKIP和ID是詞法標記。
聽起來我們可以假設表達式已經被定義爲E,並且不需要在賦值關心的語法部分中定義。雖然我可能是錯的。 – cHao 2013-03-05 22:21:24