Вход Регистрация
Файл: error-kitty/node_modules/highlight.js/lib/languages/perl.js
Строк: 196
<?php
module
.exports = function(hljs) {
  var 
PERL_KEYWORDS 'getpwent getservent quotemeta msgrcv scalar kill dbmclose undef lc ' +
    
'ma syswrite tr send umask sysopen shmwrite vec qx utime local oct semctl localtime ' +
    
'readpipe do return format read sprintf dbmopen pop getpgrp not getpwnam rewinddir qq' +
    
'fileno qw endprotoent wait sethostent bless s|0 opendir continue each sleep endgrent ' +
    
'shutdown dump chomp connect getsockname die socketpair close flock exists index shmget' +
    
'sub for endpwent redo lstat msgctl setpgrp abs exit select print ref gethostbyaddr ' +
    
'unshift fcntl syscall goto getnetbyaddr join gmtime symlink semget splice x|0 ' +
    
'getpeername recv log setsockopt cos last reverse gethostbyname getgrnam study formline ' +
    
'endhostent times chop length gethostent getnetent pack getprotoent getservbyname rand ' +
    
'mkdir pos chmod y|0 substr endnetent printf next open msgsnd readdir use unlink ' +
    
'getsockopt getpriority rindex wantarray hex system getservbyport endservent int chr ' +
    
'untie rmdir prototype tell listen fork shmread ucfirst setprotoent else sysseek link ' +
    
'getgrgid shmctl waitpid unpack getnetbyname reset chdir grep split require caller ' +
    
'lcfirst until warn while values shift telldir getpwuid my getprotobynumber delete and ' +
    
'sort uc defined srand accept package seekdir getprotobyname semop our rename seek if q|0 ' +
    
'chroot sysread setpwent no crypt getc chown sqrt write setnetent setpriority foreach ' +
    
'tie sin msgget map stat getlogin unless elsif truncate exec keys glob tied closedir' +
    
'ioctl socket readlink eval xor readline binmode setservent eof ord bind alarm pipe ' +
    
'atan2 getgrent exp time push setgrent gt lt or ne m|0 break given say state when';
  var 
SUBST = {
    
className'subst',
    
begin'[$@]\{'end'\}',
    
keywordsPERL_KEYWORDS
  
};
  var 
METHOD = {
    
begin'->{'end'}'
    
// contains defined later
  
};
  var VAR = {
    
className'variable',
    
variants: [
      {
begin: /$d/},
      {
begin: /[$%@](^wb|#w+(::w+)*|{w+}|w+(::w*)*)/},
      
{begin: /[$%@][^sw{]/, relevance0}
    ]
  };
  var 
COMMENT = {
    
className'comment',
    
begin'^(__END__|__DATA__)'end'\n$',
    
relevance5
  
};
  var 
STRING_CONTAINS = [hljs.BACKSLASH_ESCAPESUBST, VAR];
  var 
PERL_DEFAULT_CONTAINS = [
    VAR,
    
hljs.HASH_COMMENT_MODE,
    
COMMENT,
    {
      
className'comment',
      
begin'^\=\w'end'\=cut'endsWithParenttrue
    
},
    
METHOD,
    {
      
className'string',
      
containsSTRING_CONTAINS,
      
variants: [
        {
          
begin'q[qwxr]?\s*\('end'\)',
          
relevance5
        
},
        {
          
begin'q[qwxr]?\s*\['end'\]',
          
relevance5
        
},
        {
          
begin'q[qwxr]?\s*\{'end'\}',
          
relevance5
        
},
        {
          
begin'q[qwxr]?\s*\|'end'\|',
          
relevance5
        
},
        {
          
begin'q[qwxr]?\s*\<'end'\>',
          
relevance5
        
},
        {
          
begin'qw\s+q'end'q',
          
relevance5
        
},
        {
          
begin''', end: ''',
          
contains: [hljs.BACKSLASH_ESCAPE]
        },
        {
          
begin'"'end'"'
        
},
        {
          
begin'`'end'`',
          
contains: [hljs.BACKSLASH_ESCAPE]
        },
        {
          
begin'{\w+}',
          
contains: [],
          
relevance0
        
},
        {
          
begin'-?\w+\s*\=\>',
          
contains: [],
          
relevance0
        
}
      ]
    },
    {
      
className'number',
      
begin'(\b0[0-7_]+)|(\b0x[0-9a-fA-F_]+)|(\b[1-9][0-9_]*(\.[0-9_]+)?)|[0_]\b',
      
relevance0
    
},
    { 
// regexp container
      
begin'(\/\/|' hljs.RE_STARTERS_RE '|\b(split|return|print|reverse|grep)\b)\s*',
      
keywords'split return print reverse grep',
      
relevance0,
      
contains: [
        
hljs.HASH_COMMENT_MODE,
        
COMMENT,
        {
          
className'regexp',
          
begin'(s|tr|y)/(\\.|[^/])*/(\\.|[^/])*/[a-z]*',
          
relevance10
        
},
        {
          
className'regexp',
          
begin'(m|qr)?/'end'/[a-z]*',
          
contains: [hljs.BACKSLASH_ESCAPE],
          
relevance// allows empty "//" which is a common comment delimiter in other languages
        
}
      ]
    },
    {
      
className'sub',
      
beginKeywords'sub'end'(\s*\(.*?\))?[;{]',
      
relevance5
    
},
    {
      
className'operator',
      
begin'-\w\b',
      
relevance0
    
}
  ];
  
SUBST.contains PERL_DEFAULT_CONTAINS;
  
METHOD.contains PERL_DEFAULT_CONTAINS;

  return {
    
aliases: ['pl'],
    
keywordsPERL_KEYWORDS,
    
containsPERL_DEFAULT_CONTAINS
  
};
};
?>
Онлайн: 0
Реклама