HOME


Mini Shell 1.0
DIR: /usr/lib/python3/dist-packages/pygments/lexers/__pycache__/
Upload File :
Current File : //usr/lib/python3/dist-packages/pygments/lexers/__pycache__/erlang.cpython-312.pyc
�

|�e�J����dZddlZddlmZmZmZmZmZmZm	Z	m
Z
ddlmZm
Z
mZmZmZmZmZmZmZgd�ZGd�de�ZGd�d	e�Zd
�Zdd�ZGd�d
e�ZGd�de�Zy)z�
    pygments.lexers.erlang
    ~~~~~~~~~~~~~~~~~~~~~~

    Lexers for Erlang.

    :copyright: Copyright 2006-2023 by the Pygments team, see AUTHORS.
    :license: BSD, see LICENSE for details.
�N)�Lexer�
RegexLexer�bygroups�words�
do_insertions�include�default�line_re)	�Comment�Operator�Keyword�Name�String�Number�Punctuation�Generic�
Whitespace)�ErlangLexer�ErlangShellLexer�ElixirConsoleLexer�ElixirLexerc�N�eZdZdZdZdZdgZgd�ZdgZdZ	dZ
d	Zd
ZdZ
dZd
ZdZdZdZdezdzezdzezdzezdzZdezdze
zdzZdZdefdeee�fee	d��efee
d��ej8feed��ej<fdedfeefde dfdejBfd ejBfd!e
zd"zeejDe�fd#e
zd$zeejFee�fd%ezd&ze$jJfd'e$jJfd(e$jLfd)efeejNfe
efd*ezejPfd+ezd,ze jRfd-e
zd.ze
zd/zejBfd0ejTfd1ed2fgee jVfde d3fd4e jXfd5e fd6e fgd7ezdzeejZeeejP�d3fd8ezdzeejZeeejB�d3fe
ejZd3fge.d9�d:ed;fd<ed;fd=ed3fge.d9�d>ed3fd?ed3fgd@�Z/yA)BrzT
    For the Erlang functional programming language.

    .. versionadded:: 0.9
    �Erlangzhttps://www.erlang.org/�erlang)z*.erlz*.hrlz*.esz	*.escriptz
