3 An lise L xica
Instituto de Engenharia de Sistemas e de Tecnologia da Informação
Aula 03:
Análise Léxica
Prof. Luiz Fernando Nunes luizfernandolfn@unifei.edu.br CCO007 - Compiladores
2
Análise Léxica
• A principal tarefa do analisador léxico é ler os caracteres de entrada do programa fonte, agrupa-los em lexemas e produzir como saída uma sequência de tokens.
3
Análise Léxica
• Outras tarefas que o analisador léxico pode realizar:
▫ Remover comentários, espaços em branco, quebra de linha tabulação e outros caracteres que são usados para separar os tokens de entrada.
▫ Correlacionar as mensagens de erro geradas pelo compilador com o programa fonte.
• O analisador léxico faz uma cópia do programa fonte com as mensagens de erro inseridas nas posições apropriadas.
• Os analisadores léxicos são divididos em dois processos:
▫ Escandimento ou Varredura: processo de simples varredura da entrada sem se preocupar com a remoção de comentários e a compactação de caracteres de espaço em branco em apenas um caracter.
▫ Análise léxica: é a parte mais complexa, onde o analisador léxico produz uma sequência de tokens como saída.
4
Análise Léxica
Tokens, Padrões e Lexemas
• Na análise léxica, três termos estão relacionados:
▫ Token: é um par que consiste de um nome e um atributo.
O nome do token é um símbolo que representa um tipo de unidade lógica (palavra-chave ou uma sequência de caracteres de entrada denotando um identificador).
Os nomes dos tokens são os símbolos de entrada que o analisador sintático processa.
▫ Padrão: é uma descrição da forma que os lexemas de um token podem assumir. Palavra-chave: o padrão é apenas uma sequência de caracteres que formam a palavra chave.
Identificadores: o padrão é uma estrutura mais complexa, que é casada por muitas sequências de caracteres.
5
Análise Léxica
Tokens, Padrões e Lexemas
• Lexema: é uma sequência de caracteres no programa fonte que casa com o padrão para um token e é identificado pelo