Bajo análisis, entendemos con mayor frecuencia el análisis de lenguajes libres de contexto. Un lenguaje libre de contexto es más poderoso que uno normal, por lo tanto, el analizador puede (muy a menudo) hacer el trabajo del analizador léxico de inmediato.
Pero, esto es a) bastante antinatural b) a menudo ineficiente.
Para a), si pienso en cómo se if
ve una expresión, por ejemplo , creo que SI expr ENTONCES expr ELSE expr y no 'i' 'f', tal vez algunos espacios, entonces cualquier carácter con el que una expresión pueda comenzar, etc. idea.
Para b) hay herramientas poderosas que hacen un excelente trabajo al reconocer entidades léxicas, como identificadores, literales, corchetes de todo tipo, etc. Ellos harán su trabajo prácticamente en ningún momento y le brindarán una interfaz agradable: una lista de tokens. Ya no te preocupes por omitir espacios en el analizador, tu analizador será mucho más abstracto cuando se trata de fichas y no de personajes.
Después de todo, si crees que un analizador debería estar ocupado con cosas de bajo nivel, ¿por qué entonces procesar los personajes? ¡Se podría escribir también en el nivel de bits! Usted ve, un analizador que funciona en el nivel de bits sería casi incomprensible. Es lo mismo con los personajes y tokens.
Solo mis 2 centavos.