
    MhJ                         d Z ddlZddlmZmZmZmZmZmZm	Z	m
Z
 ddlmZmZmZmZmZmZmZmZmZ g dZ G d de          Z G d d	e          Zd
 ZddZ G d de          Z G d de          ZdS )z
    pygments.lexers.erlang
    ~~~~~~~~~~~~~~~~~~~~~~

    Lexers for Erlang.

    :copyright: Copyright 2006-2025 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                      e Zd ZdZdZdZdgZg dZdgZdZ	dZ
d	Zd
ZdZdZdZdZdZdZdZdez   dz   ez   dz   ez   dz   ez   dz   Zdez   dz   ez   dz   ZdZdefd eee          f ee
d          ef eed          ej        f eed          ej        fde dfeefde!dfd ej"        fd!ej"        fd"ez   d#z    eej#        e           fd$ez   d%z    eej$        ee           fd&ez   d'z   e%j&        fd(e%j&        fd)e%j'        fd*e feej(        feefd+ez   ej)        fd,ez   d-z   e!j*        fd.ez   d/z   ez   d0z   ej"        fd1ej+        fd2e d3fgee!j,        fde!d4fd5e!j-        fd6e!fd7e!fgd8ez   dz    eej.        ee ej)                  d4fd9ez   dz    eej.        ee ej"                  d4feej.        d4fg e/d:          d;e d<fd=e d<fd>e d4fg e/d:          d?e d4fd@e d4fgdAZ0dBS )Cr   z9
    For the Erlang functional programming language.
    Erlanghttps://www.erlang.org/erlang)z*.erlz*.hrlz*.esz	*.escriptztext/x-erlangz0.9)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)1__name__
__module____qualname____doc__nameurlaliases	filenames	mimetypesversion_added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_rer   r   r   r   r   r   Builtinr   Wordr   r   Label	NamespaceFunctionr   IntegerFloatVariableConstantCharHashbangEscapeInterpolEntityr   tokens     V/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/pygments/lexers/erlang.pyr   r      sJ         D
#CjG777I !IMH
H< EIN
 -G"K%K'L9JKK',\9$>zI$N{Z[``Ik!$&w.t3H+G Z 88GZ889U8E***G4U8E***DL9U>%000(-@K-!68$DJDJ7]V#XXdnk%J%JKw&6XdmZ==?"22FNC&.)fl+"K0$-(dO8^T]+i 116;?'\("7*50$*= '*+ [),;
@ &66"+V_=&!6N
 #8+D0Xdk:{DMJJFT"8+D0Xdk:{DJGGQdk6*
 GFOOK+K+K(	
 GFOO;'V,
i9 9FFFr   r   c                   V    e Zd ZdZdZdgZdgZdgZdZdZ	 e
j        d          Zd	 Zd
S )r   z2
    Shell sessions in erl (for Erlang code).
    zErlang erl sessionerlz*.erl-shztext/x-erl-shellsessionr   z1.1z(?:\([\w@_.]+\))?\d+>(?=\s|\Z)c           	   #     K   t          di | j        }d}g }t          j        |          D ]}|                                }| j                            |          }|\|                                }|                    t          |          dt          j        |d |         fgf           |||d          z  }|r-t          ||                    |                    E d {V  d}g }|                    d          r$|                                t          j        |fV  |                                t          j        |fV  |r+t          ||                    |                    E d {V  d S d S )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   s     ----
%d++ 	> 	>E;;==D%%d++A}eegg!!3w<<%&TcT
$C#D#F G G G4:% $,Z-4-K-KG-T-T V  V V V V V V V V G!#J??3'' >++--):D@@@@@++--===== 	N$Z%,%C%CG%L%LN N N N N N N N N N N	N 	Nr   N)r   r   r   r   r   r   r   r   r   r   recompiler   r   r   r   r   r   r      sk           DgGI*+I
#CM=>>JN N N N Nr   r   c                     i }d| d|ft          d          d|fd| dt          |          dft          d          g|d	| z   <   |S )
N[^#\\]+escapes\\.r   r   r   interpolstring_)r   r   )r   symboltokenstatess       r   gen_elixir_string_rulesr     sg    F				e$			f%&1
 F9t Mr   Tc                     |r/d| d|ft          d          d|f|  d|dft          d          gS d| d|fd|f|  d|dfgS )	Nr  r  r  r  z	[a-zA-Z]*r   r  z[^)r   )term
term_classr  r  s       r   gen_elixir_sigstr_rulesr     s     
$J$$$e,IUO   %0J
 	
 $:###U+UO   %0
 	
