解决语法歧义
Resolving ambiguity of the grammar
我有这样的语法规则;
S -> S and S
S -> S or S
S -> (S)
S -> true | false
-- and , or , ( , ) , true ,false are terminals --
我可以发现这个语法有歧义,但是我该如何修改这个语法来解决歧义?
标准方法是给他们 precedence/associativity:
S -> S or A | A
A -> A and P | P
P -> (S)
P -> true | false
我有这样的语法规则;
S -> S and S
S -> S or S
S -> (S)
S -> true | false
-- and , or , ( , ) , true ,false are terminals --
我可以发现这个语法有歧义,但是我该如何修改这个语法来解决歧义?
标准方法是给他们 precedence/associativity:
S -> S or A | A
A -> A and P | P
P -> (S)
P -> true | false