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

Re: Za asistenta

by Zdravko N
subota, 06. januar 2007 - 20:56.

Imam i ja jos par pitanja:

Posto u polje adr treba da upisujemo vrednost konstante, a to polje je tipa int, da li to znaci da u slucaju char konstante treba da upisemo njen kod (ako ne, onda sta?), mada se u javi koristi unicode kod kojeg to malo drugacije funkcionise .

Dalje, pokusavam da odredim vrednost konstante kod sledece smene:

num_or_char ::= NUMBER: val
{: Struct novi = Tab.noType;const_type = Tab.intType;
RESULT = novi; con_value = val; :}
|
CHARCONST :cval
{: Struct novi = Tab.noType; const_type = Tab.charType;
RESULT = novi; .... :};

Problem mi je to sto za NUMBER funkcionise u redu dok za CHARCONST kada stavim alias CHARCONST: cval (ili bilo koje drugo ime), parser baca ClassCastException. Kod koji se generise u parseru kada stavim alias je:
...
int cvalleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
int cvalright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;

*** String cval = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
...
i na liniji oznacenoj sa *** mi baca izuzetak, a kada rucno izmenim konverziju String i tip String u Character sve radi. Ne mogu da nateram parser da mi promenljiva cval bude tipa Character vec on automatski koristi String.

Ako bi asistent ili bilo ko drugi mogao da mi napise kako da izvucem vrednost konstante, i kao int radi upisivanja u polje adr, i kao char radi prepisivanja u JAVA fajl.

Pozdrav
Zdravko

__________________________________________________
Do You Yahoo!?
Tired of spam? Yahoo! Mail has the best spam protection around
http://mail.yahoo.com