FLEX E LEX

Disponível somente no TrabalhosFeitos
  • Páginas : 3 (615 palavras )
  • Download(s) : 0
  • Publicado : 23 de maio de 2015
Ler documento completo
Amostra do texto
O LEX / FLEX servem para gerar automaticamente programas (usualmente em “C”) fazendo a leitura de uma entrada, de modo a varrer um texto e/ou programa (“scanners”) a fim de obter uma seqüência deunidades léxicas (“tokens”). Os tokens gerados pelos programas criados pelo LEX/FLEX serão usualmente processados posteriormente por um programa que realizará a analise sintática. Lex => Gerador deanalisadores léxicos (UNIX – Ex.: Lex AT&T, Berkeley BSD) Flex => Gerador de analisadores léxicos (LINUX / Windows-DOS – GNU Lex) Entrada: Arquivo de descrição do analisador léxico Saída: Programa nalinguagem “C” que realiza a análise léxica (default: lexyy.c) Outros geradores de analisadores: TPly – TP Lex / Yacc => Gera um programa em PASCAL (scanner em Pascal) JavaCC => Para linguagem Java Flex++ou Flexx => Para linguagem C++ (orientado a objetos) Usando o FLEX: 1. FLEX -o .l *.l => Arquivos que contêm as definições das unidades léxicas a serem identificadas Contém um conjunto deespecificações de expressões regulares que serão usadas para reconhecer os tokens. *.c => Arquivo do programa “C” que implementa o analisador léxico especificado. Principais opções do FLEX: -i => Case Insensitive(ignora diferença entre maiúscula/minúsculas) --version => Exibe a versão atual do programa flex em uso -+ => Geração de código de saída em C++ 2. GCC -o -lfl Observações importantes sobre a geração doprograma de análise léxica: - É necessário linkar (-l) uma bibliotec (“lib”) do analisador léxico na compilação do código gerado. O FLEX usa a lib “fl” e o LEX usa a lib “l”. - O programa gerado podeser executado, onde usualmente a entrada do texto a ser analisado é feita pela “stdin” (teclado). 3. Executar o programa gerado... Compiladores 1 – Prof. Osório Pag.: 2 EXPRESSÕES REGULARES – Usadapelo LEX / FLEX: [0-9] => Reconhece um dígito [a-zA-Z] => Reconhece uma letra (comum = sem acentos) [\ \t\n] => Reconhece um espaço em branco ou um tab ou uma nova linha xxxxx => Reconhece a...
tracking img