text/x-erlang)�after�begin�case�catch�cond�end�fun�if�let�of�query�receive�try�when){�abs�append_element�apply�atom_to_list�binary_to_list�bitstring_to_list�binary_to_term�bit_size�bump_reductions�	byte_size�cancel_timer�check_process_code�
delete_module�	demonitor�disconnect_node�display�element�erase�exit�float�
float_to_list�fun_info�fun_to_list�function_exported�garbage_collect�get�get_keys�group_leader�hash�hd�integer_to_list�iolist_to_binary�iolist_size�is_atom�	is_binary�is_bitstring�
is_boolean�
is_builtin�is_float�is_function�
is_integer�is_list�	is_number�is_pid�is_port�is_process_alive�	is_record�is_reference�is_tuple�length�link�list_to_atom�list_to_binary�list_to_bitstring�list_to_existing_atom�
list_to_float�list_to_integer�list_to_pid�
list_to_tuple�load_module�localtime_to_universaltime�
make_tuple�md5�	md5_final�
md5_update�memory�
module_loaded�monitor�monitor_node�node�nodes�	open_port�phash�phash2�pid_to_list�
port_close�port_command�port_connect�port_control�	port_call�	port_info�port_to_list�process_display�process_flag�process_info�purge_module�put�
read_timer�ref_to_list�register�resume_process�round�send�
send_after�send_nosuspend�
set_cookie�
setelement�size�spawn�
spawn_link�
spawn_monitor�	spawn_opt�split_binary�start_timer�
statistics�suspend_process�system_flag�system_info�system_monitor�system_profile�term_to_binary�tl�trace�trace_delivered�
trace_info�
trace_pattern�trunc�
tuple_size�
tuple_to_list�universaltime_to_localtime�unlink�
unregister�whereisz1(\+\+?|--?|\*|/|<|>|/=|=:=|=/=|=<|>=|==?|<-|!|\?))�and�andalso�band�bnot�bor�bsl�bsr�bxor�div�not�or�orelse�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(?:[2-9]|[12][0-9]|3[0-6])�\s+z	(%.*)(\n)z\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:=�\}�,�(?=\}))r�r�r�r�r�N)0�__name__�
__module__�__qualname__�__doc__�name�url�aliases�	filenames�	mimetypes�keywords�builtins�	operators�word_operators�atom_re�variable_re�esc_char_re�esc_octal_re�
esc_hex_re�esc_ctrl_re�	escape_re�macro_re�base_rerrrrr
r�Builtinr�Wordrr�Label�	Namespace�Functionr�Integer�Float�Variable�Constant�Char�Hashbang�Escape�Interpol�Entityr�tokens���8/usr/lib/python3/dist-packages/pygments/lexers/erlang.pyrrs����D�
#�C��j�G�7�I� �!�I��H�
�H�<E�I��N�
-�G�"�K�%�K�'�L�9�J��K��K�'��,�\�9�$�>�z�I�$�N�{�Z�[`�`�I��k�!�$�&�w�.�t�3�H�+�G��Z� �
�8�G�Z�8�9�
�8�E�
*�G�4�
�8�E�
*�D�L�L�9�
�>�%�
0�(�-�-�@�
�K��-�
��!�
�6�8�$�
�D�J�J��
�D�J�J��
�7�]�V�
#�X�d�n�n�k�%J�K�
�w�
&��
6�
�d�m�m�Z��
=�
?�
��
�"2�
2�F�N�N�C�
�&�.�.�)�
�f�l�l�+�
"�K�0�
�$�-�-�(�
�d�O�
�8�^�T�]�]�+�
�i�
� 1�
1�6�;�;�?�
�'�\�(�
"�7�
*�5�
0�$�*�*�=��'�*�*�+��[�)�,�;
�@��
�
�&�
�6�6�"�
+�V�_�_�=�
�&�!�
�6�N�
�#�8�
+�D�
0�
�d�k�k�:�{�D�M�M�
J�F�
T�
"�8�
+�D�
0�
�d�k�k�:�{�D�J�J�
G��
Q�
�d�k�k�6�*�
�
�F�O�
�K��+�
�K��+�
�K��(�	
�
�F�O�
�;��'�
��V�,�
�i9�Fr�rc�P�eZdZdZdZdgZdgZdgZejd�Z
d�Zy)	rzM
    Shell sessions in erl (for Erlang code).

    .. versionadded:: 1.1
    zErlang erl session�erlz*.erl-shztext/x-erl-shellsessionz(?:\([\w@_.]+\))?\d+>(?=\s|\Z)c	#�K�tdi|j��}d}g}tj|�D]�}|j	�}|j
j
|�}|�J|j�}|jt|�dtj|d|fgf�|||dz
}�z|r't||j|��Ed{���d}g}|jd�r$|j�tj |f����|j�tj"|f����|r$t||j|��Ed{���yy7��7��w)N�r�*r�)r�optionsr
�finditer�group�
_prompt_re�matchr �append�lenr�Promptr�get_tokens_unprocessed�
startswith�start�	Traceback�Output)	�self�text�erlexer�curcode�
insertionsr��line�mr s	         r�r�z'ErlangShellLexer.get_tokens_unprocessed�sV�����-����-�����
��%�%�d�+�	>�E��;�;�=�D����%�%�d�+�A��}��e�e�g���!�!�3�w�<�%&�����T�c�
�$C�#D�#F�G��4���:�%���,�Z�-4�-K�-K�G�-T� V�V�V� �G�!#�J��?�?�3�'��+�+�-��):�):�D�@�@��+�+�-�����=�=�#	>�$�$�Z�%,�%C�%C�G�%L�N�
N�
N��V��
N�s%�C	E�E�BE�E�E�EN)r�r�r�r�r�r�r�r��re�compiler�r�r�r�r�rr�s;���
 �D��g�G���I�*�+�I�����=�>�J�Nr�rc�x�i}d|�d�|ftd�d|fd|�d�t|�dftd�g|d	|z<|S)
