«« ( Date ) »» // «« ( Thread ) »» // ri4pp - 2006

LR(1)

by Rade Jakovljevic
četvrtak, 16. mart 2006 - 17:29.

Imam nekoliko problema sa LR(1) gramatikama, molim sve za pomoc, a
pogotovo profesora i asistenta.

Radi se o zadatku koji je primer za kreiranje parsera LR(1) gramatike sa
predavanja u dokumentu RI4PP_BUP2.doc (strana 4 pa nadalje).

1. Zanimaju me neki detalji o konstruciji karakteristicnog automata
(SLIKA na str. 5), tj. kako se odredjuju predikiconi simboli u pojedinim
konfiguracijama nekog stanja? Da li su to svi simboli iz FOLLOW skupa
neterminala sa leve strane smene? Ako je tako zasto onda u stanju
trouglic i stanju ax nema markera kraja kao predikcionog simbola u
konfiguracijama <A>-> *a,a i <A>->a*,a. Zar ne bi trebalo da ove
konfiguracije budu <A>->*a,{a,-|} i <A>->a*, {a,-|}?

2. Ako su ove konfiguracije koje sam naveo na kraju 1. tacne tj. sadrze
-|, kako se onda odredjuje da li se u kontrolnoj tabeli za stanje ax i
kolonu -| pise REDUCE(3) (na osnovu <S>->a*,-|)ili REDUCE(4) (na osnovu
<A>->a*, {a,-|}?

3. Kako se u ovom zadatku doslo do toga da je ACCEPT u vrsti -|0 i
koloni -|, tj. kako se uopste doslo do toga da je ovde REDUCE(0), posto
je za stanje -|0 konf. <S'>-><S>-|*, {epsilon} , a ne
<S'>-><S>-|*, {-|}?

Hvala unapred na pomoci.

Rade