Your IP : 216.73.216.213
B
˽�\} � @ s� d Z ddlZddlmZmZmZmZmZmZm Z m
Z
ddlmZm
Z
mZmZmZmZmZmZ ddlmZ ddgZG dd� de�ZG d d� de�ZdS )
z�
pygments.lexers.perl
~~~~~~~~~~~~~~~~~~~~
Lexers for Perl and related languages.
:copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
:license: BSD, see LICENSE for details.
� N)�
RegexLexer�ExtendedRegexLexer�include�bygroups�using�this�default�words)�Text�Comment�Operator�Keyword�Name�String�Number�Punctuation)�shebang_matches� PerlLexer�
Perl6Lexerc 4 @ s� e Zd ZdZdZddgZdddgZdd gZej ej
B Zd
ej
dfdej
dfd
ej
dfdej
dfdej
dfdej
dfdej
dfdej
dfdej
dfdej
dfg
dejfdejfdejfeddd�efdeeeeeee�dfdejfdej
fdej
fd ej
fd!ej
fd"ej
fd#ej
d$fd%ej
d$fd&ej
d$fd'ej
d$fd(ej
fd)ej
d$fd*ej
fd+efed,dd�ejfd-ejjfd.eeeejeeje�fd/ejd0fd1ejjfd2ejjfd3ejd4fd5e j!fd6e j"fd7e j#fd8e j$fd9e j$fd:e j%fd;efd<efd=ej&fd>ej
fd?ej'd@fdAej'dBfdCej'dDfdEej'dFfdGej'fdHeeeej(�fdIeeeej(�fdJeee�dKfedLdd�efdMefdNefdOefdPedQfg1dRej)dfdSej)fgd+efdTedfdUedfdVej(fdWejdfgdXej(dfdYej(dfdWedfdZej*dfd[edfgd\ej+fd+efd]eee�fd^edfd_edfgd`ej'fdaej'fdTej'd@fdbej'dfdcej'fgddej'fdaej'fdeej'dBfdfej'dfdgej'fgdhej'fdaej'fdiej'dDfdjej'dfdkej'fgdlej'fdaej'fdmej'dFfdnej'dfdoej'fgdpejdfgdq�Z,drds� Z-dtS )ur z8
For `Perl <http://www.perl.org>`_ source code.
ZPerl�perl�plz*.plz*.pmz*.tztext/x-perlzapplication/x-perlz"/(\\\\|\\[^\\]|[^\\/])*/[egimosx]*z#popz"!(\\\\|\\[^\\]|[^\\!])*![egimosx]*z\\(\\\\|[^\\])*\\[egimosx]*z$\{(\\\\|\\[^\\]|[^\\}])*\}[egimosx]*z"<(\\\\|\\[^\\]|[^\\>])*>[egimosx]*z%\[(\\\\|\\[^\\]|[^\\\]])*\][egimosx]*z$\((\\\\|\\[^\\]|[^\\)])*\)[egimosx]*z"@(\\\\|\\[^\\]|[^\\@])*@[egimosx]*z"%(\\\\|\\[^\\]|[^\\%])*%[egimosx]*z$\$(\\\\|\\[^\\]|[^\\$])*\$[egimosx]*z \A\#!.+?$z\#.*?$z^=[a-zA-Z0-9]+\s+.*?\n=cut)Zcase�continue�do�else�elsif�forZforeach�if�last�my�next�our�redo�resetZthen�unless�until�while�print�new�BEGIN�CHECK�INIT�END�returnz\b)�suffixz!(format)(\s+)(\w+)(\s*)(=)(\s*\n)�formatz$(eq|lt|gt|le|ge|ne|not|and|or|cmp)\bz:s/(\\\\|\\[^\\]|[^\\/])*/(\\\\|\\[^\\]|[^\\/])*/[egimosx]*z.s!(\\\\|\\!|[^!])*!(\\\\|\\!|[^!])*![egimosx]*z+s\\(\\\\|[^\\])*\\(\\\\|[^\\])*\\[egimosx]*z:s@(\\\\|\\[^\\]|[^\\@])*@(\\\\|\\[^\\]|[^\\@])*@[egimosx]*z:s%(\\\\|\\[^\\]|[^\\%])*%(\\\\|\\[^\\]|[^\\%])*%[egimosx]*zs\{(\\\\|\\[^\\]|[^\\}])*\}\s*zbalanced-regexzs<(\\\\|\\[^\\]|[^\\>])*>\s*zs\[(\\\\|\\[^\\]|[^\\\]])*\]\s*zs\((\\\\|\\[^\\]|[^\\)])*\)\s*z&m?/(\\\\|\\[^\\]|[^\\/\n])*/[gcimosx]*zm(?=[/!\\{<\[(@%$])z6((?<==~)|(?<=\())\s*/(\\\\|\\[^\\]|[^\\/])*/[gcimosx]*z\s+)��abs�accept�alarm�atan2�bindZbinmode�bless�caller�chdir�chmod�chomp�chop�chown�chr�chroot�closeZclosedir�connectr �cosZcryptZdbmcloseZdbmopen�defined�delete�die�dump�eachZendgrentZ
endhostentZ endnetentZendprotoentZendpwentZ
endservent�eof�eval�exec�exists�exit�expZfcntl�filenoZflock�forkr. Zformline�getcZgetgrent�getgrgid�getgrnam�
gethostbyaddr�
gethostbynameZ
gethostent�getloginZgetnetbyaddrZgetnetbynameZ getnetent�getpeername�getpgrp�getppid�getpriority�getprotobynameZgetprotobynumberZgetprotoentZgetpwent�getpwnam�getpwuid�
getservbyname�
getservbyportZ
getservent�getsockname�
getsockopt�glob�gmtime�goto�grep�hex�import�index�intZioctl�join�keys�killr �lc�lcfirst�length�link�listen�local� localtime�log�lstat�map�mkdirZmsgctlZmsggetZmsgrcvZmsgsndr r �oct�open�opendir�ordr �pack�pipe�pop�pos�printfZ prototype�push� quotemeta�rand�read�readdir�readline�readlinkZreadpipe�recvr! �ref�rename�reverse� rewinddir�rindex�rmdirZscalar�seekZseekdir�selectZsemctlZsemgetZsemop�sendZsetgrentZ
sethostentZ setnetent�setpgrp�setpriorityZsetprotoentZsetpwentZ
setservent�
setsockopt�shiftZshmctlZshmgetZshmreadZshmwrite�shutdown�sin�sleep�socket�
socketpair�sort�splice�split�sprintf�sqrt�srand�statZstudy�substr�symlinkZsyscallZsysopenZsysreadZsysseek�systemZsyswrite�tellZtelldirZtieZtied�time�times�tr�truncate�uc�ucfirst�umask�undef�unlink�unpack�unshiftZuntie�utime�values�vec�wait�waitpidZ wantarray�warn�writez+((__(DATA|DIE|WARN)__)|(STD(IN|OUT|ERR)))\bz/(<<)([\'"]?)([a-zA-Z_]\w*)(\2;?\n.*?\n)(\3)(\n)Z__END__zend-partz\$\^[ADEFHILMOPSTWX]z(\$[\\\"\[\]'&`+*.,;=%~?@$!<>(^|/-](?!\w)z[$@%#]+�varnamez0_?[0-7]+(_[0-7]+)*z0x[0-9A-Fa-f]+(_[0-9A-Fa-f]+)*z0b[01]+(_[01]+)*z?(?i)(\d*(_\d*)*\.\d+(_\d*)*|\d+(_\d*)*\.\d+(_\d*)*)(e[+-]?\d+)?z(?i)\d+(_\d*)*e[+-]?\d+(_\d*)*z
\d+(_\d+)*z'(\\\\|\\[^\\]|[^'\\])*'z"(\\\\|\\[^\\]|[^"\\])*"z`(\\\\|\\[^\\]|[^`\\])*`z<([^\s>]+)>z(q|qq|qw|qr|qx)\{z cb-stringz(q|qq|qw|qr|qx)\(z rb-stringz(q|qq|qw|qr|qx)\[z sb-stringz(q|qq|qw|qr|qx)\<z lt-stringz (q|qq|qw|qr|qx)([\W_])(.|\n)*?\2z/(package)(\s+)([a-zA-Z_]\w*(?:::[a-zA-Z_]\w*)*)z6(use|require|no)(\s+)([a-zA-Z_]\w*(?:::[a-zA-Z_]\w*)*)z
(sub)(\s+)�funcname)�no�package�require�usez=(\[\]|\*\*|::|<<|>>|>=|<=>|<=|={3}|!=|=~|!~|&&?|\|\||\.{1,3})z[-+/*%=<>&^|!\\~]=?z[()\[\]:;,<>/?{}]z(?=\w)�namez\.\nz[^\n]*\nz\{z\)|,z\w+::z[\w:]+z+[a-zA-Z_]\w*(::[a-zA-Z_]\w*)*(::)?(?=\s*->)z[a-zA-Z_]\w*(::[a-zA-Z_]\w*)*::z
[A-Z_]+(?=\W)z(?=\W)z[a-zA-Z_]\w*[!?]?z(\([$@%]*\))(\s*)�;z.*?\{z\\[{}\\]z\\z\}z[^{}\\]+z\\[()\\]z\(z\)z[^()]+z
\\[\[\]\\]z\[z\]z[^\[\]]+z\\[<>\\]z\<z\>z[^<>]+z.+)zbalanced-regex�rootr. r� r� r� z cb-stringz rb-stringz sb-stringz lt-stringzend-partc C s"