HEX
Server: Apache
System: Linux srv1.prosuiteplus.com 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64
User: prosuiteplus (1001)
PHP: 8.3.20
Disabled: NONE
Upload Files
File: //usr/lib/python3/dist-packages/pygments/lexers/__pycache__/erlang.cpython-38.pyc
U

G�
\�I�@s�dZddlZddlmZmZmZmZmZmZm	Z	ddl
mZmZm
Z
mZmZmZmZmZmZddddgZe�d	�ZGd
d�de�ZGdd�de�Zdd
�Zddd�ZGdd�de�ZGdd�de�ZdS)z�
    pygments.lexers.erlang
    ~~~~~~~~~~~~~~~~~~~~~~

    Lexers for Erlang.

    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
    :license: BSD, see LICENSE for details.
�N)�Lexer�
RegexLexer�bygroups�words�
do_insertions�include�default)	�Text�Comment�Operator�Keyword�Name�String�Number�Punctuation�Generic�ErlangLexer�ErlangShellLexer�ElixirConsoleLexer�ElixirLexerz.*?
c@sDeZdZdZdZdgZddddgZdgZd	Zd
Z	dZ
dZd
ZdZ
dZdZdZdZdededededZde
dedZdZdefdefeedd�efee	dd�ejfeedd�ejfdedfe
efded fd!ejfd"ejfd#ed$e ej!e�fd%ed&e ej"ee�fd'ed(e#j$fd)e#j$fd*e#j%fd+efe
ej&feefd,eej'fd-ed.ej(fd/ed0ed1ejfd2ej)fd3ed4fgeej*fded5fd6ej+fd7efd8efgd9ede ej,eeej'�d5fd:ede ej,eeej�d5feej,d5fge-d;�d<ed=fd>ed=fd?ed5fge-d;�d@ed5fdAed5fgdB�Z.dCS)Drz�
    For the Erlang functional programming language.

    Blame Jeremy Thurgood (http://jerith.za.net/).

    .. versionadded:: 0.9
    ZErlangZerlangz*.erlz*.hrlz*.esz	*.escriptz
text/x-erlang)�afterZbegin�case�catch�cond�endZfun�ifZletZofZquery�receive�try�when){�absZappend_elementZapplyZatom_to_listZbinary_to_listZbitstring_to_listZbinary_to_termZbit_sizeZbump_reductionsZ	byte_sizeZcancel_timerZcheck_process_codeZ
delete_moduleZ	demonitorZdisconnect_nodeZdisplay�elementZerase�exit�floatZ
float_to_listZfun_infoZfun_to_listZfunction_exportedZgarbage_collect�getZget_keysZgroup_leader�hashZhdZinteger_to_listZiolist_to_binaryZiolist_sizeZis_atomZ	is_binaryZis_bitstringZ
is_boolean�
is_builtinZis_floatZis_function�
is_integerZis_listZ	is_numberZis_pidZis_portZis_process_aliveZ	is_recordZis_referenceZis_tupleZlength�linkZlist_to_atomZlist_to_binaryZlist_to_bitstringZlist_to_existing_atomZ
list_to_floatZlist_to_integerZlist_to_pidZ
list_to_tuple�load_moduleZlocaltime_to_universaltimeZ
make_tupleZmd5Z	md5_finalZ
md5_updateZmemoryZ
module_loadedZmonitorZmonitor_nodeZnodeZnodesZ	open_portZphashZphash2Zpid_to_listZ
port_closeZport_commandZport_connectZport_controlZ	port_callZ	port_infoZport_to_listZprocess_displayZprocess_flagZprocess_infoZpurge_moduleZputZ
read_timerZref_to_list�registerZresume_process�round�sendZ
send_afterZsend_nosuspendZ
set_cookieZ
setelement�sizeZspawnZ
spawn_linkZ
spawn_monitorZ	spawn_optZsplit_binaryZstart_timerZ
statisticsZsuspend_processZsystem_flagZsystem_infoZsystem_monitorZsystem_profileZterm_to_binaryZtlZtraceZtrace_deliveredZ
trace_infoZ
trace_patternZtruncZ
tuple_sizeZ
tuple_to_listZuniversaltime_to_localtime�unlinkZ
unregisterZwhereisz1(\+\+?|--?|\*|/|<|>|/=|=:=|=/=|=<|>=|==?|<-|!|\?))�andZandalsoZbandZbnotZborZbslZbsrZbxorZdiv�not�orZorelseZrem�xorz(?:[a-z]\w*|'[^\n']*[^\\]')z
(?:[A-Z_]\w*)z[bdefnrstv\'"\\]z[0-7][0-7]?[0-7]?z%(?:x[0-9a-fA-F]{2}|x\{[0-9a-fA-F]+\})z
\^[a-zA-Z]z(?:\\(?:�|z))z(?:�)z(?:[2-9]|[12][0-9]|3[0-6])�\s+z%.*\nz\b)�suffixz^-�	directive�"�string�<<�>>�(z)(:)z
(?:^|(?<=:))(z
)(\s*)(\()z[+-]?z
#[0-9a-zA-Z]+z[+-]?\d+z[+-]?\d+.\d+z[]\[:_@\".{}()|;,]z\?z\$(?:z|\\[ %]|[^\\])�#z(:?\.z)?z\A#!.+\n�#\{�map_key�#popz~[0-9.*]*[~#+BPWXb-ginpswx]z[^"\\~]+�~z(define)(\s*)(\()(z(record)(\s*)(\()(�root�=>�map_valz:=�\}�,�(?=\}))rAr8r6r>rCN)/�__name__�
__module__�__qualname__�__doc__�name�aliases�	filenames�	mimetypes�keywords�builtinsZ	operatorsZword_operatorsZatom_reZvariable_reZesc_char_reZesc_octal_reZ
esc_hex_reZesc_ctrl_reZ	escape_reZmacro_reZbase_rer	r
rrr
�Builtinr�WordrrZLabelr�	NamespaceZFunctionr�Integer�FloatZVariable�Constant�CharZHashbang�Escape�Interpol�Entityr�tokens�r\r\�8/usr/lib/python3/dist-packages/pygments/lexers/erlang.pyrs�$
�� �
�
�
����c@s8eZdZdZdZdgZdgZdgZe�	d�Z
dd�Zd	S)
rzM
    Shell sessions in erl (for Erlang code).

    .. versionadded:: 1.1
    zErlang erl sessionZerlz*.erl-shztext/x-erl-shellsessionz
