Reconhecimento de tokens
Reconhecimento de Tokens
A função do analisador léxico é ler uma sequência de caracteres que constitui um programa fonte e coletar, dessa sequência, os tokens (palavras de uma linguagem regular) que consistem o programa. Os tokens são as unidades básicas do texto do programa. Cada token é representando internamente por três informações:
Classe do token: representa o tipo do token reconhecido (identificadores, constantes, numéricoas, cadeias de caracteres, palavras reservadas, operadores e separadores). Valor do token: o qual depende a classe (o número inteiro representado pela constante, a sequência de caracteres lida no programa fonte que representa o identificador, um apontador para a entrada de uma tabela que contém essa sequência de caracteres).
Posição do token: indica o local do texto fonte (linha e coluna) onde ocorreu o token. Essa informação é utilizada para indicar o local de erros.
1) Tokens simples: não tem valor associado (palavras reservadas, operadores e delimitadores). 2) Tokens com argumentos: têm um valor associado (elementos da linguagem definidos pelo programador: identificadores, constantes numéricas, cadeias de caracteres).
A especificação de um analisador léxico descreve o conjunto de tokens que formam a linguagem. Fazem parte dessa especificação sequências de caracteres que podem aparecer entre tokens e devem ser ignoradas tais como espaços em branco e comentários. As palavras reservadas da linguagem são casos particulares dos identificadores e seguem a mesma notação (expressões regulares, autômatos finitos e gramáticas regulares) desses. As especificações de analisadores léxicos, usualmente, não expressam, explicitamente, o reconhecimento de palavras reservadas. Essas palavras são armazenadas em uma tabela interna, que é examinada cada vez que um identificador é reconhecido. Os terminais da gramática são if, then, else, oprel, id e number. Os padrões para esses tokens são