Рассмотрим грамматику ниже...
bexp -> bterm | bterm ‘||’ bexp
bterm -> bfact | bfact ‘&&’ bterm
bfact -> true | false | id | ‘(‘ bexp ‘)’
Предположим, мы расширяем BEXP с помощью '!' оператор для отрицания, изменив правило bfact следующим образом:
bfact -> true | false | id | '(' bexp ')' | '!' bexp
Назовем эту расширенную грамматику BEXP2. Как я могу доказать, что это неоднозначно?