Я ищу готовую грамматику и парсер для php (не менее 5.2), в идеале утилиту / библиотеку, которая может анализировать PHP-код в читаемом AST, например xml. Сам анализатор не должен быть написан на php, исходный язык не имеет большого значения.
Чтобы ответить на мой собственный вопрос, мне удалось скомпилировать phc в моем ящике OSX, часть парсера, похоже, хорошо работает
phc --dump-xml=ast foo.php > bar.xml
создает xml-представление AST.
Наш DMS Software Reengineering Toolkit – это обобщенная технология компилятора, используемая для анализа / анализатора / преобразования произвольных компьютерных языков. Он анализирует АСТ и поддерживает создание таблиц символов и различные типы потоковых графов.
Он имеет интерфейс PHP Front End , полностью совместимый с PHP 5.x, автоматически создает полноценные АСТ, используя DMS в качестве основы. Он может экспортировать XML, но наш опыт (и дизайн DMS) говорит о том, что вы получаете гораздо больше средств, оставив «внутри» DMS с структурой данных AST, выполняя свою работу там, с огромной библиотекой DMS, управляющей АСТ и возможностями сопоставления образцов , а затем генерировать ваш результат, а не пытаться обрабатывать огромное количество XML, которое вы получите.
Этот передний конец использовался в ряде производственных инструментов.
EDIT: октябрь 2016: теперь обрабатывает PHP 5.6 и PHP 7.
phpParseTree
Расширение Parse_Tree генерирует дерево разбора XML из php-кода.