2

我正在尝试在 62 位(fedora)上编译 HLA,结果出现以下错误:

flex:输入规则太复杂(>= 32000 NFA 状态)

我在以下 URL 找到了解决方法:

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

增加 flexdef.h 中的定义:

#define JAMSTATE -32766 /* 标记对总是阻塞的状态的引用 */
#define MAXIMUM_MNS 31999
#define BAD_SUBSCRIPT -32767

重新编译一切,它应该都可以工作。

我下载了 flex SRPM,进行了上述更改,编译并安装了它,但它不起作用!:(

4

1 回答 1

2

谢谢@EJP 和@Wayne Sudo 我刚刚在以下位置找到了解决方案:

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

我修改了makefile

弹性 -8 -i ...

弹性 -Ca -8 -i ...

它奏效了!

flex --help

-Ca, --align      trade off larger tables for better memory alignment
于 2015-08-28T12:00:49.990 回答