Re: Par Pitanja DZ3
Pazi! nVars predstavlja ukupan broj parametara, a level treba da predstavlja
broj formalnih parametara !
Klasa Scope ima i atribut nVars (broj polja u tom opsegu), koji metoda
Tab.insert inkrementira kada uspesno ubaci novi objekat!
Iskoristi to.>Pri deklaraciji metoda moze se desiti da se pojavi ponovljena
deklaracija.
int error(int x, char c, char c){...}
Nisam bas siguran da je gornja situacija korektna. Kako sada ta tvoja
f-ja da
razlikuje koju od promenljivih u ovom slucaju C adresiras? Ja mislim da
je
potrebno da se u definiciji f-je pojave sve razlicite promenljive, a tek
pri
pozivu one mogu biti iste tj. ako bi se gornja f-ja pozvala sa int i =
error
(x,c,c) sve bi trebalo da funkcionise.
Naravno, ovo jeste nekorektna deklaracija, medjutim, nije problem u tome
da
li je ovo ispravno ili ne ! Problem je u tome sto pri pokusaju da se ubaci
CHAR C drugi put u TOPSCOPE.locals, metoda TAB.INSERT vraca upravo onaj
prvi
CHAR C, koji je vec u TOPSCOPE.locals . Na osnovu ovoga, ne moze da se
'provali' da li je drugi CHAR C uspesno ili ne ubacen u TS.locals .
Pogledaj
ovo :
public static Obj insert (int kind, String name, Struct type) {
// check for duplicate
for (Obj p = topScope.locals; p != null; p = p.next)
if (p.name.equals(name)) {
error(name + " already declared");
return p;
}
....
Dakle, pokusavas da u TS.locals drugi put ubacis CHAR C. Posto se ovaj Obj
vec nalazi u TS.locals, TAB.INSERT vraca pronadjeni Obj CHAR C ( prvi ) i
kada u parseru pokusas da ih uporedis ( da bi znao da li je uspesno
ubacen,
obzirom da tekstualna poruka o gresci za parser ne znaci nista ), sa
recimo,
Obj1.equals(Tab.insert(Obj1.kind,Obj1.name,Obj1.type) --> dobijes
jednakost
iako operacija nije uspela. ( Ako je operacija uspesna vraca se ubaceni
Obj
)---> Dakle u oba slucaja se dobije jednakost....
Da li mesto (return p) u Tab.insert staviti (return noObj) i tako
promeniti
clasu Tab?... To je bilo pitanje.
- Follow-Ups:
- Re: Par Pitanja DZ3
- From: igork@verat.net
- Re: Par Pitanja DZ3
Previous by date: Re: C / C++ problem
Next by date: Re: Par Pitanja DZ3
Previous by thread: Re: PITANJE ZA PROF> Deklaracija vise promenljivih bez liste (C++) Next by thread: Re: Par Pitanja DZ3
Previous by thread: Re: PITANJE ZA PROF> Deklaracija vise promenljivih bez liste (C++) Next by thread: Re: Par Pitanja DZ3