RE:NECESITO UN ANALIZADOR LEXICO
Hola.
No creo que un analizador sintáctico sea algo fácil, mucho menos uno léxico. Un analizador sintáctico es un programa que dado un documento con información (i.e. un documento de texto) y dadas algunas reglas pre-establecidas (i.e. la gramática del lenguaje español, o la sintaxis de C++) puede descomponer el documento en componentes, usualmente en árboles binarios, y darles un contenido semántico en conjunto. Un analizador léxico, aparte de que exige como premisa que el documento sea sintácticamente correcto, busca descomponer el documento en componentes basadas en las reglas de semántica preestablecidas.
Por ejemplo:
1. ¿Cómo amaneciste?
2. ¡Cómo! ¿Amaneciste?
Tanto 1 como 2 son sintácticamente correctas, ya que siguen a la perfección las reglas de gramática del español. Pero semánticamente son diferentes. Un analizador léxico se encarga de distinguir estas peculiaridades de acuerdo al contexto. Hablando de lenguajes máquina, un analizador sintáctico de C++ lanzaría un error de compilación por el siguiente código:
template < template<class T>> class A { ... };
porque se encuentra con >> en lugar de > >, e interpretaría a >> como el operador de desplazamiento de bits. En cambio, un analizador léxico no tendría problemas, ya que detectaría el significado de acuerdo al contexto, a saber, que estamos especializando una plantilla.
Si en la clase no haz captado bien los conceptos de cómo crearlos, entonces te recomiendo que revises en www.sourceforge.net por el código de compiladores y analizadores (parsers). Quizás encuentres algo.
Claro, la complejidad del analizador depende mucho de exáctamente a qué nivel quieres que se construya el programa (i.e. un analizador del español llevaría siglos, creo yo).
Saludos.