Je suis totalement novice en matière de flex.
J'obtiens une erreur de construction lors de l'utilisation de flex. C'est-à-dire que j'ai généré un fichier .c à l'aide de flex, et lorsque je l'exécute, j'obtiens cette erreur :
1>lextest.obj : error LNK2001: unresolved external symbol "int __cdecl isatty(int)" (?isatty@@YAHH@Z)
1>C:\...\lextest.exe : fatal error LNK1120: 1 unresolved externals
Voici le fichier lex que j'utilise (extrait de aquí ):
/*** Definition section ***/
%{
/* C code to be copied verbatim */
#include <stdio.h>
%}
/* This tells flex to read only one input file */
%option noyywrap
%%
/*** Rules section ***/
/* [0-9]+ matches a string of one or more digits */
[0-9]+ {
/* yytext is a string containing the matched text. */
printf("Saw an integer: %s\n", yytext);
}
. { /* Ignore all other characters. */ }
%%
/*** C Code section ***/
int main(void)
{
/* Call the lexer, then quit. */
yylex();
return 0;
}
De même, pourquoi dois-je placer une fonction "main" dans le code de syntaxe lex ? Ce que je voudrais, c'est pouvoir appeler yylex() ; à partir d'un autre fichier c.