Domaci >> Semantika >> createItem problemi
U skripti za semanticku analizu pise:
algoritam CreateItem
ulaz : Simbol iz tabele simbola
izlaz : Item koji sadrži informacije o simbolu
1.Kreira se novi Item i u njega se prepisuju adresa, ime i tip
simbola.
2. Postavlja se vrsta simbola (polje *kind)*.
Ako je vrsta simbola:
2.1. Globalna promenljiva : vrsta Item-a je Static
2.2. Lokalna promenljiva ili parametar : vrsta
Item-a je Local
2.3. Polje u klasi : vrsta Item-a je Field
2.4. Element niza : vrsta Item-a je Elem
2.5. Funkcija ili konstanta: vrsta Item-a je Stack
3. Vraća se referenca na kreirani Item
dok u SemanticAnalyzer.ItemFactory stoji:
public Item CreateItem(Obj o)
dakle razlike su:
1. u kodu funkcija prelazi u metod (umesto u "stek"),
2. Item.konstanta uopste ne postoji u skripti, kao ni Item.Method ali
se koristi u kodu
3. u datom kodu ne postoji uopste podrska za parametre a za ulaz
Obj.LOCAL nema obrade ----- ovo je najmanji problem, vidi se izdaleka
ali ajd i to da spomenem...
Ono sto mene pre svega interesuje je: da li da se u ovakvim i slicnim
situacijama slobodno 100% oslonimo na skriptu a da po potrebi (kada hocemo
da prosirujemo klase zbog rada sa objektima i slicnim neobradjenim stvarima)
nadogradjujemo te nase objekte, a da uopste ne gledamo na dat izvorni kod,
vec da sami radimo nadogradnju? Sta je 100% tacno, skripta/primeri/neka
dokumentacija?
p.s. znam da bih znao odgovor na moje pitanje da sam procitao sve skripte do
kraja ali mislim da je ovo jedan od najbitnijih delova analizatora pa mislim
da bi bilo dobro da razjasnimo ovu funkciju do kraja...
postovanje & pozdrav
Milan Aleksic
algoritam CreateItem
ulaz : Simbol iz tabele simbola
izlaz : Item koji sadrži informacije o simbolu
1.Kreira se novi Item i u njega se prepisuju adresa, ime i tip
simbola.
2. Postavlja se vrsta simbola (polje *kind)*.
Ako je vrsta simbola:
2.1. Globalna promenljiva : vrsta Item-a je Static
2.2. Lokalna promenljiva ili parametar : vrsta
Item-a je Local
2.3. Polje u klasi : vrsta Item-a je Field
2.4. Element niza : vrsta Item-a je Elem
2.5. Funkcija ili konstanta: vrsta Item-a je Stack
3. Vraća se referenca na kreirani Item
dok u SemanticAnalyzer.ItemFactory stoji:
public Item CreateItem(Obj o)
{
Item item = new Item();
item.name = o.name ;
if(o instanceof Variable)
{
//Set the type and address for
Variable var = (Variable)o;
item.type = var.type;
item.adr = var.adr;
}
//Set a item kind
if (o.isA(ObjFactory.CONSTANT))
item.kind = Item.Con;
else if (o.isA(ObjFactory.STATIC))
item.kind = Item.Static;
else if (o.isA(ObjFactory.STATIC ))
item.kind = Item.Local;
else if (o.isA(ObjFactory.FIELD))
{
item.kind = Item.Fld;
}
else if (o instanceof Function)
{
item.kind = Item.Meth ;
item.obj = o;
}
return item;
}
dakle razlike su:
1. u kodu funkcija prelazi u metod (umesto u "stek"),
2. Item.konstanta uopste ne postoji u skripti, kao ni Item.Method ali
se koristi u kodu
3. u datom kodu ne postoji uopste podrska za parametre a za ulaz
Obj.LOCAL nema obrade ----- ovo je najmanji problem, vidi se izdaleka
ali ajd i to da spomenem...
Ono sto mene pre svega interesuje je: da li da se u ovakvim i slicnim
situacijama slobodno 100% oslonimo na skriptu a da po potrebi (kada hocemo
da prosirujemo klase zbog rada sa objektima i slicnim neobradjenim stvarima)
nadogradjujemo te nase objekte, a da uopste ne gledamo na dat izvorni kod,
vec da sami radimo nadogradnju? Sta je 100% tacno, skripta/primeri/neka
dokumentacija?
p.s. znam da bih znao odgovor na moje pitanje da sam procitao sve skripte do
kraja ali mislim da je ovo jedan od najbitnijih delova analizatora pa mislim
da bi bilo dobro da razjasnimo ovu funkciju do kraja...
postovanje & pozdrav
Milan Aleksic
- Follow-Ups:
- Re: Domaci >> Semantika >> createItem problemi
- From: "Jovan Popovic" <jovan@etf.bg.ac.yu>
- Re: Domaci >> Semantika >> createItem problemi
Previous by date: Re: Velicina tipova
Next by date: Re: Domaci >> Semantika >> createItem problemi
Previous by thread: Re: Velicina tipova Next by thread: Re: Domaci >> Semantika >> createItem problemi
Previous by thread: Re: Velicina tipova Next by thread: Re: Domaci >> Semantika >> createItem problemi