On Sun, Sep 20, 2015 at 11:20 PM, Guy Harris <guy@xxxxxxxxxxxx> wrote:
> Currently, we require Flex, rather than Lex, but we don't require a version of Flex sufficiently new to support reentrant scanners.
>
> That's not a major issue yet, but it could potentially be an issue if we make more use of threading and have two threads in the same process
>
> 1) both reading Lucent/Ascend ISDN device text output files;
>
> 2) both reading Tektronix K12 text files;
>
> 3) both importing text files as captures;
>
> as those all involve Flex scanners. It *might* also come up if any of the other Flex-scanner code is run in more than one thread at once.
>
> If we also require a version of Flex that supports --header-file=, it could also let us clean up or even eliminate the runlex.sh script, as those versions of Flex can generate a .h files that declares functions.
>
> Flex 2.5.6 (from some time in 2002, I think) adds support for reentrant scanners. It also supports --header=, which was renamed to --header-file in Flex 2.5.19, released 2002-09-05.
>
> We'd also want to require Bison or Berkeley YACC, to generate reentrant parsers, for the Lucent/Ascend ISDN device text file reader.
I think requiring software released in 2002 is probably safe, we
already require much more recent versions of most other libraries.
Evan