Я ищу анализатор языка, написанный на PHP .
Цель состоит в том, чтобы прочитать пользовательский язык , а не читать PHP-код.
В принципе, я хочу указать синтаксис языка, дать фрагмент кода и вернуть структуру, представляющую его. Затем я могу пройти эту структуру, чтобы выполнить фрагмент кода. Я считаю, что структура будет AST , но я не знаю, является ли это единственным вариантом (я не интимный с парсерами и их словарным запасом).
Я посмотрел на парсер Doctrine DQL, но это не похоже на общий парсер языка.
Это не полный список, если вы ищете PHP-версию lexer / parsers, одним из исключительных проектов является Phlexy от NikiC.
Вы можете найти прецедент внутри PHP-Parser, также написанный им. Это парсер для языка PHP с абстрактным синтаксическим деревом (AST), частично сгенерированный из файла грамматики.
Мне никогда не удавалось это сделать, из моих собственных исследований на протяжении многих лет, таких проектов в PHP-пространстве не так много, и эти две библиотеки из NikiC – действительно очень хороший пример.
Если вы ищете лексер, который придерживается более гибких правил, я написал один в XDOM, который синтаксис синтаксиса синтаксиса синтаксиса, он также имеет синтаксический анализатор, но парсер не основан на файле грамматики, даже если он существует в спецификациях CSS , Лексер основан на файле .lex.