
    L&iJ                         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-2022 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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   d/z   ej!        fd0ej*        fd1ed2fgee j+        fde d3fd4e j,        fd5e fd6e fgd7ez   dz    eej-        eeej(                  d3fd8ez   dz    eej-        eeej!                  d3feej-        d3fg e.d9          d:ed;fd<ed;fd=ed3fg e.d9          d>ed3fd?ed3fgd@Z/dAS )Br   zT
    For the Erlang functional programming language.

    .. versionadded:: 0.9
    Erlangzhttps://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_rer   r   r   r   r   r   Builtinr   Wordr   r   Label	NamespaceFunctionr   IntegerFloatVariableConstantCharHashbangEscapeInterpolEntityr   tokens     c/home/geonatureadmin/si_en_reseau/tutos/venv/lib/python3.11/site-packages/pygments/lexers/erlang.pyr   r      sE         D
#CjG777I !I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                   N    e Zd ZdZdZdgZdgZdgZ ej	        d          Z
d ZdS )	r   zM
    Shell sessions in erl (for Erlang code).

    .. versionadded:: 1.1
    zErlang erl sessionerlz*.erl-shztext/x-erl-shellsessionz(?:\([\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   recompiler   r   r   r   r   r   r      sa         
  DgGI*+I=>>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     sf    FF	!5)		FF	huoov6
 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     
 
'ZZ)51IUO#tt%uf5J
 	

 'JJ(%0UO#tt%uf5
 	
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                    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z  Zddeiz  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-        d-fd.e ded/ e'e(j-        e/          fd0ez   e0j1        fee0fd1ed e'e/e0j2                  fee.fee.fee/fd2e0j3        fee.fd3e+j4        fd4e+j5        fd5e+j,        fd6e+j6        fd7e+j7        fd8 e'e(j8        e$          d9fd: e'e(j8        e$          d;fd<e(j9        d=fd>e(j&        d?f e:d@          dAe/dBfdCe/dDfdE e'e$e(j8                  dFf e:dG          gdHe(j8        dFf e:dG          gdIe(j8        f e:dJ          dKe(j8        fdLe(j8        f e:dM          gdNe(j8        fdKe(j8        fdLe$fge! e'e(j*        e+j,        e(j*                  fe"e(j*        fe#e(j*        fgdOe(j;        dPfgdQe(j;        dFf e:dR          g e:dR          d)e/dSfdTe/dSfdQe/dFfg e:dR          dUe/dFfdVe/dFfg e:dR          dQe/dFfgdWZ<e<=                     e>dXd<e(j9                             e<=                     e>dYd>e(j&                             e<=                     e>dZd<e(j-                             e<=                     e>d[d>e(j-                             e<=                     e                       d\S )]r   z=
    For the Elixir language.

    .. versionadded:: 1.5
    Elixirzhttp://elixir-lang.org)elixirexexs)z*.exz*.eexz*.exsz*.leexztext/x-elixir)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\[\]rb  sb)z\(z\)r   pa)rE  rF  rF  ab)rI  rI  rI  slas)\|rg  r   pipe)r   r   r   quot)'rj  rj  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$(DD*HUFN,K,KF]D7N35 5$(DD*HUFN,K,K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 rR  r	  escape.0ss     r   	<genexpr>zElixirLexer.<genexpr>Q  *      77qbill777777r   c              #   >   K   | ]}t          j        |          V  d S rR  rz  r|  s     r   r  zElixirLexer.<genexpr>R  r  r   c              #   >   K   | ]}t          j        |          V  d S rR  rz  r|  s     r   r  zElixirLexer.<genexpr>S  r  r   r   r   c              #   >   K   | ]}t          j        |          V  d S rR  rz  r|  s     r   r  zElixirLexer.<genexpr>U  s*      @@qbill@@@@@@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::rM  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_doublerj  string_singlern  z%\{r   r_  tuplez^(\s*)(""")r   ro  z^\s*'''z	[^#\\\n]+r  r  z\n+r  z[^\\\n]+r   interpol_stringr   r   r   r   r   r   )r   r  r  ro  rp  r  r  r  r   r   r  doublesingledouble_atomsingle_atomN)?r   r   r   r   r   r   r   r   r   rS  rT  rU  rV  rX  rY  rZ  
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_rer   r   Singler   r   r   r   r   HexSymbolr   r   r   	AttributeClassr   BinOctr   r   rr  Doubler   r   r   updater  r   r   r   r   r      s         D
"C%%%G444I !I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7FF &7FXX@@K@@@@@NE*U2G9We<LLJJ)0***fffEO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 (7H4463=
: G^T^,;=
@ dOA=
 =
B (ZZ)88K+L+LMC=
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                   H    e Zd ZdZdZdgZdgZ ej        d          Z	d Z
dS )r   a8  
    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
    zElixir iex sessioniexztext/x-elixir-shellsessionz,(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     sZ         &  DgG-.I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	 	 	
 
 
 
"x, x, x, x, x,* x, x, x,v9E 9E 9E 9E 9E 9E 9E 9E 9E 9Er   