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

Re: sym.EOF = -1

by Jovan Popovic
petak, 26. novembar 2004 - 08:14.

Ne znam zasto ali kada stavis:

%eofval{
return sym.EOF //definisan kao 0 (nula) u sym.java
%eofval}

JLex to uvek ignorise i uvek vraca -1 na kraju, bez obzira sta si
definisao za sym.EOF. Mozes da stavis da EOF uvek bude -1 ili da uopste ne
stavljas gore navedene redove efekat je uvek isti, uvek vraca -1 na kraju
fajla.

Pozdrav,
Jovan



> Mozda se secate da je na vezbama (nekim davnim) neko dobacio da bi sym.EOF
> konstanta trebalo da bude -1, gde je Jovan (asistent) to brze-bolje
> zamenio
> u Word fajlu... Sad, posto u .lex fajlu pise (to je neki od primera sa
> vezbi):
>
> %eofval{
> return sym.EOF //definisan kao 0 (nula) u sym.java
> %eofval}
>
> a kasnije u main() metodu klase valjda Primer4 stoji:
>
> while (token != sym.EOF) ...
>
> trebalo bi da sve radi, a kad se pojavi EOF da iskoci iz petlje i zavrsi
> rad. E, sad, meni ovo nije radilo, tj. obradi on sve ulazne tokene do EOF
> a
> onda se zaglupi, pa sam iz zezanja stavio token != -1 i proradilo je!!!!!
> Posle sam u sym.java stavio EOF = -1 i vratio token != sym.EOF i sad
> radi!!!! Je l' moguce da je JLex.Main ignorisao moju "preporuku" da
> generisana yylex() vraca sym.EOF ako ovaj nije -1????
>
> Poz, Vladimir
>
> -----------------------------------------------------------------
> unsubscribe:
> minimalist@titan.etf.bg.ac.yu?subject=unsubscribe%20ri4pp
> -----------------------------------------------------------------
>
>