N�[^#�\\]+�escapes�\\.r�r�r��interpol�string_)rr)r��symbol�token�statess    r��gen_elixir_string_rulesr�sR��
�F��	!�5�)��	��	����	�h�u�o�v�6��
�� �F�9�t����Mr�c�z�|r'd|�d�|ftd�d|f|�d�|dftd�gSd|�d�|fd|f|�d�|dfgS)	Nrr
rrz	[a-zA-Z]*r�rz[^)r)�term�
term_classrrs    r��gen_elixir_sigstr_rulesr�sn���'�
)�5�1��I��
�U�O�#�
%�u�f�5��J��
�	
��'�
(�%�0�
�U�O�#�
%�u�f�5�
�	
r�c��eZdZdZdZdZgd�Zgd�ZdgZdZ	dZ
d	Zd
ZdZ
dZd
ZdZdZdZdZd�Zd�Zdj-d�eD��Zdj-d�eD��Zdj-d�eD��Zde�de�de�d�Zdj-d�eD��ZdZdezZddeizZde�de�de�d�ZdZ d Z!d!Z"d"Z#gd#e$f�d$e%jLf�d%e!ze'e(jRe(jTe+jXe(jT�f�d%e"ze'e(jRe(jT�f�d%e#ze'e(jRe(jT�f�d&e(jRf�d'e(jZf�d(e.f�d)e ze(jZf�d)eze(jZf�d*e(jZd+f�d,e(jZd-f�d.e �de�d/�e'e(jZe/�f�d0eze0jbf�ee0f�d1e�d�e'e/e0jd�f�ee.f�ee.f�ee/f�d2e0jff�ee.f�d3e+jhf�d4e+jjf�d5e+jXf�d6e+jlf�d7e+jnf�d8e'e(jpe$�d9f�d:e'e(jpe$�d;f�d<e(jrd=f�d>e(jLd?f�e:d@��dAe/dBf�dCe/dDf�dEe'e$e(jp�dFfe:dG�gdHe(jpdFfe:dG�gdIe(jpfe:dJ�dKe(jpfdLe(jpfe:dM�gdNe(jpfdKe(jpfdLe$fge!e'e(jTe+jXe(jT�fe"e(jTfe#e(jTfgdOe(jvdPfgdQe(jvdFfe:dR�ge:dR�d)e/dSfdTe/dSfdQe/dFfge:dR�dUe/dFfdVe/dFfge:dR�dQe/dFfgdW�Z<e<j{e>dXd<e(jr��e<j{e>dYd>e(jL��e<j{e>dZd<e(jZ��e<j{e>d[d>e(jZ��e<j{e��y\)]rz=
    For the Elixir language.

    .. versionadded:: 1.5
    �Elixirzhttp://elixir-lang.org)�elixir�ex�exs)z*.exz*.eexz*.exsz*.leexz
text/x-elixir)�fn�dor r�else�rescuer)r�r�r�r(�in)
rr�forr"�unlessr'r&�raise�quote�unquote�unquote_splicing�throw�super)�def�defp�	defmodule�defprotocol�defmacro�	defmacrop�defdelegate�defexception�	defstruct�defimpl�defcallback)�import�require�use�alias)�nil�true�false)�_�
__MODULE__�__DIR__�__ENV__�
__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<~)	�<�>�+�-r��/�!�^�&)z\\r�r�r�r�r��:�;r��[�]c#�dK�tj||�D�]\}}}|tur�||jvr|t|f���*||j
vr|tj|f���N||jvr|t|f���h||jvr|tj|f����||jvr|tj|f����||jvr|tj|f����||jvr!|tj j"|f����|||f����|||f����y�w�N)rr�r�KEYWORDr
�KEYWORD_OPERATORrr��BUILTIN�BUILTIN_DECLARATION�Declaration�BUILTIN_NAMESPACEr��CONSTANTr��
PSEUDO_VARr��Pseudo)rr�indexr�values     r�r�z"ElixirLexer.get_tokens_unprocesseds����#-�#D�#D�T�4�#P�	*��E�5�%���}��D�L�L�(���%�/�/��d�3�3�3������5�5��d�l�l�*���%�/�/��d�6�6�6���!4�!4�e�;�;��d�4�4�4���!2�!2�E�9�9��d�m�m�+������5�5��d�o�o�-�����!4�!4�e�;�;����-�-��U�E�)�)�'	*�s�D.D0c
���gd�}ddg}tj}dgi}|D]�\}}|dxxd|�d�t|tj�|dz|dzffd	|�d�t|tj�|dz|d
zffgz
cc<d|dft	d�g||dz<d
|zdztt
tj�dft
d�g||dz<d
|zdztt
tj�dft
d�g||d
z<��|D]P\}}}}|dxxd|z||dzfd|z||d
zfgz
cc<t|||�||dz<t|||d��||d
z<�R|S)N))�\{r��}�cb)z\[�\]rb�sb)z\(z\)r��pa)rErFrF�ab)rIrIrI�slas)�\|rgr��pipe)r�r�r��quot)�'rjrj�apos)z"""�triquot)z'''�triapos�sigilsz	(~[a-z])(r�z-endz-intpz	(~[A-Z])(z-no-intpz	[a-zA-Z]+r�z^(\s*)(�heredoc_interpol�heredoc_no_interpolz~[a-z]z~[A-Z]F)r)r�Otherr�Heredocr	rrr)	�terminators�	triquotesrrrr��lterm�rterm�rterm_classs	         r��gen_elixir_sigil_rulesz"ElixirLexer.gen_elixir_sigil_ruless���	
��)�*=�>�	������B���#�	�J�D�$��8��$(�*�H�U�F�N�N�,K��F�]�D�7�N�3�5�$(�*�H�U�F�N�N�,K��F�]�D�:�$5�6�8�!�
���u�f�-����%�F�4�&�=�!�
�d�"�S�(�(�:�v�~�~�*N�PV�W��*�+�&�F�4�'�>�"�
�d�"�C�'��*�f�n�n�)M�v�V��-�.�)�F�4�*�$�%�!	�*0;�	S�+�E�5�+�t��8���U�"�E�4�'�>�:��U�"�E�4�*�+<�=�!�
��
(��{�E�B�
�4�'�>�"�(��{�E�E�R�
�4�*�$�%�	S��
r�r�c#�FK�|]}tj|����y�wrR�r	�escape��.0�ss  r��	<genexpr>zElixirLexer.<genexpr>Q�����7�q�b�i�i��l�7���!c#�FK�|]}tj|����y�wrRrzr|s  r�rzElixirLexer.<genexpr>Rr�r�c#�FK�|]}tj|����y�wrRrzr|s  r�rzElixirLexer.<genexpr>Sr�r�r�r�c#�FK�|]}tj|����y�wrRrzr|s  r�rzElixirLexer.<genexpr>Us����@�q�b�i�i��l�@�r�z\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])r�z#.*$z(\?)z\?\\?.z:::z::rMz:"�string_double_atomz:'�string_single_atomr�z
)(:)(?=\s|\n)�@z(%?)(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��
string_doublerj�
string_singlernz%\{r�r_�tuplez^(\s*)(""")r�roz^\s*'''z	[^#\\\n]+rrz\n+rz[^\\\n]+r��interpol_stringr�r�r�r�r�r�)r�r�r�rorprrr�r�r�r��double�single�double_atom�single_atomN)?r�r�r�r�r�r�r�r�r�rSrTrUrVrXrYrZ�
OPERATORS3�
OPERATORS2�
OPERATORS1�PUNCTUATIONr�rx�join�op3_re�op2_re�op1_re�ops_re�punctuation_rer��name_re�
modname_re�complex_name_re�special_atom_re�long_hex_char_re�hex_char_re�escape_char_rerr�Singlerrr�r�r�Hex�Symbolrrr�	Attribute�Classr��Bin�Octr�r�rr�Doublerr�r��updaterr�r�r�rr�s ����D�
"�C�%�G�4�I� �!�I�E�G�9���G���
>��'�H�H�J��J��J�?�J��K�*�,2�h�X�X�7�J�7�
7�F�
�X�X�7�J�7�
7�F�
�X�X�7�J�7�
7�F� &���
7�F��X�X�@�K�@�@�N��E�*�U�2�G�9�W�e�<L�L�J�)0�*�f�E�O�5�O�2��)�K�(�N�=
�
�Z� �=
�
�g�n�n�%�=
�
�'�
'���������
�
�F�M�M�C�
D�=
��{�
"�����f�m�m�4�
6�=
��~�
%�����f�m�m�4�
6�=
�����$�=
��V�]�]�#�=
� �H��!=
�&�O�
#�V�]�]�3�'=
�(�O�
#�V�]�]�3�)=
�*�F�M�M�#7�8�+=
�,�F�M�M�#7�8�-=
�2(7��
H������4�
6�3=
�:�G�^�T�^�^�,�;=
�@�d�O�A=
�B(�
)�8�K����+L�M�C=
�H�X��I=
�J�X��K=
�L�[�)�M=
�N�T�[�[�!�O=
�P�X��Q=
�V����$�W=
�X�&�*�*�%�Y=
�Z�v�z�z�*�[=
�\:�6�<�<�H�]=
�^�6�>�>�*�_=
�d�H�V�^�^�Z�@� �
"�e=
�h�X�f�n�n�j�A� �
"�i=
�l�6�=�=�/�2�m=
�n�6�=�=�/�2�o=
�r
�H��s=
�v�[�)�,�w=
�x�K��)�y=
�~�X�j�&�.�.�A�6�J��&�'�
�
�����0��&�'�
�
�6�>�>�*��I��
�V�^�^�$�
�V�^�^�$��J��
��&�.�.�)�
�V�^�^�$�
�Z� � 
�������
�
�F�M�M�B�
D�
�&�-�-�(�
�V�]�]�+�	
��V�_�_�&7�8�
��F�O�O�V�,��F�O�
�

�F�O�
�;�	�*�
�K��+�
�K��(�	
�
�F�O�
�;��'�
��V�,�
�
�F�O�
�K��(�
�Wo�F�`�M�M�)�(�C����G�H�
�M�M�)�(�C����G�H�
�M�M�)�-��f�m�m�L�M�
�M�M�)�-��f�m�m�L�M�
�M�M�(�*�+r�rc�J�eZdZdZdZdgZdgZejd�Z	d�Z
y)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 session�iexztext/x-elixir-shellsessionz,(iex|\.{3})((?:\([\w@_.]+\))?\d+|\(\d+\))?> c	#�K�tdi|j��}d}d}g}tj|�D�])}|j	�}|jd�r<d}|j
t|�dtj|ddfgf�||ddz
}�a|jj|�}|�Ld}|j�}	|j
t|�dtj|d|	fgf�|||	dz
}��|r't||j|��Ed{���d}g}|rtjntj }
|j#�|
|f����,|r$t||j|��Ed{���yy7�i7��w)Nr�Fz** Tr���r�)rr�r
r�r�r�r�r�r�Errorr�r�r r�rr�rr�)rr�exlexerr�in_errorrr�rrr rs           r�r�z)ElixirConsoleLexer.get_tokens_unprocessed�s������-����-�������
��%�%�d�+�	5�E��;�;�=�D����u�%����!�!�3�w�<�%&��
�
�t�C�R�y�$A�#B�#D�E��4���9�$���O�O�)�)�$�/���=�$�H��%�%�'�C��%�%�s�7�|�)*�G�N�N�D��#�J�(G�'H�'J�K��t�C�D�z�)�G��#0�&��(F�(F�w�(O�$Q�Q�Q�"$��%'�
�-5�G�M�M�7�>�>�E��+�+�-���4�4�-	5�.�$��G�:�:�7�C�E�
E�
E��
Q��
E�s%�DF�F�A"F�F	�F�	FN)r�r�r�r�r�r�r�r	r
r�r�r�r�r�rr�s4���& �D��g�G�-�.�I�����K�L�J�Er�r)T)r�r	�pygments.lexerrrrrrrr	r
�pygments.tokenrrr
rrrrrr�__all__rrrrrrr�r�r��<module>r�sy���
����-�-�-���}�*�}�@&N�u�&N�R	�
�"x,�*�x,�v9E��9Er