\d+>(?=\s|\Z)c
	cs�tf|j�}d}g}t�|�D]�}|��}|j�|�}|dk	r||��}|�t	|�dt
j|d|�fgf�|||d�7}q|r�t||�
|��D]
}	|	Vq�d}g}|�d�r�|��t
j|fVq|��t
j|fVq|r�t||�
|��D]
}	|	Vq�dS)N�r�*)r�options�line_re�finditer�group�
_prompt_re�matchr�append�lenr�Promptr�get_tokens_unprocessed�
startswith�start�	Traceback�Output)
�self�textZerlexer�curcode�
insertionsre�line�mr�itemr\r\r]ri�s6
��
�z'ErlangShellLexer.get_tokens_unprocessedN)rGrHrIrJrKrLrMrN�re�compilerdrir\r\r\r]r�s
cCsDi}d|f|ftd�d|fd|ft|�dftd�g|d|<|S)N�	[^#%s\\]+�escapes�\\.z(%s)r?�interpolZstring_)rr)rKZsymbol�token�statesr\r\r]�gen_elixir_string_rules�s�r}TcCs\|r4d|f|ftd�d|fd|f|dftd�gSd|f|fd|fd|f|dfgSdS)Nrwrxryz%s[a-zA-Z]*r?rzz[^%s\\]+)r)�termr{rzr\r\r]�gen_elixir_sigstr_rules�s�	�rc#@s�eZdZdZdZdddgZddgZdgZd	Zd
Z	dZ
dZd
ZdZ
dZdZdZdZdZdd�Zdd�Zd�dd�eD��Zd�dd�eD��Zd�dd�eD��ZdeeefZd�dd�eD��ZdZd eZd!d"eiZdeeefZd#Zd$Z d%Z!d&Z"d'e#fd(e$j%fd)e e&e'j(e'j)e*j+e'j)�fd)e!e&e'j(e'j)�fd)e"e&e'j(e'j)�fd*e'j(fd+e'j,fd,e-fd-ee'j,fd-ee'j,fd.e'j,d/fd0e'j,d1fd2eefe&e'j,e.�fd3ee/j0fee/fd4efe&e.e/j1�fee-fee-fee.fd5e/j2fee-fd6e*j3fd7e*j4fd8e*j+fd9e*j5fd:e*j6fd;e'j7d<fd=e'j7d>fd?e'j8d@fdAe'j%dBfe9dC�dDe.dEfdFe.dGfg!dHe'j7dIfe9dJ�gdKe'j7dIfe9dJ�gdLe'j7fe9dM�dNe'j7fdOe'j7fe9dP�gdQe'j7fdNe'j7fdOe'j7fge e&e'j)e*j+e'j)�fe!e'j)fe"e'j)fgdRe'j:dSfgdTe'j:dIfe9dU�ge9dU�d-e.dVfdWe.dVfdTe.dIfge9dU�dXe.dIfdYe.dIfge9dU�dTe.dIfgdZ�Z;e;�<e=d[d?e'j8��e;�<e=d\dAe'j%��e;�<e=d]d?e'j,��e;�<e=d^dAe'j,��e;�<e��d_S)`rzY
    For the `Elixir language <http://elixir-lang.org>`_.

    .. versionadded:: 1.5
    ZElixirZelixir�exZexsz*.exz*.exsz
