Da teoria à prática
Expressões regulares passam a reconhecer lexemas concretos
Aula prática · Expressões regulares, Flex e primeiro scanner
Hoje, a teoria vira ferramenta: padrões regulares serão convertidos em um scanner que reconhece tokens.
Expressões regulares passam a reconhecer lexemas concretos
Uma expressão regular descreve o padrão; o lexema é o trecho encontrado; o token é a categoria enviada ao parser.
Qual cadeia é reconhecida por [a-zA-Z_][a-zA-Z0-9_]* como identificador?
A especificação léxica será escrita de forma incremental
nomes de variáveis e símbolos definidos pelo programador
sequências de dígitos como 10, 42 e 2025
símbolos como +, -, *, / e =
caracteres ignorados pelo scanner
qualquer caractere que não pertença às regras esperadas
Em uma regra do Flex, o que fica à esquerda e o que fica entre chaves?
A especificação agora vira um programa executável
flex scanner.l
gcc -o scanner lex.yy.c -lfl
./scanner
digite x1 = 10 + 2
Ctrl+D no Linux/WSL
Qual sequência descreve corretamente a construção do scanner?
Um scanner só é confiável quando reconhece casos válidos e rejeita casos inválidos
. captura qualquer caractere não reconhecido.
deve indicar o lexema inesperado.
linha e coluna podem ser incluídas em versões futuras.
o scanner pode continuar após sinalizar o erro.
Qual é o papel típico da regra . { ... } no final de um scanner Flex?
O scanner será a entrada da análise sintática nas próximas aulas
Na integração Flex+Bison, qual função gerada pelo Flex fornece tokens ao parser?
scanner.l com cabeçalho institucional e regras mínimas.
gerar lex.yy.c e produzir o executável scanner.
validar identificadores, números, operadores e inválidos.
atualizar README com comandos e exemplos.
fazer commit e push no repositório da equipe.
scanner.l versionado no repositório.
comandos para gerar e rodar o scanner.
entradas válidas e inválidas registradas.
instruções claras para outro integrante reproduzir.
Na próxima prática, o scanner será conectado ao parser para reconhecer estruturas sintáticas da linguagem do projeto.