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-complicited/

からmakefileを変更しました

フレックス -8 -i ...

フレックス -Ca -8 -i ...

そしてそれはうまくいきました!

からflex --help

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