r   c                   (   e Zd ZdZdZdZg dZg dZdgZdZ	dZ
d	Zd
ZdZdZdZdZdZdZdZdZd Zd Zd                    d eD                       Zd                    d eD                       Zd                    d eD                       Zde de de dZd                    d eD                       ZdZde dZde d e d!Zde de de dZ d"Z!d#Z"d$Z#d%Z$g d&e%fd'e&j'        fd(e"z    e(e)j*        e)j+        e,j-        e)j+                  fd(e#z    e(e)j*        e)j+                  fd(e$z    e(e)j*        e)j+                  fd)e)j*        fd*e)j.        fd+e/fd,e!z   e)j.        fd,e z   e)j.        fd-e)j.        d.fd/e)j.        d0fd1e! de  d2 e(e)j.        e0          fd3ez   e1j2        fee1fd4e d e(e0e1j3                  fee/fee/fee0fd5e1j4        fee/fd6e,j5        fd7e,j6        fd8e,j-        fd9e,j7        fd:e,j8        fd; e(e)j9        e%          d<fd= e(e)j9        e%          d>fd?e)j:        d@fdAe)j'        dBf e;dC          dDe0dEfdFe0dGfdH e(e%e)j9                  dIf e;dJ          gdKe)j9        dIf e;dJ          gdLe)j9        f e;dM          dNe)j9        fdOe)j9        f e;dP          gdQe)j9        fdNe)j9        fdOe%fge" e(e)j+        e,j-        e)j+                  fe#e)j+        fe$e)j+        fgdRe)j<        dSfgdTe)j<        dIf e;dU          g e;dU          d,e0dVfdWe0dVfdTe0dIfg e;dU          dXe0dIfdYe0dIfg e;dU          dTe0dIfgdZZ=e=>                     e?d[d?e)j:                             e=>                     e?d\dAe)j'                             e=>                     e?d]d?e)j.                             e=>                     e?d^dAe)j.                             e=>                     e                       d_S )`r   z"
    For the Elixir language.
    Elixirhttps://elixir-lang.org)elixirexexs)z*.exz*.eexz*.exsz*.leexztext/x-elixir1.5)fndor!   r   elserescuer   )r   r   r   r)   in)r   r    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              #     K   t          j        | |          D ]\  }}}|t          u r|| j        v r|t          |fV  %|| j        v r|t          j        |fV  @|| j        v r|t          |fV  V|| j	        v r|t          j
        |fV  q|| j        v r|t          j        |fV  || j        v r|t          j        |fV  || j        v r|t          j        j        |fV  |||fV  |||fV  d S N)r   r   r   KEYWORDr   KEYWORD_OPERATORr   r   BUILTINBUILTIN_DECLARATIONDeclarationBUILTIN_NAMESPACEr   CONSTANTr   
PSEUDO_VARr   Pseudo)r  r  indexr  values        r   r   z"ElixirLexer.get_tokens_unprocessed  so     #-#DT4#P#P 	* 	*E5%}}DL((%/////d33355555dl**%/////d666!4e;;;;;d444!2E99999dm++55555do--!4e;;;;;-----UE)))))'	* 	*r   c            
         g d} ddg}t           j        }dg i}|D ]\  }}|dxx         d| dt          |t           j                  |dz   |dz   ffd	| dt          |t           j                  |dz   |d
z   ffgz  cc<   d|dft	          d          g||dz   <   d|z   dz   t          t
          t           j                  dft          d          g||dz   <   d|z   dz   t          t
          t           j                  dft          d          g||d
