Foros del Web » Programación para mayores de 30 ;) » Programación General »

interprete o analizador sintactico ?

Estas en el tema de interprete o analizador sintactico ? en el foro de Programación General en Foros del Web. Buenas tardes compañeros computologos. El caso que me esta abatiendo es el siguiente, lo he publicado en el foro de java pero no obtengo ideas. ...
  #1 (permalink)  
Antiguo 14/05/2008, 11:28
Avatar de vmontesino  
Fecha de Ingreso: octubre-2007
Ubicación: San Salvador
Mensajes: 21
Antigüedad: 17 años, 1 mes
Puntos: 0
interprete o analizador sintactico ?

Buenas tardes compañeros computologos.

El caso que me esta abatiendo es el siguiente, lo he publicado en el foro de java pero no obtengo ideas. tengo una pantalla donde el usuario puede colocar un texto que puede verse como el where de un sql... esta restringido a colocar = Grupo , "and" , "or" , "(" , ")" y "not"

donde Grupo: es un conjunto de ciudades.

por ejemplo:

GRUPO1 AND (GRUPO2 OR GRUPO3 AND NOT (GRUPO4 AND GRUPO5))

Se valida que tenga la estructura correcta y solo puede colocar grupos existentes en la BBDD.

utilizando logica de conjuntos, el "and" me va a funcionar como interseccion y el "or" como union. Al resolver esta ecuacion (por decirle de alguna manera), me devolvera un conjunto de ciudades donde debere ir a settear una bandera.


La cuestion ese que no se como tratar esta ecuacion para sacarle el conjunto respuesta para luego hacer el setteo de la bandera -- "update tabla set bandera='YES' where ciudad in (conjunto respuesta)" --

He pensado en hacer un interprte o un analizador sintactico, o algo por el estilo, aunq aun no se como lo haria, pero por alli creo que iria la cosa si no encuentro algo adecuado.

Me han sugerido que utilice algun parser o algo asi. he encontrado uno llamado JSqlParser, aunque leyendo la documentacion y viendo los ejemplos no le entiendo mucho y no le he encontrado al utilidad para este caso particular.

Espero sus comentarios, sugerencias e ideas.

Gracias de antemano por su ayuda.

saludos.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:18.