解决语法的歧义

时间:2015-11-14 10:14:10

标签: programming-languages grammar ambiguous-grammar

我有类似的语法规则;

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

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

我可以发现这个语法含糊不清,但是如何修改这个语法来解决歧义呢?

1 个答案:

答案 0 :(得分:1)

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

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