z   <   | D ][\  }}}}|dxx         d|z   ||dz   fd|z   ||d
z   fgz  cc<   t          |||          ||dz   <   t          |||d          ||d
z   <   \|S )N))\{r   }cb)z\[\]rf  sb)z\(z\)r   pa)rI  rJ  rJ  ab)rM  rM  rM  slas)\|rk  r   pipe)r   r   r   quot)'rn  rn  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	   r   r   r  )	terminators	triquotesr  r  r  r   ltermrtermrterm_classs	            r   gen_elixir_sigil_rulesz"ElixirLexer.gen_elixir_sigil_rules  s   	
 	
 	
 )*=>	B# 	 	JD$8%d%%%xv~'F'FF]D7N35%d%%%xv~'F'FF]D:$568!  uf-%F4&=!
 d"S((:v~*N*NPVW*++&F4'>"
 d"C'*fn)M)MvV-..)F4*$%%
 0; 	S 	S+E5+t8U"E4'>:U"E4*+<=! 
 ({EBB 4'>" ({EERRR 4*$%% r   r   c              #   >   K   | ]}t          j        |          V  d S rV  r  escape.0ss     r   	<genexpr>zElixirLexer.<genexpr>O  *      77qbill777777r   c              #   >   K   | ]}t          j        |          V  d S rV  r~  r  s     r   r  zElixirLexer.<genexpr>P  r  r   c              #   >   K   | ]}t          j        |          V  d S rV  r~  r  s     r   r  zElixirLexer.<genexpr>Q  r  r   r   r   c              #   >   K   | ]}t          j        |          V  d S rV  r~  r  s     r   r  zElixirLexer.<genexpr>S  s*      @@qbill@@@@@@r   z\wz(?:\.\.\.|[a-z_]z*[!?]?)z[A-Z]z*(?:\.[A-Z]z*)*z(?:\.\.\.|<<>>|%\{\}|%|\{\})z(\\x\{)([\da-fA-F]+)(\})z(\\x[\da-fA-F]{1,2})z(\\[abdefnrstv])r   z#.*$z(\?)z\?\\?.z:::z::rQ  z:"string_double_atomz:'string_single_atomr   z)(:)(?=\s|\n)@z(%?)(z&\dz0b[01]+z0o[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_doublern  string_singlerr  z%\{r   rc  tuplez^(\s*)(""")r   rs  z^\s*'''z	[^#\\\n]+r  r  z\n+r  z[^\\\n]+r   interpol_stringr   r   r   r   r   r   )r   r  r  rs  rt  r  r  r  r   r   r  doublesingledouble_atomsingle_atomN)@r   r   r   r   r   r   r   r   r   r   rW  rX  rY  rZ  r\  r]  r^  
OPERATORS3
OPERATORS2
OPERATORS1PUNCTUATIONr   r|  joinop3_reop2_reop1_reops_repunctuation_realnumname_re
modname_recomplex_name_respecial_atom_relong_hex_char_rehex_char_reescape_char_rer   r   Singler   r   r   r   r   HexSymbolr   r   r   	AttributeClassr   BinOctr   r   rv  Doubler   r   r   updater  r   r   r   r   r      s         D
#C%%%G444I !IMEG9G
 >'HHJJJ ?JK* * *,2 2 2h XX77J77777FXX77J77777FXX77J77777F/F//V//f///FXX@@K@@@@@NE0%000G6%66E666J=W==z==F===O5O2)K(N=
Z =
gn%=

 ''
FMC CD=
 {"fm446=
 ~%fm446=
 $=
 V]#=
  H!=
& O#V]3'=
( O#V]3)=
* FM#78+=
, FM#78-=
2 C/BBOBBB4463=
: G^T^,;=
@ dOA=
B $j###XXk4:%F%FGC=
H XI=
J XK=
L [)M=
N T[!O=
P XQ=
V $W=
X &*%Y=
Z vz*[=
\ :6<H]=
^ 6>*_=
d HHV^Z@@ "e=
h XXfnjAA "i=
l 6=/2m=
n 6=/2o=
r GHs=
v [),w=
x K)y=
~ XXj&.AA6JG&''

 0G&''

 6>*GIV^$V^$GJ
 &.)V^$Z  
 
FMBBD&-(V]+	
 V_&78
 FOV,GFOO

 GFOO;	*K+K(	
 GFOO;'V,
 GFOOK(
Wo oF` MM))(CGGHHH
MM))(CGGHHH
MM))-fmLLMMM
MM))-fmLLMMM
MM((**+++++r   r   c                   P    e Zd ZdZdZdgZdgZdZdZ e	j
        d          Zd Zd	S )
r   a  
    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
    zElixir iex sessioniexztext/x-elixir-shellsessionr  r"  z,(iex|\.{3})((?:\([\w@_.]+\))?\d+|\(\d+\))?> c           	   #   b  K   t          di | j        }d}d}g }t          j        |          D ]R}|                                }|                    d          rJd}|                    t          |          dt          j	        |d d         fgf           ||dd          z  }v| j
                            |          }|^d}|                                }	|                    t          |          dt          j        |d |	         fgf           |||	d          z  }|r-t          ||                    |                    E d {V  d}g }|rt          j	        nt          j        }
|                                |
|fV  T|r+t          ||                    |                    E d {V  d S d S )Nr   Fz** Tr   r   )r   r   r
   r   r   r   r   r   r   Errorr   r   r!   r   r   r   r  r  )r  r  exlexerr  in_errorr  r   r	  r
  r!   r  s              r   r   z)ElixirConsoleLexer.get_tokens_unprocessed  s9     ----
%d++ 	5 	5E;;==Du%% 5!!3w<<%&tCRCy$A#B#D E E E49$O))$//=$H%%''C%%s7||)*GND#J(G'H'J K K KtCDDz)GG (#0&(F(Fw(O(O$Q $Q Q Q Q Q Q Q Q"$%'
-5IGMM7>E++--44444 	E$G::7CCE E E E E E E E E E E	E 	Er   N)r   r   r   r   r   r   r   r   r   r  r  r   r   r   r   r   r   r     sd         "  DgG-.I
#CMKLLJE E E E Er   r   )T)r   r  pygments.lexerr   r   r   r   r   r   r	   r
   pygments.tokenr   r   r   r   r   r   r   r   r   __all__r   r   r  r  r   r   r   r   r   <module>r     s    
			                   - - - - - - - - - - - - - - - - - - - - - -  | | | | |* | | |~&N &N &N &N &Nu &N &N &NR	 	 	
 
 
 
"w, w, w, w, w,* w, w, w,t9E 9E 9E 9E 9E 9E 9E 9E 9E 9Er   