technix / Perl-Analyzer

Perl source analyzer - view namespaces, dependencies, inheritance and much more
http://technix.github.io/Perl-Analyzer/
14 stars 4 forks source link

Не всегда указан родитель #1

Open dim0xff opened 7 years ago

dim0xff commented 7 years ago

Например http://technix.github.io/Perl-Analyzer/perl-analyzer/DBIx-Class.html У DBIx::Class::Componentised есть use base 'Class::C3::Componentised';, но Class::C3::Componentised не указан в родителях.

technix commented 7 years ago

Спасибо за багрепорт!

Посмотрел - как оказалось, DBIx::Class::Componentised вообще не был обработан анализатором, вот из-за этого:

package # hide from PAUSE
    DBIx::Class::Componentised;

Анализатор просто не нашел имени пакета и пропустил этот файл. Да уж, парсить код регулярными выражениями - не самая удачная идея :) Хотя в 99% случаев этого достаточно.

mishin commented 7 years ago

Есть же https://metacpan.org/pod/PPI пример моего использования ( https://www.mail-archive.com/moscow-pm%40pm.org/msg15772.html https://github.com/mishin/presentation/blob/master/ppi_convert_array_to_hash.pl) я тоже как-то регекспами парсил код http://blogs.perl.org/users/mishin/2011/12/convert-perl-var-to-yaml.html но на каждый регексп есть еще более сложные или скажем есть дополнительный кейс

technix commented 7 years ago

У меня есть devel-ветка, в которой я разбираю код с помощью PPI. Как закончу - закоммичу. Будет работать немного медленнее, но более надежно.