从EBNF到BNF的转换是什么?另外,最左边的派生是什么?

时间:2014-09-14 14:17:21

标签: bnf ebnf

我需要将其从EBNF转换为BNF。

<statement> ::= <ident> = <expr>
<statement> ::= IF <expr> THEN <statement> [ ELSE <statement> ] END
<statement> ::= WHILE <expr> DO <statement> END
<statement> ::= BEGIN <statement> {; <statement>} END

另外,我坚持这个:

E -> E+T | E-T | T
T -> T*F | T/F | F
F -> (E) | VAR | INT
VAR -> a | b | c
INT -> 0 | 1 | 2| 3 | 4| 5 | 6 | 7 | 8 | 9
  

修改语法以添加^运算符后,语法分配给表达式a^2^b*(c+1)?的最左边的派生是什么?您可能会发现首先为此表达式绘制解析树是方便的,并且然后找出最左边的推导。

我添加了G -> F^G | G然后获得G 2 G b E作为我的答案,但我不确定这是否正确。

0 个答案:

没有答案