YBFjJdZddlZddlmZmZmZmZmZmZm Z m Z ddl m Z m Z mZmZmZmZmZmZmZgdZGddeZGdd eZd Zdd ZGd deZGddeZdS)z pygments.lexers.erlang ~~~~~~~~~~~~~~~~~~~~~~ Lexers for Erlang. :copyright: Copyright 2006-present by the Pygments team, see AUTHORS. :license: BSD, see LICENSE for details. N)Lexer RegexLexerbygroupswords do_insertionsincludedefaultline_re) CommentOperatorKeywordNameStringNumber PunctuationGeneric Whitespace) ErlangLexerErlangShellLexerElixirConsoleLexer ElixirLexerceZdZdZdZdZdgZgdZdgZdZ dZ d Z d Z d Z d Zd ZdZdZdZdZdezdzezdzezdzezdzZdezdzezdzZdZdefdeeefee defee dejfee dejfde dfe efde!dfd ej"fd!ej"fd"ezd#zeej#e fd$ezd%zeej$ee fd&ezd'ze%j&fd(e%j&fd)e%j'fd*e feej(feefd+ezej)fd,ezd-ze!j*fd.ezd/zezd0zej"fd1ej+fd2e d3fgee!j,fde!d4fd5e!j-fd6e!fd7e!fgd8ezdzeej.ee ej)d4fd9ezdzeej.ee ej"d4feej.d4fge/d:d;e de d4fge/d:d?e d4fd@e d4fgdAZ0dBS)Crz9 For the Erlang functional programming language. Erlanghttps://www.erlang.org/erlang)z*.erlz*.hrlz*.esz *.escriptz text/x-erlangz0.9)afterbegincasecatchcondendfunifletofqueryreceivetrywhen){absappend_elementapply atom_to_listbinary_to_listbitstring_to_listbinary_to_termbit_sizebump_reductions byte_size cancel_timercheck_process_code delete_module demonitordisconnect_nodedisplayelementeraseexitfloat float_to_listfun_info fun_to_listfunction_exportedgarbage_collectgetget_keys group_leaderhashhdinteger_to_listiolist_to_binary iolist_sizeis_atom is_binary is_bitstring is_boolean is_builtinis_float is_function is_integeris_list is_numberis_pidis_portis_process_alive is_record is_referenceis_tuplelengthlink list_to_atomlist_to_binarylist_to_bitstringlist_to_existing_atom list_to_floatlist_to_integer list_to_pid list_to_tuple load_modulelocaltime_to_universaltime make_tuplemd5 md5_final md5_updatememory module_loadedmonitor monitor_nodenodenodes open_portphashphash2 pid_to_list port_close port_command port_connect port_control port_call port_info port_to_listprocess_display process_flag process_info purge_moduleput read_timer ref_to_listregisterresume_processroundsend send_aftersend_nosuspend set_cookie setelementsizespawn spawn_link spawn_monitor spawn_opt split_binary start_timer statisticssuspend_process system_flag system_infosystem_monitorsystem_profileterm_to_binarytltracetrace_delivered trace_info trace_patterntrunc tuple_size tuple_to_listuniversaltime_to_localtimeunlink unregisterwhereisz1(\+\+?|--?|\*|/|<|>|/=|=:=|=/=|=<|>=|==?|<-|!|\?))andandalsobandbnotborbslbsrbxordivnotororelseremxorz(?:[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:=\},(?=\}))rrrrrN)1__name__ __module__ __qualname____doc__nameurlaliases filenames mimetypes version_addedkeywordsbuiltins operatorsword_operatorsatom_re variable_re esc_char_re esc_octal_re esc_hex_re esc_ctrl_re escape_remacro_rebase_rerrr rr rBuiltinr WordrrLabel NamespaceFunctionrIntegerFloatVariableConstantCharHashbangEscapeInterpolEntityrtokensDC:\PYTHON\_runtimes\venv\Lib\site-packages\pygments/lexers/erlang.pyrrsJ D #CjG777I !IMH H<EIN -G"K%K'L9JKK',\9$>zI$N{Z[``Ik!$&w.t3H+GZ 88GZ88 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 , i99FFFrrcVeZdZdZdZdgZdgZdgZdZdZ e j dZ d Z d S) rz2 Shell sessions in erl (for Erlang code). zErlang erl sessionerlz*.erl-shztext/x-erl-shellsessionrz1.1z(?:\([\w@_.]+\))?\d+>(?=\s|\Z)c #Ktdi|j}d}g}tj|D]}|}|j|}|\|}|t|dtj |d|fgf|||dz }|r-t|| |Ed{Vd}g}|dr$|tj|fV|tj|fV|r+t|| |Ed{VdSdS)Nr*r)roptionsr finditergroup _prompt_rematchr!appendlenrPromptrget_tokens_unprocessed startswithstart TracebackOutput) selftexterlexercurcode insertionsrlinemr!s rrz'ErlangShellLexer.get_tokens_unprocesseds-- -- %d++ > >E;;==D%%d++A}eegg!!3w<<%&TcT $C#D#FGGG4:%$,Z-4-K-KG-T-T V VVVVVVVV G!#J??3''>++--):D@@@@@++--=====  N$Z%,%C%CG%L%LNN N N N N N N N N N N NrN)rrrrrrrrrrrecompilerrrrrrrsk DgG I*+I #CM=>>JNNNNNrrci}d|d|ftdd|fd|dt|dftdg|d |z<|S) N[^#\\]+escapes\\.rrrinterpolstring_)rr)rsymboltokenstatess rgen_elixir_string_rulesrsg F    e$   f%&1   F9t  MrTc|r/d|d|ftdd|f|d|dftdgSd|d|fd|f|d|dfgS) Nrrrrz [a-zA-Z]*rrz[^)r)term term_classrrs rgen_elixir_sigstr_rulesrs  $J $ $ $e , I   UO % 0 J     $: # # #U + UO % 0  rc(eZdZdZdZdZgdZgdZdgZdZ dZ d Z d Z d Z d Zd ZdZdZdZdZdZdZdZddeDZddeDZddeDZdedededZddeDZdZdedZded ed!ZdedededZ d"Z!d#Z"d$Z#d%Z$gd&e%fd'e&j'fd(e"ze(e)j*e)j+e,j-e)j+fd(e#ze(e)j*e)j+fd(e$ze(e)j*e)j+fd)e)j*fd*e)j.fd+e/fd,e!ze)j.fd,e ze)j.fd-e)j.d.fd/e)j.d0fd1e!de d2e(e)j.e0fd3eze1j2fee1fd4ede(e0e1j3fee/fee/fee0fd5e1j4fee/fd6e,j5fd7e,j6fd8e,j-fd9e,j7fd:e,j8fd;e(e)j9e%dfd?e)j:d@fdAe)j'dBfe;dCdDe0dEfdFe0dGfdHe(e%e)j9dIfe;dJgdKe)j9dIfe;dJgdLe)j9fe;dMdNe)j9fdOe)j9fe;dPgdQe)j9fdNe)j9fdOe%fge"e(e)j+e,j-e)j+fe#e)j+fe$e)j+fgdRe)j<dSfgdTe)j<dIfe;dUge;dUd,e0dVfdWe0dVfdTe0dIfge;dUdXe0dIfdYe0dIfge;dUdTe0dIfgdZ Z=e=>e?d[d?e)j:e=>e?d\dAe)j'e=>e?d]d?e)j.e=>e?d^dAe)j.e=>ed_S)`rz" For the Elixir language. Elixirhttps://elixir-lang.org)elixirexexs)z*.exz*.eexz*.exsz*.leexz text/x-elixir1.5)fndor!relserescuer)rrrr)in) rr forr#unlessr(r'raisequoteunquoteunquote_splicingthrowsuper) defdefp defmodule defprotocoldefmacro defmacrop defdelegate defexception defstructdefimpl defcallback)importrequireusealias)niltruefalse)_ __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<-r.=z~>z<~) <>+-r/!^&) z\\rrrrr:;r[]c#Ktj||D]\}}}|tur||jvr |t|fV%||jvr|t j|fV@||jvr |t|fVV||j vr|tj |fVq||j vr|tj |fV||j vr|tj|fV||jvr|tjj|fV|||fV|||fVdSN)rrrKEYWORDr KEYWORD_OPERATORr rBUILTINBUILTIN_DECLARATION DeclarationBUILTIN_NAMESPACErCONSTANTr PSEUDO_VARrPseudo)rrindexrvalues rrz"ElixirLexer.get_tokens_unprocessedso#-#DT4#P#P * * E5%}}DL((%/////d33355555dl**%/////d666!4e;;;;;d444!2E99999dm++55555do--!4e;;;;;-----UE)))))' * *rc gd}ddg}tj}dgi}|D]\}}|dxxd|dt|tj|dz|dzffd |dt|tj|dz|d zffgz cc<d |d ft d g||dz<d |zdztt tjd ft dg||dz<d |zdztt tjd ft dg||d z<|D][\}}}}|dxxd|z||dzfd|z||d zfgz cc<t|||||dz<t|||d||d z<\|S)N))\{r}cb)z\[\]rfsb)z\(z\)rpa)rIrJrJab)rMrMrMslas)\|rkrpipe)rrrquot)'rnrnapos)z"""triquot)z'''triapossigilsz (~[a-z])(rz-endz-intpz (~[A-Z])(z-no-intpz [a-zA-Z]+rz^(\s*)(heredoc_interpolheredoc_no_interpolz~[a-z]z~[A-Z]F)r)rOtherrHeredocr rrr) terminators triquotesrrrrltermrterm rterm_classs rgen_elixir_sigil_rulesz"ElixirLexer.gen_elixir_sigil_ruless    )*=>  B#  JD$ 8   %d%%%xv~'F'FF]D7N35%d%%%xv~'F'FF]D:$568!    uf-%F4&= ! d"S((:v~*N*NPVW*++&F4'> " d"C'*fn)M)MvV-..)F4*$ % % 0; S S +E5+t 8   U"E4'>:U"E4*+<=!     ({EBB 4'> "({EERRR 4*$ % % rrc#>K|]}tj|VdSrVr escape.0ss r zElixirLexer.O*77qbill777777rc#>K|]}tj|VdSrVr~rs rrzElixirLexer.Prrc#>K|]}tj|VdSrVr~rs rrzElixirLexer.Qrrrrc#>K|]}tj|VdSrVr~rs rrzElixirLexer.Ss*@@qbill@@@@@@rz\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])rz#.*$z(\?)z\?\\?.z:::z::rQz:"string_double_atomz:'string_single_atomrz )(:)(?=\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_doublern string_singlerrz%\{rrctuplez ^(\s*)(""")rrsz^\s*'''z [^#\\\n]+rrz\n+rz[^\\\n]+rinterpol_stringrrrrrr) rrrrsrtrrrrrrdoublesingle double_atom single_atomN)@rrrrrrrrrrrWrXrYrZr\r]r^ OPERATORS3 OPERATORS2 OPERATORS1 PUNCTUATIONrr|joinop3_reop2_reop1_reops_repunctuation_realnumname_re modname_recomplex_name_respecial_atom_relong_hex_char_re hex_char_reescape_char_rerr SinglerrrrrHexSymbolr rr AttributeClassrBinOctrrrvDoublerrrupdaterrrrrrs D #C%%%G444I !IMEG9G >'HHJJJ?JK***,222hXX77J777 7 7F XX77J777 7 7F XX77J777 7 7F /F / /V / /f / / /FXX@@K@@@@@N E0%000G6%66E666J=W==z==F===O5O2)K(N= Z = gn %= ' ' FMCC D = { "fm44 6= ~ %fm44 6=  $= V] #= H != &O #V] 3'= (O #V] 3)= *FM#7 8+= ,FM#7 8-= 2C/ B BO B B B 44 63= :G^T^ ,;= @dOA= B$j # # #XXk4:%F%F GC= HX I= JX K= L[ )M= NT[ !O= PX Q= V $W= X&* %Y= Zvz *[= \:6< H]= ^6> *_= dHHV^Z@@  "e= hXXfnjAA  "i= l6=/ 2m= n6=/ 2o= r GH  s= v[) ,w= xK )y= ~XXj&.AA6 J G& ' '  0 G& ' ' 6> * GI   V^ $ V^ $ GJ    &. ) V^ $ Z   FMBB D &- ( V] +  V_&7 8 FOV , GFOO GFOO ; * K + K (   GFOO ; '  V , GFOO K ( WooF` MM))(CGGHHH MM))(CGGHHH MM))-fmLLMMM MM))-fmLLMMM MM((**+++++rrcPeZdZdZdZdgZdgZdZdZe j dZ dZ d S) ra 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 zElixir iex sessioniexztext/x-elixir-shellsessionrr"z,(iex|\.{3})((?:\([\w@_.]+\))?\d+|\(\d+\))?> c #bKtdi|j}d}d}g}tj|D]R}|}|drJd}|t|dtj |ddfgf||ddz }v|j |}|^d}| } |t|dtj |d| fgf||| dz }|r-t|||Ed{Vd}g}|r tj n tj} || |fVT|r+t|||Ed{VdSdS)NrFz** Trr)rrr rrrrrrErrorrrr!rrrrr) rrexlexerrin_errorrrr r r!rs rrz)ElixirConsoleLexer.get_tokens_unprocesseds9-- -- %d++ 5 5E;;==Du%% 5!!3w<<%& tCRCy$A#B#DEEE49$O))$//=$H%%''C%%s7||)*GND#J(G'H'JKKKtCDDz)GG(#0&(F(Fw(O(O$Q$QQQQQQQQ"$%' -5IGMM7>E++--44444  E$G::7CCEE E E E E E E E E E E ErN) rrrrrrrrrr r rrrrrrrsd" DgG-.I #CMKLLJEEEEErr)T)rr pygments.lexerrrrrrrr r pygments.tokenr r r rrrrrr__all__rrrrrrrrrrs ----------------------   |||||*|||~&N&N&N&N&Nu&N&N&NR       "w,w,w,w,w,*w,w,w,t9E9E9E9E9E9E9E9E9E9Er