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

How to use value of std::string as pattern for Flex rule?

本文关键字:Flex 规则 模式 何使用 string std      更新时间:2023-10-16

是否可以使用std::string作为Flex规则的模式??

的例子:

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

至少如果我明白你在问什么,答案是否定的。

为Flex扫描器指定的模式需要是常量——也就是说,当Flex运行时,它将它们转换为状态机。它生成的代码主要是一组用于状态机的表。要做到这一点,Flex本身运行时必须知道所有涉及的字符串/模式。

说句题外话,真的没有GNU Flex这样的东西。Flex不是GNU软件