Tengo la necesidad de evaluar expresiones lógicas definidas por el usuario de complejidad arbitraria en algunas páginas PHP. Suponiendo que los campos del formulario son las variables primarias, sería necesario:Análisis/análisis de expresiones lógicas dinámicas en PHP?
- sustituto "varibles" de forma valores de los campos;
- operadores de comparación asa, mínimamente ==, <, < =,> = y> por símbolo, el nombre (por ejemplo, eq, lt, le, ge, gt respectivamente);
- manejar operadores booleanos no, AND, OR y posiblemente xor por nombre, símbolo (por ejemplo, & &, || y ^^ respectivamente!);
- maneja los valores literales para las cadenas y números;
- ser texto sin formato no XML (por ejemplo, "nombre == '' o apellido == ''), y
- ser razonablemente performant
Ahora en los años pasados he escrito analizadores descendente recursivo. que podría construir un árbol de expresiones y hacer este tipo de cosas, pero esa no es una tarea que disfruto en PHP, así que espero que haya cosas que me ayuden a conseguirlo.
Sugerencias ?
¿Puedo preguntar, se las arregló para crear una función para analizar la expresión sencilla sin necesidad de utilizar eval? – buggedcom