Analise Léxica
Análise Léxica Analisador Léxico
• Principal tarefa do A.L é ler os caractéres de entrada do programa, agrupá-los em lexemas, e produzir uma sequência de tokens para cada lexema. • O fluxo de tokens é enviado para
Token
o A. Sintático.
A.L
A.L
Fonte
getNextToken
Tab.
Sím.
Remoção de espaço em branco e comentários
• O tradutor de expressões vê cada caractere de modo que caracteres estranhos causarão um erro.
• A maioria das linguagens permite que espaços em branco apareçam entre os tokens.
• Da mesma forma, comentários também devem ser ignorados durante a análise.
• Se o espaço for eliminado pelo analisador léxico o analisador sintático nunca precisará considerá-los.
Análise Léxica: tokens e lexemas
• Objeto token: composto por um símbolo terminal e valores de atributo.
• Lexema: sequência de caracteres de entrada compreendendo um único token.
• Padrão: é uma descrição da forma que os lexemas de um token podem tomar. No caso de uma palavra chave como um token, o padrão é a seqüência de caracteres que formam a palavra chave.
Exemplo printf(“Total = %d\n”, score); printf e score são lexemas associando o padrão para o token id, “Total =
%d\n” é um lexema que associa o padrão literal
Exemplo
Baseando-se na tabela de tokens e lexemas, determine os lexemas
• do código a seguir:
Atributo de Token
• Os atributos de um token são responsáveis por passar informações do token a fase subsequente.
– Por exemplo o valor de um token
E = M * C ** 2
Especificação de Tokens
• Um tipo de token é um conjunto de strings
– Outro nome para conjunto de strings é linguagem
– Geralmente os conjuntos de strings que caracterizam os tipos de tokens de linguagens de programação são linguagens regulares
• Em linguagens formais, uma linguagem regular é qualquer conjunto de strings que pode ser expresso usando uma expressão regular
– Logo, o fato dos tipos de tokens serem linguagens