Каков алгоритм разбора выражений в инфиксной нотации?
Я хотел бы разобрать логические выражения в PHP. Как в:
A and B or C and (D or F or not G)
Термины можно считать простыми идентификаторами. Они будут иметь небольшую структуру, но парсер нене нужно беспокоиться об этом. Надо просто распознать ключевые словаand or not ( )
, Все остальное - термин.
Я помню, что мы написали простые оценки арифметических выражений в школе, но я неЯ не помню, как это было сделано. Также я не знаю, какие ключевые слова искать в Google / SO.
Готовая библиотека была бы хороша, но, насколько я помню, алгоритм был довольно прост, так что было бы весело и познавательно перестроить его самому.