[Moscow.pm] Про подсветку синтаксиса

TheAthlete theathlet на yandex.ru
Вт Дек 17 01:03:32 PST 2013


Кстати он тоже не может парсить этот код (вывод PPI::Dumper):

PPI::Document
   PPI::Token::Comment   '#!/usr/bin/perl\n'
   PPI::Token::Whitespace        ' \n'
   PPI::Statement::Include
     PPI::Token::Word    'use'
     PPI::Token::Whitespace      ' '
     PPI::Token::Word    'strict'
     PPI::Token::Structure       ';'
   PPI::Token::Whitespace        '\n'
   PPI::Statement::Include
     PPI::Token::Word    'use'
     PPI::Token::Whitespace      ' '
     PPI::Token::Word    'warnings'
     PPI::Token::Whitespace      ' '
     PPI::Token::Word    'FATAL'
     PPI::Token::Whitespace      ' '
     PPI::Token::Operator        '=>'
     PPI::Token::Whitespace      ' '
     PPI::Token::Quote::Single   ''all''
     PPI::Token::Structure       ';'
   PPI::Token::Whitespace        '\n'
   PPI::Statement::Include
     PPI::Token::Word    'use'
     PPI::Token::Whitespace      ' '
     PPI::Token::Word    'feature'
     PPI::Token::Whitespace      ' '
     PPI::Token::Quote::Single   ''say''
     PPI::Token::Structure       ';'
   PPI::Token::Whitespace        '\n'
   PPI::Token::Whitespace        ' \n'
   PPI::Statement::Sub
     PPI::Token::Word    'sub'
     PPI::Token::Whitespace      ' '
     PPI::Token::Word    'with_prototype'
     PPI::Token::Whitespace      ' '
     PPI::Token::Prototype       '()'
     PPI::Token::Whitespace      ' '
     PPI::Structure::Block       { ... }
       PPI::Token::Whitespace    '\n'
       PPI::Token::Whitespace    '    '
       PPI::Statement::Break
         PPI::Token::Word        'return'
         PPI::Token::Whitespace          ' '
         PPI::Token::Number      '100'
         PPI::Token::Structure   ';'
       PPI::Token::Whitespace    '\n'
   PPI::Token::Whitespace        '\n'
   PPI::Token::Whitespace        ' \n'
   PPI::Statement::Sub
     PPI::Token::Word    'sub'
     PPI::Token::Whitespace      ' '
     PPI::Token::Word    'without_prototype'
     PPI::Token::Whitespace      ' '
     PPI::Structure::Block       { ... }
       PPI::Token::Whitespace    '\n'
       PPI::Token::Whitespace    '    '
       PPI::Statement::Break
         PPI::Token::Word        'return'
         PPI::Token::Whitespace          ' '
         PPI::Token::Number      '100'
         PPI::Token::Structure   ';'
       PPI::Token::Whitespace    '\n'
   PPI::Token::Whitespace        '\n'
   PPI::Token::Whitespace        ' \n'
   PPI::Statement::Compound
     PPI::Token::Word    'foreach'
     PPI::Token::Whitespace      ' '
     PPI::Structure::List        ( ... )
       PPI::Statement
         PPI::Token::Number      '1'
     PPI::Token::Whitespace      ' '
     PPI::Structure::Block       { ... }
       PPI::Token::Whitespace    '\n'
       PPI::Token::Whitespace    '    '
       PPI::Statement
         PPI::Token::Word        'say'
         PPI::Token::Whitespace          ' '
         PPI::Token::Word        'with_prototype'
         PPI::Token::Whitespace          '    '
         PPI::Token::Operator    '/'
         PPI::Token::Whitespace          ' '
         PPI::Token::Number      '10'
         PPI::Token::Whitespace          ' '
         PPI::Token::Structure   ';'
       PPI::Token::Whitespace    ' '
       PPI::Token::Comment       '# /  ; die "this dies!";'
       PPI::Token::Whitespace    '\n'
       PPI::Token::Whitespace    '    '
       PPI::Statement
         PPI::Token::Word        'say'
         PPI::Token::Whitespace          ' '
         PPI::Token::Word        'without_prototype'
         PPI::Token::Whitespace          ' '
         PPI::Token::Operator    '/'
         PPI::Token::Whitespace          ' '
         PPI::Token::Number      '10'
         PPI::Token::Whitespace          ' '
         PPI::Token::Structure   ';'
       PPI::Token::Whitespace    ' '
       PPI::Token::Comment       '# /  ; die "this dies!";'
       PPI::Token::Whitespace    '\n'
   PPI::Token::Whitespace        '\n'
   PPI::Statement::End
     PPI::Token::Separator       '__END__'
     PPI::Token::Whitespace      '\n'
     PPI::Token::End     'OUTPUT:\n10\n100\nthis dies! at a.pl line 17.\n'

т.е. он тоже представляет строку как комментарий:

PPI::Token::Comment       '# /  ; die "this dies!";'


Подробная информация о списке рассылки Moscow-pm