Ver Mensaje Individual
  #6  
Antiguo 11-10-2006
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Reputación: 29
Lepe Va por buen camino
Ya teneís links "más profesionales", aquí solo expongo una idea general para saber si es lo que necesitaís o no.

-El propio delphi tiene rutinas para crear expresiones regulares.
- Lex es una analizador léxico (que tiene una versión en delphi)
- Yacc es un analizador sintáctico (que tambien existe en version delphi)

¿Y qué demonios son analizadores lexico/sintactico?

analizador lexico:
Código:
[a..z]+            : mostrar('el usuario ha escrito al menos una letra desde la a a la z');
[0..9]+             : mostrar('el usuario ha escrito al menos un número');
[a..z]+[0..9]+     : mostrar(' el usuario ha escrito al menos una letra y despues un número');
Es decir, se puede "adivinar" lo que el usuario va escribiendo, vamos el típico caso de escribir en Word: "Estimado Señor:" y salta el asistente de office diciendo: "Veo que está escribiendo una carta, ¿necesita ayuda?

[a..z]+ es lo que se llama una expresión regular, que se validará solo cuando el usuario pulse una o más letras pertenecientes al rango a..z

Analizador sintáctico:
Es el encargado de verificar el orden en el que se han escrito las palabras. Si el usuario escribe : "Señor Estimado:" no debe saltar el asistente de office, porque no se ha escrito en el orden correcto. Este analizador sólo se encarga del Orden, por ejemplo:


Código:
Sacar_Asistente_ si:  "Estimado señor:" o bien
                      "Estimados señores:" o bien
                      "Estimado Cliente:"   o bien
                      "Estimado amigo:"
Aunque muchos no os lo creaís, me atrevo decir que es el futuro de la programación: Detectar qué quiere el usuario en cada momento para brindarle ayuda o asistentes paso a paso y no complicarles la vida en inmensos archivos hlp.

Por cierto, ¿como creeís que se obtienen las partes de un SQL?
SELECT nombrecampos FROM nombretablas WHERE condiciones HAVING ... ORDER BY
A través de un Parser se buscan los tokens (palabras reservadas SELECT, FROM, WHERE,ect) y se validan sin son correctas sintácticamente o no.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.

Última edición por Lepe fecha: 11-10-2006 a las 15:34:58.
Responder Con Cita