Flex不识别类型(?r-s:pattern)的模式



我安装了flex 2.5.4版本。

每当我输入一个弹性程序的形式:

%{
#include<stdio.h>
%}
%%
(?i:foo) printf("foo found");
%%

我在行(?I:foo)上得到了无法识别的规则错误。。。

请让我知道我做错了什么。

感谢

如果您想使用模式标志,您需要升级您的flex版本。模式语法(?i:...)是在2.5.35版本中添加的(但您也可以更新到当前版本2.5.39)

注意:ubuntu有两个flex包:flexflex-old。从逻辑上讲,flex-oldflex的旧版本(实际上是2.5.4)。我不知道在什么情况下,ubuntu安装会包含过时的flex,但如果你发现自己安装了flex-old,你应该能够使用apt-get install将其替换为flex

相关内容

最新更新