File: //opt/saltstack/salt/lib/python3.10/site-packages/pygments/lexers/__pycache__/perl.cpython-310.pyc
o
;j� � @ s� d Z ddlZddlmZmZmZmZmZmZm Z m
Z
ddlmZm
Z
mZmZmZmZmZmZmZ ddlmZ ddgZG dd� de�ZG d d� de�ZdS )
z�
pygments.lexers.perl
~~~~~~~~~~~~~~~~~~~~
Lexers for Perl, Raku and related languages.
:copyright: Copyright 2006-present 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�
Whitespace)�shebang_matches� PerlLexer�
Perl6Lexerc @ sV e Zd ZdZdZdZddgZg d�ZddgZd Z e
je
jB Z
d
ejdfdejdfd
ejdfdejdfdejdfdejdfdejdfdejdfdejdfdejdfg
g dejf�dejf�dejf�eddd�ef�deeeeeee�df�dejf�dejf�dejf�d ejf�d!ejf�d"ejf�d#ejd$f�d%ejd$f�d&ejd$f�d'ejd$f�d(ejf�d)ejd$f�d*ejf�d+ef�ed,dd�ejf�d-ejjf�d.eeeejeeje�f�d/ejd0f�d1ej j!f�d2ej j!f�d3ej d4f�d5e"j#f�d6e"j$f�d7e"j%f�d8e"j&f�d9e"j&f�d:e"j'f�d;ef�d<ef�d=ej(f�d>ejf�d?ej)d@f�dAej)dBf�dCej)dDf�dEej)dFf�dGej)f�dHeeeej*�f�dIeeeej*�f�dJeee�dKf�edLdd�ef�dMef�dNef�dOef�dPedQf�dRej+dfdSej+fgd+efdTedfdUedfdVej*fdWej dfgdXej*dfdYej*dfdWedfdZej,dfd[e-dfgd\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� Z0dtS )ur z
For Perl source code.
�Perlzhttps://www.perl.org�perl�pl)�*.pl�*.pm�*.tz*.perlztext/x-perlzapplication/x-perl� z"/(\\\\|\\[^\\]|[^\\/])*/[egimosx]*�#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)�case�continue�do�else�elsif�forZforeach�if�last�my�next�our�redo�reset�then�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*�balanced-regexzs<(\\\\|\\[^\\]|[^\\>])*>\s*zs\[(\\\\|\\[^\\]|[^\\\]])*\]\s*zs\((\\\\|\\[^\\]|[^\\)])*\)\s*z&m?/(\\\\|\\[^\\]|[^\\/\n])*/[gcimosx]*zm(?=[/!\\{<\[(@%$])z6((?<==~)|(?<=\())\s*/(\\\\|\\[^\\]|[^\\/])*/[gcimosx]*z\s+)��abs�accept�alarm�atan2�bindZbinmode�blessZcaller�chdir�chmod�chomp�chop�chown�chr�chroot�closeZclosedir�connectr �cosZcryptZdbmcloseZdbmopen�defined�delete�die�dumpZeachZendgrentZ
endhostentZ endnetentZendprotoentZendpwentZ
endservent�eof�eval�exec�exists�exit�exp�fcntl�fileno�flock�forkr8 Zformline�getcZgetgrent�getgrgid�getgrnam�
gethostbyaddr�
gethostbynameZ
gethostent�getloginZgetnetbyaddrZgetnetbynameZ getnetent�getpeername�getpgrp�getppid�getpriority�getprotobynameZgetprotobynumberZgetprotoentZgetpwent�getpwnam�getpwuid�
getservbyname�
getservbyportZ
getservent�getsockname�
getsockopt�glob�gmtimeZgoto�grep�hex�import�index�int�ioctl�join�keys�killr% �lcZlcfirst�length�link�listen�local� localtime�log�lstat�map�mkdirZmsgctlZmsggetZmsgrcvZmsgsndr&