автономный грамматический и синтаксический анализатор для php
Я ищу готовую грамматику и синтаксический анализатор для php (по крайней мере, 5.2), в идеале утилиту/библиотеку, которая может анализировать php-код в читаемый AST, например xml. Сам синтаксический анализатор не обязательно должен быть написан на php, исходный язык не имеет большого значения.
3 answers
Чтобы ответить на мой собственный вопрос, мне удалось скомпилировать phc в моем окне OSX, часть синтаксического анализатора, похоже, работает хорошо
phc --dump-xml=ast foo.php > bar.xml
Создает xml-представление AST.
Наш Инструментарий реинжиниринга программного обеспечения DMS представляет собой обобщенную технологию компилятора, используемую для анализа/анализа/преобразования произвольных компьютерных языков. Он анализирует в AST и поддерживает построение таблиц символов и различных типов потоковых графиков.
У него есть Интерфейс PHP, который полностью совместим с PHP 5.x, автоматически создает полные AST, используя DMS в качестве основы. Он может экспортировать XML, но наш опыт (и дизайн DMS) говорит о том, что вы получаете намного больше времени, оставаясь "внутри" DMS со структурой данных AST, выполняя свою работу там, с помощью огромной библиотеки DMS для обработки AST и средств сопоставления шаблонов, а затем генерируя свой результат, вместо того, чтобы пытаться обрабатывать огромные объемы XML, которые вы получите.
Этот интерфейс использовался в ряде производственных инструментов.
ПРАВКА: Октябрь 2016: Теперь обрабатывает PHP 5.6 и PHP 7.
Расширение Parse_Tree генерирует Дерево синтаксического анализа XML из кода php.