Устранение неоднозначности грамматики
У меня есть такие правила грамматики;
S -> S and S
S -> S or S
S -> (S)
S -> true | false
-- and , or , ( , ) , true ,false are terminals --
Я могу выяснить, что эта грамматика неоднозначна, но как я могу изменить эту грамматику, чтобы решить эту двусмысленность?
1 ответ
Решение
Стандартный подход - дать им приоритет / ассоциативность:
S -> S or A | A
A -> A and P | P
P -> (S)
P -> true | false