Se necesita la implementación de Shunting Yard en PHP, interpretar y analizar una cadena, realizar una comparación matemática y devolver un resultado booleano

Estoy buscando algo que pueda interpretar una cadena en php y realizar cálculos matemáticos simples, y luego devolver un resultado booleano en cuanto a si la expresión es verdadera o falsa.

Por ejemplo:

Sue escribe en "3 * {mysalary} / 9 = 10000"PHP divide esto en dos expresiones: explotar ('=', cadena);PHP toma mi lista de campos de la base de datos y reemplaza cualquier campo delimitado "{}" con los datos (mecanografiados a int)PHP luego evalúa la expresión matemáticaphp luego compara el lado izquierdo con el lado derechoresultado booleano producido.

Puede sonar complejo pero solo tiene que ser muy simple. Aquí están las restricciones: 1 / los operadores matemáticos se fijan en: + - / * 2 / los operadores de comparación se fijan en: => <> = <= 3 / no necesitan comparaciones de punto flotante, todo se puede hacer a un nivel entero. Por lo tanto, cualquier división se puede redondear si es necesario o simplemente redondear el resultado final

Solo habrá dos expresiones, con un operador de comparación. Si hay algún tipo de error, simplemente devolveremos falso.

¿Alguien ha visto algo que pueda hacer esto ya? Sé que puedo hacer algo, pero ¿por qué reinventar la rueda, verdad?

Si no ha visto nada, ¿le gustaría enumerar algunas "trampas" o advertencias que pueda pensar al construir esto?

Después de leer un poco más, me doy cuenta de que podría usar elalgoritmo de patio de maniobras. ¿Alguien tiene una implementación de esto en PHP?

Soy consciente de que la evaluación podría ser un método fácil para realizar esto, sin embargo, me preocupa que el usuario pueda romper algo fácilmente usando este método o causar errores de sintaxis. Prefiero no incluirlo en la solución, o si lo hago, entonces necesitaría controlar estrictamente cómo se usa.

Gracias.

Jason

Respuestas a la pregunta(4)

Su respuesta a la pregunta