真的有Flex ++扫描仪吗?

时间:2012-07-13 22:31:27

标签: c++ bison yacc lex flex++

我正在运行Debian Squeeze,我使用apt-get install flex安装了flex / flex ++。

但是我注意到flex ++只是flex的sym链接。那么,真的存在一个“程序”flex ++来生成c ++扫描仪,或者只是一个我应该切换的flex标志?

此外,常见问题:互联网上的许多示例都无法在flex或flex ++下“编译”。 Flex给出以下错误:

test.lex:1: invalid character: %
...

处理输入时只需:

%name Test

这里有什么问题?

Flex / Flex ++版本为2.5.35

1 个答案:

答案 0 :(得分:4)

实际上有一个Flex ++项目,但它与原始的Flex分开:

Flex确实支持生成用于C ++的扫描程序代码,但它被归类为实验性的(尽管它已存在很长时间了):

符号链接的解释是某些程序根据它们的调用方式修改它们的行为。出于兼容性原因,他们会检查argv[0]并查看可执行文件名称。例如,当以flex++运行时,它可以为C ++支持启用-+标志。

(BusyBox使用这种技术让一个二进制文件表现为多个单独的程序,节省空间。)