Flex-lexer:写入状态定义到另一个文件

时间:2019-02-14 03:41:49

标签: flex-lexer

我想在内部函数(和外部文件)中使用flex的启动状态。因此,我需要状态定义位于外部头文件中。

有什么方法可以将定义写入外部文件?

下面的代码显示了在l文件中定义的函数中使用状态的示例

lexer.l

%{
   void changeState(){
     YY_START = MY_STATE;
  }
%}

%x MY_STATE

%%

 [ rules ]

%%

1 个答案:

答案 0 :(得分:0)

以下方法应该起作用:

lexer.l

%x MY_STATE

%%

 [ rules ]

%%
  void changeState(){
     BEGIN(MY_STATE);
  }

别忘了,上半部分实际上仅用于声明。定义应放在最后一部分。这样,它们位于#define部分

之后