编写满足以下要求的“语句”语法:
- 跳过是一个有效的语句
- 形式的赋值
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
| ID ':=' E
| S ';' S
;
E 和 SKIP 必须有另一条规则,ID 是词法标记。
这个怎么样?我不确定什么会被视为“有效”算术表达式以及什么会被视为有效标识符,但这样的事情怎么样?
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