我在如何在BNF中表达递归方面遇到了麻烦。 A'术语'在我的情况下,可以通过值,乘法和除法(图中所示)形成,我想出了以下内容:
<term> ::= <value>
| <value> “*”
| <value> “/”
答案 0 :(得分:2)
递归规范是一种规范,其中非终端在生产规则中递归出现。 看看下面的语法,它是一个包含+,*,$(取幂)的递归规范,并使用BNF表示法:
<exp> := <exp> + <term> | <term>
<term> := <term> * <factor> | <factor>
<factor> := <factor> $ <primary> | <primary>
<primary> := id
正如您所看到的,LHS中的所有非终端:=也在生产中(RHS),因此称为递归BNF表示法。