lexica
Análise Léxica
A varredura, ou análise léxica, é a fase de um compilador que lê o programafonte como um arquivo de caracteres e o separa em marcas. Essas marcas são como palavras em uma linguagem natural.
Exemplos de símbolos léxicos são as palavras reservadas, os identificadores, a constantes e os operadores da linguagem. Durante o processo de análise léxica, são desprezados caracteres não significativos como espaços em branco e comentários.
Além de reconhecer os símbolos léxicos, o analisador também realiza outras funções, como armazenar alguns desses símbolos (identificadores e constantes) em tabelas internas e indicar a ocorrência de erros léxicos.
Para implementar um analisador léxico à mão, é importante começar com um diagrama ou outra descrição para os lexemas de cada token. Podemos escrever código para identificar a cada ocorrência de cada lexema na entrada e retoranr informações sobre o token identificado.
A tarefa efetuada pelo sistema de varredura é um caso especial de casamento de padrões. Os métodos de especificação e reconhecimento de padrões que se aplicam no processo de varredura são basicamente os de expressões regulares e autômatos finitos.
Podemos produzir um analisador léxico automaticamente especificando os padrões dos lexemas para um gerador de analisador léxico e compilando esses padrões em código que funciona como um analisador léxico.
O papel do analisador léxico
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 sequência de tokens para cada lexema no programa fonte.
Token: é um par consistindo em um nome e um valor de atributo opcional.
Padrão: é uma descrição da forma que os lexemas de um token podem assumir
Lexema: é uma sequência de caracteres no programa fonte que casa com o padrão para um token e é identificado pelo analisador léxico como uma instância desse token. O fluxo de tokens é enviado ao