Backus-Naur形式(BNF)递归

时间:2015-10-19 18:11:33

标签: bnf

我在如何在BNF中表达递归方面遇到了麻烦。 A'术语'在我的情况下,可以通过值,乘法和除法(图中所示)形成,我想出了以下内容:

<term> ::= <value>
              | <value> “*”
              | <value> “/”

1 个答案:

答案 0 :(得分:2)

递归规范是一种规范,其中非终端在生产规则中递归出现。 看看下面的语法,它是一个包含+,*,$(取幂)的递归规范,并使用BNF表示法:

 <exp>     := <exp> + <term> | <term>
 <term>    := <term> * <factor> | <factor>
 <factor>  := <factor> $ <primary> | <primary>
 <primary> := id

正如您所看到的,LHS中的所有非终端:=也在生产中(RHS),因此称为递归BNF表示法。