0

我有这样的语法规则;

S -> S and S
S -> S or S
S -> (S)
S -> true | false

-- and , or , ( , ) , true ,false are terminals -- 

我可以发现这个语法有歧义,但是我该如何修改这个语法来解决歧义呢?

4

1 回答 1

1

标准方法是赋予它们优先级/关联性:

S -> S or  A | A
A -> A and P | P
P -> (S)
P -> true | false
于 2015-11-14T10:48:40.243 回答