Your IP : 216.73.216.213


Current Path : /opt/alt/python37/lib/python3.7/site-packages/pygments/lexers/__pycache__/
Upload File :
Current File : //opt/alt/python37/lib/python3.7/site-packages/pygments/lexers/__pycache__/erlang.cpython-37.pyc

B

ɽ�\�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-2019 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�ifZletZof�query�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_tuple�length�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_tuple�md5Z	md5_finalZ
md5_updateZmemoryZ
module_loadedZmonitorZmonitor_node�nodeZnodesZ	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�size�spawnZ
spawn_linkZ
spawn_monitorZ	spawn_optZsplit_binaryZstart_timerZ
statisticsZsuspend_processZsystem_flagZsystem_infoZsystem_monitorZsystem_profileZterm_to_binary�tl�traceZtrace_deliveredZ
trace_infoZ
trace_pattern�truncZ
tuple_sizeZ
tuple_to_listZuniversaltime_to_localtime�unlink�
unregisterZwhereisz1(\+\+?|--?|\*|/|<|>|/=|=:=|=/=|=<|>=|==?|<-|!|\?))�andZandalsoZbandZbnotZborZbslZbsrZbxorZdiv�not�orZorelse�rem�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])z\s+z%.*\nz\b)�suffixz^-�	directive�"�stringz<<z>>�(z)(:)z
(?:^|(?<=:))(z
)(\s*)(\()z[+-]?z
#[0-9a-zA-Z]+z[+-]?\d+z[+-]?\d+.\d+z[]\[:_@\".{}()|;,]z\?z\$(?:z|\\[ %]|[^\\])�#z(:?\.z)?z\A#!.+\nz#\{�map_keyz#popz~[0-9.*]*[~#+BPWXb-ginpswx]z[^"\\~]+�~z(define)(\s*)(\()(z(record)(\s*)(\()(�rootz=>�map_valz:=z\}�,z(?=\}))rFrAr?rDrGN)/�__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�Float�Variable�Constant�CharZHashbang�Escape�Interpol�Entityr�tokens�r_r_�G/opt/alt/python37/lib/python3.7/site-packages/pygments/lexers/erlang.pyrsv$




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
	cstf|j�}d}g}x�t�|�D]�}|��}|j�|�}|dk	r~|��}|�t	|�dt
