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

Re: Kako doci do tipa promenljive?

by Nikola Jelisavac
petak, 26. maj 2006 - 16:52.

>
> Kako se dolazi do tipa promenljive u sledecem CUP skriptu?
>
> var_decl ::= VAR type var_list SEMI ;
> var_list ::= var_list COMMA var_part;
> var_list ::= var_part ;
> var_part ::= IDENT:val {:
> Util.sem.checkVariableDeclaration(?TYPE?,val); :} ;

Ne mozes u okviru var_part da pozivas checkVariableDeclaration jer se var_part smenjuje pre var_decl pa ti u tom momentu nije poznat tip promenljivih.

Ja sam ovo resio tako sto sam u Util-u uveo pomocnu promenljivu spajiz tipa ArrayList, pa onda u smeni za var_part kazes nesto tipa spajiz.add(val).

Sledece sto treba da uradis je da dodas u smeni var_decl neki identifikator posle type(npr. ":typ"), da napravis for petlju u akcijama smene i da je provrtis za i = 0 do spajiz.size() i da u okviru petlje pozivas:

Util.sem.checkVariableDeclaration((Struct)typ,(String)spajiz.get(i))

ili sta ti vec treba, ali glavna je fora da ces sad imati informaciju o tipu i sacuvana imena svih promenljivih u spajiz-u.

Pozdrav,
Nikola