Skip to content

Guia de Build: Processamento e Compilação (.l e .y)

Este manual descreve o fluxo de trabalho para transformar definições léxicas (Flex) e gramáticas sintáticas (Bison) em um programa executável.

O que acontece nos bastidores?

Diferente de um código comum, arquivos .l e .y passam por um processo de Geração de Código: 1. O Bison processa o .y e gera um analisador sintático em C. 2. O Flex processa o .l e gera um analisador léxico em C. 3. O GCC compila os arquivos C gerados em um único executável.

Passo a Passo (Comandos)

1. Gerar o Analisador Sintático (Bison)

Primeiro, processe a gramática para gerar as definições de tokens que o Flex precisará.

bison -d arquivo.y
  • Gera: arquivo.tab.c e arquivo.tab.h.
  • A flag -d é essencial para criar o cabeçalho (.h).

2. Gerar o Analisador Léxico (Flex)

Agora, transforme suas expressões regulares em código C.

flex arquivo.l
  • Gera: lex.yy.c.

3. Compilação Final (GCC)

Combine os códigos gerados e compile o programa final.

gcc lex.yy.c arquivo.tab.c -o meu_analisador -lfl
  • -o meu_analisador: Nome do seu programa executável.
  • -lfl: Biblioteca necessária para o funcionamento do Flex.

4. Executar

Após a compilação final é gerado um executável que pode ser executado dessa maneira:

./meu_analisador

5. Executar com arquivo de teste

No mesmo esquema da execução, para executar junto com um arquivo teste faça assim:

./analisador < teste.c