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

Re: Pitanje - Savet

by Jovan Popovic
ponedeljak, 27. novembar 2006 - 09:37.

Inicijalizaciju statichkih promenljivih mozete postaviti i u main
metodu pre nego sto instancirate i pozovete parser. Ako definisete
neku klasu Brojach sa public static poljima nVarDecl za broj
deklaracija, vFuncDecl za broj funkcija onda ta polja mozete
inicijalizovati u main metodi kao:

public static void main(String args[]) throws Exception {

Brojach.nVarDecl = 0;
Brojach.nFuncDecl = 0;

FileReader r = new FileReader(args[0]);
Yylex skener = new Yylex(r);
parser p = new parser(skener);
Symbol s = p.parse();
}

Ovu main metodu mozete staviti u CUP fajl npr u parser code ali je mozete
da je stavite i u posebnu klasu koja ce inicijalizovati i pozvati parser.
Ranije je u domacim bilo problema sa CUP fajlovima u kojima je stavljen
kompletan java kod u akcije, parser code i action code. Ovde je problem u
tome sto CUP samo kopira taj java kod u generisani java fajl pa onda
standardni java kompajler pronalazi greske koje su napravljene u
generisanom fajlu pa vi morate da se vracate u CUP fajl da ih ispravite i
ponovo generisete parser. Debagovanje programa ako koristite eclipse je
skoro nemoguce.
Ako mozete pokusajte da java kod stavite u posebne klase tako da odmah
dobijete greske u kodu i eventualno odmah izdebagujete te greske, pa da
iz CUP fajla samo pozivate metode iz java fajlova.

Pozdrav,
Jovan

>
>> Moze li mi neko reci gde se inicijalizuju vrednosti brojaca za brojanje
>> recimo globalnih promenljivih. Da li u action code-u?
>
> Da.
>
>
>
> -----------------------------------------------------------------
> unsubscribe:
> minimalist@rti.etf.bg.ac.yu?subject=unsubscribe%20ir4pp1
> -----------------------------------------------------------------
>