Удалите Неоднозначность в абстрактном синтаксисе, чтобы написать DCG-парсер Prolog

P => Программа K => блок

S => Single-команда

C => команды

E => выражение

B => Boolean-выр

Я => IdentifierN>

 Цифра

P :: = K.

K :: = начало C конец

C :: = C1; С2 | S

S :: = I: = E | если (B), то S | если (B), то S1 еще S2 | в то время как (B) делать S | повторять C, пока (B) | К | печать E

E :: = - E | E1 + E2 | E1 - Е2 | E1 E2 | E1 div E2 | E1 мод E2 | (E) | Я | N

B :: = E1 = E2 | E1> Е2 | E1 < Е2 | E1! = E2 | не B | B1 и B2 | B1 или B2 | (В)

Я должен удалить двусмысленности в E и B, чтобы я мог написать анализатор DCG в прологе.

Ответы на вопрос(2)

Ваш ответ на вопрос