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

designator problem

by Rade Jakovljević
sreda, 07. jun 2006 - 15:26.

Izvinjavam se zbog prethodne poruke (poslata je slucajno pre zavrsetka).

Evo ovako izgleda jedan deo gramatike vezano za designator smenu:

<designator>:=ID;
<designator>:=<designator> TACKA ID;
<designator>:=<designator> ( <act_pars> );

Sto znaci, da u prvoj smeni ID moze da bude identifikator neke promenljive,
polja klase ili naziv funkcije (metode).
Javlja se sledeci problem, ako imamo ovakav pogram:

...
struct A {
var int a;
}
...
int x() {}
...
var A x;

...
begin
x.a=2;
end;

Ovde je prvo deklarisana funkcija x, pa zatim promenljiva tipa A.
Ako se metoda checkIdentificator(String name) implementira kao u skripti,
onda ce parser ovde da javi semanticku gresku, jer ce pronaci identifikator
x koji je funkcija i koja nema u svom opsegu polje a, a ne ovaj koji je
referenca tipa A.

Da li postoji nacin da se algoritam modifikuje da radi kako treba ili mora
da se menja gramatika?

Pozdrav, Rade