O que é análise lexical?
A análise lexical é o processo de pegar uma série de caracteres - ou, mais simplesmente, de texto - e convertê-la em grupos significativos chamados tokens. Essa metodologia tem usos em uma ampla variedade de aplicações, desde a interpretação de linguagens de computador até a análise de livros. Análise lexical não é sinônimo de análise; é o primeiro passo do processo total de análise e cria matéria-prima para uso posterior.
Os blocos de construção de tokens, também chamados lexemes, podem ser gerados de várias maneiras, dependendo da gramática necessária para a análise lexical. Um exemplo comum disso é dividir frases por palavras; isso é feito com freqüência dividindo frases em torno de espaços. Cada sequência contínua de caracteres gerados sem espaços é um léxico. As cadeias de texto podem ser divididas em um ou vários tipos de caracteres, criando várias versões de lexemas com complexidade variada. Os tokens são gerados após cada lexeme ter sido avaliado e emparelhado com seu valor correspondente; por definição, os tokens se referem a esse emparelhamento, não apenas ao léxico.
A análise lexical, de certa forma contra-intuitiva, retira uma sequência de texto de seu contexto. Seu objetivo é apenas gerar blocos de construção para estudos adicionais, não determinar se essas peças são válidas ou inválidas. No caso da interpretação da linguagem de computador, a validação é feita pela análise de sintaxe, e a validação do texto pode ser feita em termos de contexto ou conteúdo. Se uma sequência de entrada for completamente dividida em lexemas apropriados e cada um deles tiver um valor apropriado, a análise será considerada bem-sucedida.
Sem o contexto ou a capacidade de executar a validação, a análise lexical não pode ser usada com segurança para encontrar erros na entrada. Uma gramática lexical pode ter valores de erro atribuídos a lexemas específicos e essa análise também pode detectar tokens ilegais ou malformados. Embora a localização de um token ilegal ou mal formado sinalize entrada inválida, ele não influencia se os outros tokens são válidos e, portanto, não é estritamente um tipo de validação.
Embora a análise lexical seja parte integrante de muitos algoritmos, ela geralmente deve ser usada em conjunto com outras metodologias para criar resultados significativos. Por exemplo, dividir uma sequência de texto em palavras para determinar frequências faz uso da criação de léxico, mas somente a criação de léxico não pode monitorar o número de vezes que um lexeme específico aparece na entrada. A análise lexical pode ser útil por si só se os próprios lexemas forem importantes, mas grandes quantidades de entrada podem dificultar a análise de lexemas brutos por causa do volume de dados.