Search code examples
bisonflex-lexerhla

flex: input rules are too complicated (>= 32000 NFA states) (while compiling HLA on 62bit)


I'm trying to compile HLA on a 62bit (fedora) and ended up with the following error:

flex: input rules are too complicated (>= 32000 NFA states)

I found directions to address it at below URL:

http://westes.github.io/flex/manual/unnamed_002dfaq_002d88.html

Increase the definitions in flexdef.h for:

#define JAMSTATE -32766 /* marks a reference to the state that always jams */
#define MAXIMUM_MNS 31999
#define BAD_SUBSCRIPT -32767

recompile everything, and it should all work.

I downloaded the flex SRPM, made the above changes, compiled and installed it, but it did not work! :(


Solution

  • Thank you @EJP & @Wayne Sudo I just found a solution at:

    https://www.owlfolio.org/possibly-useful/flex-input-scanner-rules-are-too-complicated/

    I modified makefile from

    flex -8 -i ...

    to

    flex -Ca -8 -i ...

    and it worked!

    From flex --help

    -Ca, --align      trade off larger tables for better memory alignment