Intereting Posts
Изменение размера изображения на лету с помощью CodeIgniter Бесплатное, легкое решение для электронной коммерции PHP upstream отправляет слишком большой заголовок при чтении заголовка ответа от восходящего потока содержимое div не загружается после вызова ajax Подключение к внешнему веб-сайту с помощью PHP CodeIgniter | .htaccess удаление index.php из url Действительно ли SplFixedArray работает лучше, чем массивы? Модель Codeigniter с несколькими условиями обновления с использованием инструкции where where Эвакуация с использованием косой черты, а затем использование stripslashes PHP Вызов java из PHP exec У меня есть 2 даты в PHP, как я могу запустить цикл foreach, чтобы пройти через все эти дни? Объединение нескольких массивов, сортировка по количеству массивов php / mysql – Проблема при перенаправлении на основе user_level Как получить главный URL-адрес приложения Facebook? PHP nodeValue strips html tags – альтернатива innerHTML?

автономная грамматика и парсер для php

Я ищу готовую грамматику и парсер для 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-кода.