Как использовать Parle php parsing / lexing library для оценки пользовательской языковой строки, которая включает в себя стек / parens

Я хотел бы оценить пользовательскую строку языка, которая выглядит так:

(($ v> 1) && ($ V <= 1.2.5)) || ($ V < 3)
Эта строка будет иметь значение true или false.

Переменная ‘$ v’, которую я бы динамически подставил для сравнения … и для фактического сравнения, я бы использовал класс Компаратора Семвера для фактического сравнения.
Но тогда он должен хранить значения из операций prev (из операций с круглыми скобками). Я полагаю, что в стеке, подобном ‘($ v> 1)’, будет вычисляться eval-ed then ($ v <= 1.2.5) ‘, тогда оба имеют другую операцию из бытия’&&’вместе Тогда ‘($ v < 3) ‘eval-ed, результат которого сравнивается с предыдущими операциями со скобками.

Я вижу Parle :: Stack, но не вижу примеров того, как выполнять такие операции. Только несколько примеров на http://php.net/manual/en/parle.examples.parser.php помогать.

Честно говоря, я не делал лексеров / парсеров с тех пор, как в колледже согнал / зубра, но надеюсь, что это не так уж плохо, и кто-то может помочь мне использовать эту библиотеку.

Примечание: другой лексер / парсер, который я нашел, это чья-то собственная библиотека, но я не уверен, как ее использовать:
https://github.com/nikic/Phlexy
https://github.com/nikic/PHP-Parser

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]