Aula 03 An Lise L Xica
PROF. ANDRÉ RABELO
O Papel do Analisador Léxico
Como primeira fase de um compilador, a tarefa principal do analisador léxico é ler os caracteres da entrada do programa fonte, agrupá-los em lexemas e produzir como saída uma sequencia de tokens para cada lexema do programa fonte.
O fluxo de tokens é enviado ao analisador sintático para que a análise sintática seja efetuada.
Quando o analisador léxico descobre que um lexema é um identificar este precisa ser inserido na tabela de símbolos
Em alguns casos, as informações referentes ao identificador devem ser lidas da tabela de símbolos pelo analisador léxico para ajuda-lo a identificar o token apropriado que ele precisa passar ao analisador sintático.
O Papel do Analisador Léxico
Programa fonte Token
Analisador
Léxico
Analisador
Sintático
getNextToken
Tabela de
Símbolos
Para análise
Semântica
O Papel do Analisador Léxico
Como o analisador léxico é a parte do compilador que lê o código fonte, ele pode realizar outras tarefas. Uma dessas é a remoção dos comentários e o espaço em branco.
Outra tarefa é correlacionar as mensagens de erro geradas pelo compilador com o programa fonte.
Exemplo: O analisador léxico pode registrar o número de caracteres de quebra de linha vistos, de modo que posa associar um número de linha a cada mensagem de erro.
Ás vezes os analisadores léxicos são divididos em uma cascata de dois processos:
O escandimento que consiste no processo simples de varredura das entrada sem se preocupar, por exemplo, com a remoção de caracteres de espaço em branco consecutivos em apenas um caractere.
A análise léxica propriamente dita é a parte mais complexa, onde o analisador léxico produz a sequencia de tokens como saída.
Análise Léxica X Análise Sintática
Existem vários motivos pelos quais a parte de análise de um compilador normalmente é separada em fases léxica e semântica:
1.
Simplicidade de projeto é a consideração mais importante. Exemplo: