我想在函数(和外部文件)中使用flex的开始状态。因此,我需要将状态定义放在外部头文件中。
有没有办法让定义写入外部文件?
下面的代码显示了在l文件中定义的函数内使用状态的示例
lexer.l
%{
void changeState(){
YY_START = MY_STATE;
}
%}
%x MY_STATE
%%
[ rules ]
%%
以下应该有效:
lexer.l
%x MY_STATE
%%
[ rules ]
%%
void changeState(){
BEGIN(MY_STATE);
}
不要忘记,上半部分实际上仅用于声明。定义应该放在最后一节。这样,他们就是#define
部分之后的地方