Flex-lexer:写状态定义到不同的文件

问题描述 投票:0回答:1

我想在函数(和外部文件)中使用flex的开始状态。因此,我需要将状态定义放在外部头文件中。

有没有办法让定义写入外部文件?

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

lexer.l

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

%x MY_STATE

%%

 [ rules ]

%%
flex-lexer
1个回答
0
投票

以下应该有效:

lexer.l

%x MY_STATE

%%

 [ rules ]

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

不要忘记,上半部分实际上仅用于声明。定义应该放在最后一节。这样,他们就是#define部分之后的地方

© www.soinside.com 2019 - 2024. All rights reserved.