Ficheiro .lex

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.lex

para gerar o ficheiro inteiro.c

c:\flex> flex -ointeiro.c inteiro.lex

Ficheiro .c

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

Ficheiro .exe

Por fim podemos correr o analisador léxico:

c:\flex> inteiro

Voltar