O ficheiro deve conter na terceira parte a função yywrap, exemplo:
/* ficheiro inteiro.lex */ %{ int nlinhas=0; %} %% [0-9]+ printf("inteiro %s\n",yytext); [A-Za-z]([A-Za-z]|[0-9])* printf("identificador %s\n",yytext); <<EOF>> printf("FIM\n"); /* fim do ficheiro ou ctrl+D(unix) ctrl+Z seguido de Return (dos)*/ . %% int yywrap() { return(1); /* opcional */ } int main() { yylex(); // }
Para ciar o programa em C, deve utilizar um dos seguintes comandos:
para gerar o ficheiro lex.yy.c
c:\flex> flex inteiro.lexpara gerar o ficheiro inteiro.c
c:\flex> flex -ointeiro.c inteiro.lex
Depois de criado o ficheiro inteiro.c, este deve ser compilado.
No directório do Visual C ("C:\Program Files\Microsoft Visual Studio\VC98\Bin" no caso da versão 6.0) existe o ficheiro vcvars32.bat, que define todas as variáveis de ambiente para poder ser corrido o compilador de C na linha de comandos.
O ficheiro batch vcvars32.bat deve ser corrido uma só vez na linha de comando onde vamos compilar o programa.
Deve de seguida ser executado o comando de compilação:
c:\flex> cl inteiro.c Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 12.00.8804 for 80x86 Copyright (C) Microsoft Corp 1984-1998. All rights reserved. inteiro.c Microsoft (R) Incremental Linker Version 6.00.8447 Copyright (C) Microsoft Corp 1992-1998. All rights reserved. /out:inteiro.exe inteiro.obj
Por fim podemos correr o analisador léxico:
c:\flex> inteiro