text/x-elixir)�fnZdorr�elseZrescuer)r/r.r0r�in)
rr�forrZunlessrr�raiseZquoteZunquoteZunquote_splicing�throw�super)�defZdefpZ	defmoduleZdefprotocolZdefmacroZ	defmacropZdefdelegateZdefexceptionZ	defstructZdefimplZdefcallback)�importZrequireZuse�alias)Znil�trueZfalse)�_Z
__MODULE__Z__DIR__Z__ENV__Z
__CALLER__)z<<<z>>>z|||z&&&z^^^z~~~z===z!==z~>>z<~>z|~>z<|>)z==z!=z<=z>=z&&z||z<>z++z--z|>z=~z->z<-r2�.�=z~>z<~)	�<�>�+�-r_�/�!�^�&)z\\r9r:rBr;r3�:�;rE�[�]ccs�t�||�D]�\}}}|tkr�||jkr6|t|fVq�||jkrP|tj|fVq�||jkrh|t|fVq�||j	kr�|tj
|fVq�||jkr�|tj|fVq�||j
kr�|tj|fVq�||jkr�|tjj|fVq�|||fVq|||fVqdS�N)rrir
�KEYWORDr�KEYWORD_OPERATORrrR�BUILTIN�BUILTIN_DECLARATIONZDeclaration�BUILTIN_NAMESPACErS�CONSTANTrV�
PSEUDO_VARrQZPseudo)rnro�indexr{�valuer\r\r]ri
s$






