当我们将BNF扩展到EBNF时,可以吗?

时间:2018-10-07 14:24:31

标签: bnf ebnf

<program> -> begin<stmt_list>end                                                   
<stmt_list> -> <stmt> | <stmt> ; <stmt_list>                                       
<stmt> -> <var> = <expression>                                                   
<var> -> A | B |C                                                                          
<expression> -> <var> + <var> | <var> - <var> | <var>

我认为第二行可以这样转换,但是解决方案没有建议

<stmt_list> -> <stmt> [; <stmt_list>

此外,最后一行被转换成这样

<expression> -> <var> {(+|-) <var>}

但我认为不能像

那样重复
 <var> + <var> - <var> + <var> ....

所以我认为应该将其更改为

<expression> -> <var> [(+|-) <var>]

0 个答案:

没有答案