«« ( Date ) »» // «« ( Thread ) »» // ir4pp1 - 2007

Re: Ispis objekata neke klase

by Aleksandar Milicevic
nedelja, 21. januar 2007 - 10:23.

On 1/21/07, Marko Skocic <markos84@verat.net> wrote:

Ne vidim kako se iz tabele simbola moze doci do imena klase. Od objekta
neke klase (lokalna promenljiva a) postoji referenca samo ka strukturnom
cvoru Class, koji poseduje referencu ka poljima klase, ali ne i ka objektnom
cvoru u kome se u polju name cuva trazeno ime.


To je zbog iskusnog, "objektno dezorjentisanog", dizajna tabele simbola. To
je neka nova programska paradigma, cuo sam da ima mnogo potencijala.

Drugim recima, ako ne promenimo strukturu tabele simbola (sto ne smemo) ili
ako ne iskoristimo/napravimo neku dodatnu strukturu u kojoj bi cuvali ovu
informaciju tesko da mozemo da izvedemo da se ispise kao sto ste vi naveli.


Nemoj da menjas strukturu, vec resis problem na "quick and dirty" nacin, to
ti je standardna praksa :)
Npr, dodas ovako nesto u klasu Tab.

public static String getClassName(Struct type) {

if (type.kind != Struct.Class) {
return "";
}

// find Type obj wihch points to given Struct object
// in order to retrieve class name
for (Scope s = topScope; s != null; s = s.outer)
for (Obj p = s.locals; p != null; p = p.next)
if (p.kind == Obj.Type && p.type == type)
return p.name;

return ""; //should never get here

}

--
Pozdrav,
Aleksandar Milicevic
aca.milicevic@gmail.com