Re[2]: Pitanje za asistenta
Hello Sacci,
Monday, January 16, 2006, 5:06:08 PM, you wrote:
> 1. Potpuno se slazem sa kolegom u vezi ovog i slicnih problema,naime CUP
> ( a verovatno i BYACCJ ) pocnu da uparuju prema najblizoj smeni za error (
> u zavisnosti od tokena koji su predhodili ),pa ako se data smena ne zavrsi
> odgovarajuce ( kao sto bi ovde bila neophodna D_MALA_Z ) ,CUP ne pokusa
> da upari sa nekom "sirom" smenom,tj. u ovom slucaju sa instr::=error
> TACKA_ZAREZ , ili sa onom koja bi trebala da hvata greske u IF kontroli (
> kao sto je asistent napisao ),... i baci se exception,...
>
> 2. Jedan kolega je vec ranije vise puta opstavljao pitanje: kako da se
> parser razlicito ponasa u obicnim instrukcijama i onim u klasama ili u
> telima funkcija,tj. KAKO da se preskoci kontrola do ' } ' ,jer ce CUP
> upariti "uzi" error,za npr.
> if(x<y)
> x = a+b;
> g=3;
> f(2,5 ,,, ) ;
> endif
> i opraviti se uspesno od greske ( naravno ako iza error simbola postoji
> dovoljan broj tokena koji se uspesno mogu parsirati <--- iz CUP manula,a
> taj broj je odredjen sa error_sync_size u lr_parser.java i po defaultu je 3
> ),ali nece i ne moze da preskoci kontrolu do kraja jer iako postoji takav
> oporavak u nasoj specifikaciji,parser se vec oporavio,...
>
> 3. Ovaj primer koji je asistent naveo nije ni prema specifikaciji,zar ne
> treba bilo koji skup instrukcija > 1 instrukcjie staviti u '{' '} ' ?
>
> 4. Oporavke koje asistent navodi da treba da postoje kao "najsiri",npr.
> izmedju BEGIN END.,ili izmedju { },nije naravno problem napisati,ali koja
> to greska postoji koju CUP prvo nece pokusati da upari "uze" ( a prema
> problemu 1. to uglavnom znaci exception ili neko neocekivano ponasanje
> programa ),tako da ovi "siri' oporavci ne rade sto bi trebalo!
Sto se tice tih sirih oporavaka, koliko sam ja shvation oni sluze za slucaj da
neki od uzih oporavak ne odradi posao. NPR:
program greska;
begin
greska = nematackazarez
end.
Ovakvu gresku moze samo BEGIN error END da ti detektuje.
--
Best regards,
Igor mailto:stojkovic7@verat.net
Monday, January 16, 2006, 5:06:08 PM, you wrote:
> 1. Potpuno se slazem sa kolegom u vezi ovog i slicnih problema,naime CUP
> ( a verovatno i BYACCJ ) pocnu da uparuju prema najblizoj smeni za error (
> u zavisnosti od tokena koji su predhodili ),pa ako se data smena ne zavrsi
> odgovarajuce ( kao sto bi ovde bila neophodna D_MALA_Z ) ,CUP ne pokusa
> da upari sa nekom "sirom" smenom,tj. u ovom slucaju sa instr::=error
> TACKA_ZAREZ , ili sa onom koja bi trebala da hvata greske u IF kontroli (
> kao sto je asistent napisao ),... i baci se exception,...
>
> 2. Jedan kolega je vec ranije vise puta opstavljao pitanje: kako da se
> parser razlicito ponasa u obicnim instrukcijama i onim u klasama ili u
> telima funkcija,tj. KAKO da se preskoci kontrola do ' } ' ,jer ce CUP
> upariti "uzi" error,za npr.
> if(x<y)
> x = a+b;
> g=3;
> f(2,5 ,,, ) ;
> endif
> i opraviti se uspesno od greske ( naravno ako iza error simbola postoji
> dovoljan broj tokena koji se uspesno mogu parsirati <--- iz CUP manula,a
> taj broj je odredjen sa error_sync_size u lr_parser.java i po defaultu je 3
> ),ali nece i ne moze da preskoci kontrolu do kraja jer iako postoji takav
> oporavak u nasoj specifikaciji,parser se vec oporavio,...
>
> 3. Ovaj primer koji je asistent naveo nije ni prema specifikaciji,zar ne
> treba bilo koji skup instrukcija > 1 instrukcjie staviti u '{' '} ' ?
>
> 4. Oporavke koje asistent navodi da treba da postoje kao "najsiri",npr.
> izmedju BEGIN END.,ili izmedju { },nije naravno problem napisati,ali koja
> to greska postoji koju CUP prvo nece pokusati da upari "uze" ( a prema
> problemu 1. to uglavnom znaci exception ili neko neocekivano ponasanje
> programa ),tako da ovi "siri' oporavci ne rade sto bi trebalo!
Sto se tice tih sirih oporavaka, koliko sam ja shvation oni sluze za slucaj da
neki od uzih oporavak ne odradi posao. NPR:
program greska;
begin
greska = nematackazarez
end.
Ovakvu gresku moze samo BEGIN error END da ti detektuje.
--
Best regards,
Igor mailto:stojkovic7@verat.net
- References:
- Pitanje za asistenta
- From: Borislav Nikolic <delija_b@yahoo.com>
- Re: Pitanje za asistenta
- From: "Sacci" <sacci@galeb.etf.bg.ac.yu>
- Pitanje za asistenta
Previous by date: Problem: CUP
Next by date: shtampanje cup-a..
Previous by thread: Re: Pitanje za asistenta Next by thread: Za asistenta
Previous by thread: Re: Pitanje za asistenta Next by thread: Za asistenta