[Moscow.pm] комменты в конце строки
Nikolay Mishin
mi на ya.ru
Пн Дек 1 13:04:23 PST 2014
Да, посмотрел, ошибся,
PPI в perlcritic
но код увлекательный, например, такие конструкции
@_ = qw(
= **= += *= &= <<= &&=
-= /= |= >>= ||= //=
.= %= ^=
x=
);
@is_assignment{@_} = (1) x scalar(@_);
01.12.2014, 21:11, "Victor Efimov" <victor на vsespb.ru>:
> Я тоже думал perltidy использует PPI.. Где-то была такая инфа. Но не
> вижу use PPI в нём?
>
> 30 ноября 2014 г., 23:56 пользователь Nikolay Mishin <mi на ya.ru> написал:
>> perltidy также, как и perlctitic
>> использует
>> use PPI;
>> и задача, описанная выше вполне регулярная и решается
>> этим модулем,
>> там, конечно, документация к нему не айс,
>> но врубиться можно
>> нужно двигаться вот в каком направлении
>>
>> https://github.com/mishin/presentation/blob/master/ppi_add_comment_to_previous_line.pl
>>
>> на вход дается строка из
>> https://github.com/mishin/presentation/blob/master/test_perl_code.pl
>>
>> use 5.14.0;
>> use PPI;
>>
>> #use Smart::Comments;
>> my $file_name = shift or die "Usage: $0 file_4_transform\n";
>> my $doc = PPI::Document->new($file_name);
>>
>> my @comments = ();
>> my @statament = ();
>> $doc->find(
>> sub {
>> my ( $root, $node ) = @_;
>> if ( $node->isa('PPI::Token::Comment')) {
>> push @comments, $node;
>> }
>> if ( $node->isa('PPI::Statement')) {
>> push @statament, $node;
>> }
>> }
>> );
>> #$module->prune( 'PPI::Token::Comment' );
>> ## @comments
>> ## @statament
>> say join "", на comments;
>> say join "", на statament;
>>
>> понятно, что сделано для 1-й строки,
>> но правильно именно так,
>> удачи
>> нет времени допиливать
>> --
>> Moscow.pm mailing list
>> moscow-pm на pm.org | http://moscow.pm.org
>
> --
> Moscow.pm mailing list
> moscow-pm на pm.org | http://moscow.pm.org
--
С уважением
Николай Мишин
Подробная информация о списке рассылки Moscow-pm