Требуется реализация Shunting Yard в PHP, интерпретировать и анализировать строку, выполнить математическое сравнение и вернуть логический результат

Я ищу что-то, что может интерпретировать строку в php и выполнить простые математические вычисления, а затем вернуть логический результат относительно того, является ли выражение истинным или ложным.

Например:

Типы Сью в "3 * {mysalary} / 9 = 10000"PHP разбивает это на два выражения - взорваться ('=', строка);PHP берет мой список полей базы данных и заменяет любые поля с разделителями "{}" данными (тип приведен к int)Затем PHP оценивает математическое выражениеЗатем php сравнивает левую и правую сторонылогический результат производится.

Это может показаться сложным, но это должно быть очень просто. Вот ограничения: 1 / математические операторы установлены на: + - / * 2 / операторы сравнения установлены на: => <> = <= 3 / не требуют сравнения с плавающей запятой, все можно сделать на целочисленном уровне. Таким образом, любые деления могут быть округлены, если это необходимо, или просто округлить конечный результат.

Всегда будет только два выражения с одним оператором сравнения. Если есть какая-либо ошибка, мы просто вернем false.

Кто-нибудь видел что-то, что может сделать это уже? Я знаю, что могу что-то сделать, но зачем заново изобретать колесо, верно?

Если вы ничего не видели, не могли бы вы перечислить некоторые «ошибки» или «предостережения», о которых вы можете подумать при создании этого.

Прочитав еще немного, я понимаю, что могу использоватьалгоритм маневрового двора, У кого-нибудь есть реализация этого в PHP?

Я знаю, что eval может быть простым методом для этого, однако меня беспокоит, что пользователь может очень легко что-то сломать, используя этот метод, или вызвать синтаксические ошибки. Я бы предпочел не включать его в решение, или, если я это сделаю, нужно будет жестко контролировать его использование.

Благодарю.

Джейсон

Ответы на вопрос(4)

Ваш ответ на вопрос