j|d|�fgf�|||d�7}q |r�xt||�
|��D]
}	|	Vq�Wd}g}|�d�r�|��t
j|fVq |��t
j|fVq W|�rxt||�
|��D]
}	|	Vq�WdS)N�r�*)r�options�line_re�finditer�group�
_prompt_re�matchr�append�lenr�Promptr�get_tokens_unprocessed�
startswith�start�	Traceback�Output)
�self�textZerlexer�curcode�
insertionsrh�line�mr�itemr_r_r`rl�s0


z'ErlangShellLexer.get_tokens_unprocessedN)rIrJrKrLrMrNrOrP�re�compilergrlr_r_r_r`r�s
cCsDi}d|f|ftd�d|fd|ft|�dftd�g|d|<|S)Nz	[^#%s\\]+�escapesz\\.z(%s)z#pop�interpolZstring_)rr)rM�symbol�token�statesr_r_r`�gen_elixir_string_rules�srTcCs\|r4d|f|ftd�d|fd|f|dftd�gSd|f|fd|fd|f|dfgSdS)Nz	[^#%s\\]+rzz\\.z%s[a-zA-Z]*z#popr{z[^%s\\]+)r)�termr}r{r_r_r`�gen_elixir_sigstr_rules�s
r�c#@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)r8r7r9r�in)
rr�forrZunlessrr�raise�quote�unquoteZunquote_splicing�throw�super)�defZdefpZ	defmoduleZdefprotocolZdefmacroZ	defmacropZdefdelegateZdefexceptionZ	defstructZdefimplZdefcallback)�import�requireZuse�alias)Znil�true�false)�_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<-r<�.�=z~>z<~)	�<�>�+�-rb�/�!�^�&)z\\z<<z>>z=>rBr=�:�;rH�[�]ccs�x�t�||�D]�\}}}|tkr�||jkr8|t|fVq�||jkrR|tj|fVq�||jkrj|t|fVq�||j	kr�|tj
|fVq�||jkr�|tj|fVq�||j
kr�|tj|fVq�||jkr�|tjj|fVq�|||fVq|||fVqWdS)N)rrlr
�KEYWORDr�KEYWORD_OPERATORrrT�BUILTIN�BUILTIN_DECLARATIONZDeclaration�BUILTIN_NAMESPACErU�CONSTANTrY�
PSEUDO_VARrSZPseudo)rqrr�indexr}�valuer_r_r`rl
s$






z"ElixirLexer.get_tokens_unprocessedc
CsZddddddddg}d	d
g}tj}dgi}x�|D]�\}}|dd|ft|tj�|d
|dffd|ft|tj�|d
|dffg7<d|dftd�g||d
<d|tjdftd�g||d<d|tjdftd�g||d<q0Wxj|D]b\}}}|dd|||dfd|||dfg7<t||�||d<t||dd�||d<q�W|S)N)z\{z\}�cb)z\[z\]Zsb)z\(z\)�pa)r�r��ab)r�r�Zslas)z\|z\|�pipe)r@r@Zquot)�'r�Zapos)z"""Ztriquot)z'''Ztriapos�sigilsz(~[a-z])(%s)z-endz-intpz(~[A-Z])(%s)z-no-intpz	[a-zA-Z]+z#popz^\s*�heredoc_interpol�heredoc_no_interpolz~[a-z]z~[A-Z]F)r{)rZOtherr�Heredocrrr�)ZterminatorsZ	triquotesr}r~r�rMZltermZrtermr_r_r`�gen_elixir_sigil_rules#s<z"ElixirLexer.gen_elixir_sigil_rulesr<ccs|]}t�|�VqdS)N)rx�escape)�.0�sr_r_r`�	<genexpr>VszElixirLexer.<genexpr>ccs|]}t�|�VqdS)N)rxr�)r�r�r_r_r`r�Wsccs|]}t�|�VqdS)N)rxr�)r�r�r_r_r`r�Xsz(?:%s|%s|%s)ccs|]}t�|�VqdS)N)rxr�)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])z\s+z#.*$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_singler@Z
string_doubler�Z
string_singler�z%\{rDz\{�tuplez^\s*"""z#popr�z^\s*'''z	[^#\\\n]+rzz\\.z\n+r{z[^\\\n]+z#\{�interpol_stringz\}rFrGz=>rHz(?=\}))rFr�r�r�r�rzr{r�rDrGr�ZdoubleZsingleZdouble_atomZsingle_atomN)>rIrJrKrLrMrNrOrPr�r�r�r�r�r�r�Z
OPERATORS3Z
OPERATORS2Z
OPERATORS1�PUNCTUATIONrlr��joinZop3_reZop2_reZop1_reZops_reZpunctuation_rer�Zname_reZ
modname_reZcomplex_name_reZspecial_atom_reZlong_hex_char_reZhex_char_reZescape_char_rer	r
�SinglerrrZr[rZHexZSymbolrrr
�	AttributeZClassr]�Bin�OctrWrVr��Doublerr\r^�updaterr_r_r_r`r�s�
3














c@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	csJtf|j�}d}d}g}�xt�|�D]�}|��}|�d�rvd}|�t|�dtj	|dd�fgf�||dd�7}q&|j
�|�}|dk	r�d}|��}	|�t|�dtj
|d|	�fgf�|||	d�7}q&|r�xt||�|��D]
}
|
Vq�Wd}g}|�rtj	ntj}|��||fVq&W|�rFx t||�|��D]}
|
V�q6WdS)NraFz** Tr���)rrcrdrerfrmrirjr�Errorrgrhrrkrrlrprn)rqrrZexlexerrsZin_errorrtrhrurvrrwr}r_r_r`rl�s<



z)ElixirConsoleLexer.get_tokens_unprocessedN)rIrJrKrLrMrNrPrxryrgrlr_r_r_r`r�s
)T)rLrxZpygments.lexerrrrrrrrZpygments.tokenr	r
rrr
rrrr�__all__ryrdrrrr�rrr_r_r_r`�<module>
s$,
+
x