6.40. Flex-2.5.35

Flex软件包包含一个能生成识别文本模式程序的工具。

预计编译时间: 0.7 SBU 包括测试
所需磁盘空间: 28 MB 包括测试

6.40.1. 安装 Flex

应用补丁修复C++扫描仪发生器中的bug,在使用GCC-4.4.3时,该bug会造成扫描器编译错误:

patch -Np1 -i ../flex-2.5.35-gcc44-1.patch

为编译 Flex 做准备:

./configure --prefix=/usr

编译这个软件包:

make

要测试结果 (about 0.5 SBU), 请执行:

make check

安装这个软件包:

make install

有些软件包试图在/usr/lib目录查找lex 库。可以创建一个符号链接来满足要求:

ln -sv libfl.a /usr/lib/libl.a

一些程序并不知道flex而是试图寻找 lex程序。 为了满足这些程序的需要, 我们将创建一个名为lex的脚本, 这个脚本调用flex并通过它来模仿lex的输出文件命名惯例:

cat > /usr/bin/lex << "EOF"
#!/bin/sh
# Begin /usr/bin/lex

exec /usr/bin/flex -l "$@"

# End /usr/bin/lex
EOF
chmod -v 755 /usr/bin/lex

如果愿意,可以安装 flex.pdf 文档文件:

mkdir -v /usr/share/doc/flex-2.5.35
cp    -v doc/flex.pdf \
         /usr/share/doc/flex-2.5.35

6.40.2. Flex 的内容

安装的程序: flex and lex
安装的库:: libfl.a and libfl_pic.a

简要描述

flex

是一个用来生成识别文本的模式程序的工具。模式识别在很多程序中是非常有用, 用户设置一些查询规则,然后 flex 可以生成一个查询程序。人们使用 flex 可以比亲自编写查询程序更便捷。

lex

lex仿真模式下运行flex的一个脚本

libfl.a

flex 库文件