我想在内部函数(和外部文件)中使用flex的启动状态。因此,我需要状态定义位于外部头文件中。
有什么方法可以将定义写入外部文件?
下面的代码显示了在l文件中定义的函数中使用状态的示例
lexer.l
%{
void changeState(){
YY_START = MY_STATE;
}
%}
%x MY_STATE
%%
[ rules ]
%%
答案 0 :(得分:0)
以下方法应该起作用:
lexer.l
%x MY_STATE
%%
[ rules ]
%%
void changeState(){
BEGIN(MY_STATE);
}
别忘了,上半部分实际上仅用于声明。定义应放在最后一部分。这样,它们位于#define
部分