0

次の要件を満たす「ステートメント」文法を記述します。

  • スキップは有効なステートメントです
  • フォームの割り当てはx := E有効なステートメントです。x は識別子、E は算術式です。
  • 2 つのステートメント S0 の構成。S1 は有効なステートメントです

次の解決策がありますが、それが正しいかどうかはわかりません。

x:: E|skip|s0 E|s1 E
4

2 に答える 2

1
S:
  SKIP
| ID ':=' E
| S ';' S
;

E には別のルールが必要であり、SKIP と ID は字句トークンです。

于 2013-03-05T22:09:07.940 に答える
0

これはどう?「有効な」算術式と見なされるものと、有効な識別子と見なされるものについてはわかりませんが、次のようなものはどうですか?

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
于 2013-03-05T22:05:53.297 に答える