Устранение неоднозначности грамматики

У меня есть такие правила грамматики;

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
Другие вопросы по тегам