нельзя использовать автоматически сгенерированный файл flex?

#c #visual-studio-2008 #flex-lexer #lexer

#c #visual-studio-2008 #flex-lexer #lexer

Вопрос:

Я использую flex lexer в качестве лексера для моего проекта компилятора, и у меня есть эта функция для изменения входного потока lexer следующим образом:

.l

 void initLexer(string code) {
    lineNumber = 1;
    columnNumber = 0;
    currentStringIndex = 0;
    yy_delete_buffer(YY_CURRENT_BUFFER);
    YY_BUFFER_STATE my_string_buffer = yy_scan_string("sh");
    yy_switch_to_buffer(my_string_buffer);
}
  

и я использую следующие параметры для генерации подходящих подпрограмм

 %option nounput 
%option nomain nodefault
%option noyywrap
%option warn
%option c  
  

после того, как я запускаю инструмент flex lexer и получаю автоматически сгенерированный cpp-файл, я пытаюсь создать свой проект, но он не может распознать

 error C2065: 'yy_current_buffer' : undeclared identifier    
error C3861: 'yy_delete_buffer': identifier not found   
error C3861: 'yy_scan_string': identifier not found 
error C3861: 'yy_switch_to_buffer': identifier not found    
  

Почему?? Что мне делать??

Ответ №1:

Мое решение этой проблемы — я использовал flex из пакета MinGW