如何使用std :: string的值作为Flex规则的模式?

时间:2013-01-10 19:16:45

标签: c++ gnu flex-lexer

是否可以使用std :: string作为Flex ??

中规则的模式

示例:

%{
...
string foo
...
%}
...
%%
foo {}
%%
...

1 个答案:

答案 0 :(得分:3)

至少如果我理解你在问什么,答案就是否定。

为Flex扫描程序指定的模式需要是常量 - 即,当Flex运行时,它将它们转换为状态机。它生成的代码主要是状态机的一组表。为此,当Flex本身运行时,必须知道所涉及的所有字符串/模式。

顺便说一下,实际上没有GNU Flex这样的东西。 Flex不是GNU软件。