BNF:交换非终端位置在语法规则中对生产的影响

时间:2012-11-17 20:59:45

标签: recursion grammar bnf

我昨天和昨天花了7个小时的时间试图找到对作业中问题的明确答案。我已经看了几个小时关于BNF和EBNF的讲座,但都没有解决我的问题。我已经学会了负荷:)

我希望有人可以指出方向:

鉴于此语法

G = {N, T, S, P} 
T = {a, b, c, - , ×} 
N = {<goal>, <expr>, <term>, <factor>} 
S = <goal> 
P = 
<goal> ::= <expr> 
<expr> ::= <term> | <expr> - <term> 
<term> ::= <factor> | <term> × <factor> 
<factor> ::= a|b|c

然后将规则更改为:

<goal> ::= <expr>
<expr> ::= <term> | <term> - <expr> 
<term> ::= <factor> | <factor> × <term>
<factor> ::= a|b|c

它对生产有什么影响?

我只能看到它将LHS递归更改为RHS递归。我真的很想知道我错过了什么。

作业中的其他问题改变了我所回答的规则的顺序:级联制作中较低的规则具有更高的优先级。

1 个答案:

答案 0 :(得分:0)

在与讲师协商后,我确认唯一的区别是:它将LHS递归更改为RHS递归。