Usuń niejednoznaczność w składni abstrakcyjnej w innych, aby napisać Prolog parsera DCG

P => Program K => Blokuj

S => Jedno polecenie

C => Polecenia

E => Wyrażenie

B => Boolean-expr

I => Identyfikator

N> Liczebnik

P :: = K.

K :: = początek końca C

C :: = C1; C2 | S

S :: = I: = E | jeśli (B) to S | jeśli (B) to S1 inaczej S2 | podczas gdy (B) robi S | powtarzaj C do (B) | K | drukuj E

E :: = - E | E1 + E2 | E1 - E2 | E1 E2 | E1 div E2 | E1 mod E2 | (E) | I | N

B :: = E1 = E2 | E1> E2 | E1 <E2 | E1! = E2 | nie B | B1 i B2 | B1 lub B2 | (B)

Powinienem usunąć dwuznaczności w E i B, abym mógł napisać parser DCG w prologu.

questionAnswers(2)

yourAnswerToTheQuestion