z"ElixirLexer.get_tokens_unprocessedc
CsRddddddddg}d	d
g}tj}dgi}|D]�\}}|dd|ft|tj�|d
|dffd|ft|tj�|d
|dffg7<d|dftd�g||d
<d|tjdftd�g||d<d|tjdftd�g||d<q.|D]b\}}}|dd|||dfd|||dfg7<t||�||d<t||dd�||d<q�|S)N)�\{rD�cb)z\[z\]Zsb)z\(z\)Zpa)r�r�Zab)r�r�Zslas)�\|r��pipe)r7r7Zquot)�'r�Zapos)z"""Ztriquot)z'''Ztriapos�sigilsz(~[a-z])(%s)z-endz-intpz(~[A-Z])(%s)z-no-intpz	[a-zA-Z]+r?z^\s*�heredoc_interpol�heredoc_no_interpolz~[a-z]z~[A-Z]F)rz)rZOtherr�Heredocrrr)ZterminatorsZ	triquotesr{r|r~rKZltermZrtermr\r\r]�gen_elixir_sigil_rules#sN���������z"ElixirLexer.gen_elixir_sigil_rulesr2ccs|]}t�|�VqdSr��ru�escape��.0�sr\r\r]�	<genexpr>VszElixirLexer.<genexpr>ccs|]}t�|�VqdSr�r�r�r\r\r]r�Wsccs|]}t�|�VqdSr�r�r�r\r\r]r�Xsz(?:%s|%s|%s)ccs|]}t�|�VqdSr�r�r�r\r\r]r�Zsz\wz(?:\.\.\.|[a-z_]%s*[!?]?)z%[A-Z]%(alnum)s*(?:\.[A-Z]%(alnum)s*)*�alnumz(?:\.\.\.|<<>>|%\{\}|%|\{\})z(\\x\{)([\da-fA-F]+)(\})z(\\x[\da-fA-F]{1,2})z(\\[abdefnrstv])r4z#.*$z(\?)z\?\\?.z:::z::r�z:"Zstring_double_atomz:'Zstring_single_atomz(%s|%s)(:)(?=\s|\n)�@z	(%%?)(%s)z&\dz0b[01]+z0o[0-7]+z
0x[\da-fA-F]+z)\d(_?\d)*\.\d(_?\d)*([eE][-+]?\d(_?\d)*)?z	\d(_?\d)*z"""\s*�heredoc_doublez'''\s*$�heredoc_singler7Z
string_doubler�Z
string_singler�z%\{r>r��tuplez^\s*"""r?r�z^\s*'''z	[^#\\\n]+rxryz\n+rzz[^\\\n]+r=�interpol_stringrDrArCrBrErF)rAr�r�r�r�rxrzr�r>rCr�ZdoubleZsingleZdouble_atomZsingle_atomN)>rGrHrIrJrKrLrMrNr�r�r�r�r�r�r�Z
OPERATORS3Z
OPERATORS2Z
OPERATORS1ZPUNCTUATIONrir��joinZop3_reZop2_reZop1_reZops_reZpunctuation_rer�Zname_reZ
modname_reZcomplex_name_reZspecial_atom_reZlong_hex_char_reZhex_char_reZescape_char_rer	r
�SinglerrrWrXrZHexZSymbolrrr
Z	AttributeZClassrZZBinZOctrUrTr��DoublerrYr[�updater}r\r\r\r]r�s�
3����



�



�=
�
�����
�
�����nc@s2eZdZdZdZdgZdgZe�d�Z	dd�Z
dS)	ra8
    For Elixir interactive console (iex) output like:

    .. sourcecode:: iex

        iex> [head | tail] = [1,2,3]
        [1,2,3]
        iex> head
        1
        iex> tail
        [2,3]
        iex> [head | tail]
        [1,2,3]
        iex> length [head | tail]
        3

    .. versionadded:: 1.5
    zElixir iex sessionZiexztext/x-elixir-shellsessionz(iex|\.{3})(\(\d+\))?> c	cs:tf|j�}d}d}g}t�|�D]�}|��}|�d�rrd}|�t|�dtj	|dd�fgf�||dd�7}q"|j
�|�}|dk	r�d}|��}	|�t|�dtj
|d|	�fgf�|||	d�7}q"|r�t||�|��D]
}
|
Vq�d}g}|r�tj	ntj}|��||fVq"|�r6t||�|��D]}
|
V�q(dS)Nr^Fz** Tr���)rr`rarbrcrjrfrgr�Errorrdrerrhrrirmrk)rnroZexlexerrpZin_errorrqrerrrsrrtr{r\r\r]ri�sH

�
���z)ElixirConsoleLexer.get_tokens_unprocessedN)rGrHrIrJrKrLrNrurvrdrir\r\r\r]r�s
)T)rJruZpygments.lexerrrrrrrrZpygments.tokenr	r
rrr
rrrr�__all__rvrarrr}rrrr\r\r\r]�<module>s
$,�
+
x