Re: [Flex-help] yyget_lineno missing in lex.yy.c
flex is a tool for generating scanners
Brought to you by:
wlestes
From: John G. <joh...@gm...> - 2016-07-07 21:46:45
|
Okay, as you suspected, this was all about the user having an ancient version of flex. Not sure how that got on his system, but when he replaced it with the current package (flex 2.6.0), everything worked fine. Thanks for your help. John > On Jul 6, 2016, at 7:05 PM, Will Estes <wes...@gm...> wrote: > > I have a vague memory that there was some cleanup regarding lex compatibility, but short of git bisect or re-reading the NEWS file, I couldn't tell you when that was. > > On Wednesday, 6 July 2016, 6:40 pm -0400, John Gibson <joh...@gm...> wrote: > >> Thanks, Will. >> >> I don't have Ubuntu, so I'm just going off info I got from the user. We've been using yyget_lineno and friends for a while. It certainly works in 2.5.35 using the -l flag. >> >> I'll ask my colleagues about losing lex compat. mode. Not sure whether this is still really necessary for us. The original code for this project does date from the mid'80s, though. ;-) >> >> John >> >> >>> On Jul 6, 2016, at 6:22 PM, Will Estes <wes...@gm...> wrote: >>> >>> You said Ubuntu 16.04 includes flex 2.5.4? That's ancient and the tokens you mention weren't added till after 2.5.4. >>> >>> Is that right, though? Seems odd that Ubuntu would be shipping that old version of flex. >>> >>> But the lex compatibility mode is your problem. The tokens you list are not a part of "lex"; they're a part of "flex". That is, they're in the list of things that gets left out if you say you want "lex". >>> >>>> On Wednesday, 6 July 2016, 3:13 pm -0400, John Gibson <joh...@gm...> wrote: >>>> >>>> Hi, >>>> >>>> The project I work with (https://github.com/rtcmix/rtcmix) embeds a lexer built with flex. This builds correctly using flex 2.5.35 (macOS) and all previous versions. We use the lex compatibility mode flag (-l). >>>> >>>> Recently, we received a report from a user on Ubuntu 16.04, which includes flex 2.5.4, about not being able to build our software. The problem is that the yyget_lineno, yyset_lineno, and yylex_destroy functions are not included in the lex.yy.c file generated by flex 2.5.4. Adding "%option yylineno" at the top of our .l file did not help -- not surprisingly, since the docs say that lex compat. mode already implies %option yylineno. We use no other options. >>>> >>>> Is there something simple that I'm missing here? Has something changed that requires us to compile differently than we've had to before? Or is there something missing in this user's installation? >>>> >>>> Thanks much, >>>> John >>>> >>>> >>>> ------------------------------------------------------------------------------ >>>> Attend Shape: An AT&T Tech Expo July 15-16. Meet us at AT&T Park in San >>>> Francisco, CA to explore cutting-edge tech and listen to tech luminaries >>>> present their vision of the future. This family event has something for >>>> everyone, including kids. Get more information and register today. >>>> http://sdm.link/attshape >>>> -- >>>> Flex-help mailing list >>>> Fle...@li... >>>> https://lists.sourceforge.net/lists/listinfo/flex-help >>> >>> -- >>> Will Estes >>> Flex Project Maintainer >>> wes...@gm... >>> https://github.com/westes/flex > > -- > Will Estes > Flex Project Maintainer > wes...@gm... > https://github.com/westes/flex |