English Deutsch Français Italiano Español Português 繁體中文 Bahasa Indonesia Tiếng Việt ภาษาไทย
Todas las categorías

Necesito hacer un analizador léxico en c, c++ o java que sea sobre el manejo de un carro de control remoto manejado desde la PC usando las teclas del numPad(del 1 al 9) Ya tengo el programa hecho en delphi, en c++ y en java, pero lo necesito hacer con lex, flex, o yacc cualquiera de ellos u otro...es urgente!! si no me voy a repetir la materia...si alguien se anima a ayudar mi correo es cynthi_monse@hotmail.com Muchísimas Gracias :)

2007-01-16 11:34:48 · 3 respuestas · pregunta de Cynthia Monserrat 1 en Ordenadores e Internet Programación y Diseño

3 respuestas

Espero todavía estar a tiempo :)

Usar flex es bastante sencillo, piensa que la idea es simplificar la vida, no hacerla más complicada.

La idea de flex es que él se encargue de generar el código C (o C++) que implementa el lexer, evitando que tu tengas que hacerlo. Ahora, para poder especificar como quieres que sea el lexer generado, debes proveer a flex con un archivo de configuración que defina el lexer (indicando los tokens, etc).

La sintaxis del archivo de configuración es realmente sencilla, la estructura general siempre es:

{%
/*
Esta seccion se llama el prólogo, aqui puedes poner cabezales de C/C++ y otras cosas. Lo que pones aqui se pega sin modificaciones en el archivo generado.
*/

#include
%}

NUM [0..9]

ID [a..zA..Z][a..zA..Z0..9]*

%%

{NUM}+ { printf("Encontre un numero entero!"); }

{ID}+ { printf("Encontre un identificador"); }

procedure { printf("Encontre la palabra procedure"); }

begin { printf("Encontre la palabra begin"); }

end { printf("Encontre la palabra end"); }

\n| |\t /* Ignorar espacios en blanco, fin de linea, tabs...*/

. { printf("Encontre otra cosa"); }


%%

/*
Esta sección se llama el epílogo. Al igual que en el prólogo aquí puedes poner cosas que se pegarán sin modificación en el archivo generado por flex, por ejemplo aquí puedes poner tu función main().
*/

int main()
{
yylex();
return 0;
}

Esto es solo un ejemplo sencillo, pero te da una idea de las cosas que se pueden hacer con flex. Te recomiendo ampliamente que leas (lo mas que puedas) del manual ubicado en: http://www.gnu.org/software/flex/manual/html_mono/flex.html

Suerte!!

2007-01-17 06:25:16 · answer #1 · answered by Anonymous · 0 0

Ni idea pense que podía pero niguas.

2007-01-16 12:01:51 · answer #2 · answered by rsalrock 6 · 0 0

upssssssss ni idea brother disculpa que me haya metido pero sonó atrativa tu oferta

2007-01-16 11:43:18 · answer #3 · answered by Anonymous · 0 0

fedest.com, questions and answers