Analisador Léxico — Funções, Conceitos e Tokens
Classificado em Computação
Escrito em em
português com um tamanho de 2,8 KB
Analisador Léxico — Funções e Conceitos
Analisador léxico (AL): componente que lê os caracteres do programa-fonte e os agrupa em lexemas, produzindo como saída uma sequência de tokens. O fluxo de tokens é enviado ao analisador sintático (AS) para que a análise sintática seja efetuada.
Função principal
- Ler os caracteres de entrada do programa-fonte e agrupá‑los em lexemas, produzindo uma sequência de tokens para cada lexema do programa.
- Enviar o fluxo de tokens ao analisador sintático (AS) para a análise sintática.
Outras funções
- Preencher a tabela de símbolos com os lexemas (quando o analisador identifica que o lexema é um identificador ou uma constante, por exemplo).
- Remover espaços em branco e demais marcadores, além de comentários.
- Registrar o número de quebras de linha para associar um número de linha a cada mensagem de erro.
- Apontar erros léxicos, associando um número de linha à mensagem de erro.
- Em alguns compiladores, criar uma cópia do programa-fonte (PF) com as mensagens de erro inseridas nas posições apropriadas.
Conceitos fundamentais
O analisador léxico lida com três conceitos principais: token, padrão e lexema.
Token
- Par consistente em um nome e um valor de atributo opcional.
- O nome do token é um símbolo abstrato que representa um tipo de unidade léxica (por exemplo, palavra‑chave ou identificador).
- Os nomes dos tokens são os símbolos de entrada que o analisador sintático processa.
Padrão
- Descrição da forma que os lexemas de um token podem assumir.
- Palavras‑chave têm por padrão a sequência exata de caracteres que as compõe.
- Identificadores e outros tokens assumem uma estrutura mais complexa, que corresponde a muitas sequências de caracteres.
Lexema
- Sequência de caracteres no programa‑fonte que corresponde ao padrão de um token e é identificada pelo analisador léxico como uma instância desse token.
Atributos de tokens
- Quando mais de um lexema casa com um padrão, o analisador léxico precisa oferecer às fases subsequentes informações adicionais sobre qual foi o lexema em particular.
- O token comparison, por exemplo, corresponde a '<' e a '<='; é importante para o gerador de código saber exatamente qual lexema foi encontrado.
- O AL passa ao AS, além do token, um valor de atributo que descreve o lexema representado pelo token.
Tabela de Símbolos
Todas as informações adicionais sobre um determinado lexema são mantidas na Tabela de Símbolos.