Я пытаюсь скомпилировать небольшое приложение лексического анализатора с помощью Flex.файл lex.yy.c действительно генерируется, но когда я добавляю его в свой проект в Visual Studio, он выдает десятки ошибок, утверждая, что не распознает структуры и функции, которые я определил в связанном заголовке.
Этозаголовок # include'd в файле, который я отправляю во Flex.
Кроме того, когда я пытаюсь устранить эти ошибки, создается впечатление, что некоторые из источников ошибок находятся в текстовом файле Flex Scripts, который я использовал длясначала сгенерируйте файл lex.yy.c или другие файлы, которые не имеют никакого отношения к моему проекту, такие как flexskel.cc
Почему он пытается скомпилировать несвязанные файлы?Я работаю с Windows 7 и Visual Studio 10.
Вот краткая версия файла, который я отправляю во Flex:
%{
#include <stdio.h>
#include "TokenInterface.h"
int lineCounter = 0;
%}
DIGIT [0-9]
LETTER [a-zA-Z]
%%
"START_PROG"
{
storeTokenInList(yytext, lineCounter, START_PROG);
fprintf(yyout,"\nSTART_PROG: %s\n",mostRecentToken->lexema);
return;
}
"END_PROG"
{
storeTokenInList(yytext, lineCounter, END_PROG);
fprintf(yyout,"\nEND_PROG: %s\n",mostRecentToken->lexema);
return;
} %%
void main(int argc, char* argv[])
{
token* mostRecentToken;
createEmptyTokenList();
yyin = fopen("c:\\Flex\\input.txt","r");
yyout = fopen("c:\\Flex\\output.txt","w");
yylex();
mostRecentToken = backToken();
while (mostRecentToken->tokenType != EOF)
{
yylex();
mostRecentToken = backToken();
}
printf("Flex Out.\n");
}