Flex-lexer: состояние записи определяет в другой файл - PullRequest
0 голосов
/ 14 февраля 2019

Я хочу использовать начальные состояния flex внутри функций (и внешних файлов).Поэтому мне нужно, чтобы определения состояний находились внутри файла внешнего заголовка.

Можно ли как-нибудь разрешить запись определений во внешний файл?

Приведенный ниже код демонстрирует пример использованиясостояния внутри функций, определенных внутри l-файла

lexer.l

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

%x MY_STATE

%%

 [ rules ]

%%

1 Ответ

0 голосов
/ 14 февраля 2019

Должно работать следующее:

lexer.l

%x MY_STATE

%%

 [ rules ]

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

Не забывайте, что верхняя часть на самом деле предназначена только для объявлений.Определения должны идти в последнем разделе.Таким образом, они являются местами после #define секции

...