Usage of internal yy* variables (and that includes
yylineno) is forbidden in flex 2.5.x.
Logged In: YES
Actually, I think some of this is a mistake in flex.
The '%option noyylineno' in cfg.l should make flex NOT
define the yylineno symbol because I want to keep up with
line numbers, not have flex do it for me (because I do it
needing more functionality than flex's keeping up with it
However, not being able to assign to YY_CURRENT_BUFFER looks
likes it's no longer valid. But this is okay because from
looking at the generated scanner, it will now return NULL if
there is no current buffer anymore (previously it would just
be pointed to wherever the last buffer was--even it had been
But I need to figure out which version of flex this
YY_CURRENT_BUFFER change started in and #if/#endif that
assignment out (because it still needs to be there for old
versions of flex)
Thanks for bringing these issues to my attention. I'll try
to contact the flex list about fixing the '%option
Logged In: YES
> The '%option noyylineno' in cfg.l should make flex NOT
> define the yylineno symbol
Hm, it shoud work, but I won't bet my head on it :)
There was some struggling on the flex mailing list about
what is the "external api" of flex. The developers wanted to
have the yy* namespace for internal usage except where
explicitely documented, which was not the case with yylineno :/
That is why I suggest not using yylineno but another name.
Oh ok... Well, I'll wait and see if my bug report on
lex.sf.net is ever tended to. But I guess it won't hurt to
rename it of course.
Log in to post a comment.