|eJdZddlZddlmZmZmZmZmZmZm Z m Z ddl m Z m Z mZmZmZmZmZmZmZgdZGddeZGdd eZd Zdd ZGd d eZGddeZy)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 RegexLexerbygroupswords do_insertionsincludedefaultline_re) CommentOperatorKeywordNameStringNumber PunctuationGeneric Whitespace) ErlangLexerErlangShellLexerElixirConsoleLexer ElixirLexercNeZdZdZdZdZdgZgdZdgZdZ dZ d Z d Z d Z d Zd ZdZdZdZdezdzezdzezdzezdzZdezdze zdzZdZdefdeeefee defee dej8fee dej<fdedfe efde dfdejBfd ejBfd!e zd"zeejDefd#e zd$zeejFeefd%ezd&ze$jJfd'e$jJfd(e$jLfd)efeejNfe efd*ezejPfd+ezd,ze jRfd-e zd.ze zd/zejBfd0ejTfd1ed2fgee jVfde d3fd4e jXfd5e fd6e fgd7ezdzeejZeeejPd3fd8ezdzeejZeeejBd3fe ejZd3fge.d9d:ed;fded3fd?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)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)0__name__ __module__ __qualname____doc__nameurlaliases filenames mimetypeskeywordsbuiltins operatorsword_operatorsatom_re variable_re esc_char_re esc_octal_re esc_hex_re esc_ctrl_re escape_remacro_rebase_rerrr rr rBuiltinr WordrrLabel NamespaceFunctionrIntegerFloatVariableConstantCharHashbangEscapeInterpolEntityrtokens8/usr/lib/python3/dist-packages/pygments/lexers/erlang.pyrrs D #CjG7I !IH H<EIN -G"K%K'L9JKK',\9$>zI$N{Z[``Ik!$&w.t3H+GZ 8GZ8 9 8E *G 4 8E *DLL 9 >% 0(-- @ K -  ! 68 $ DJJ  DJJ  7]V #Xdnnk%J K w & 6 dmmZ = ?  "2 2FNN C &.. ) fll + "K 0 $-- ( dO 8^T]] + i  1 16;; ? '\( "7 *5 0$** ='** +[) ,; @ & 66 " +V__ = & ! 6N  #8 +D 0 dkk:{DMM JF T "8 +D 0 dkk:{DJJ G Q dkk6 *   FO K + K + K (   FO ; '  V , i9FrrcPeZdZdZdZdgZdgZdgZejdZ dZ y) rzM Shell sessions in erl (for Erlang code). .. versionadded:: 1.1 zErlang erl sessionerlz*.erl-shztext/x-erl-shellsessionz(?:\([\w@_.]+\))?\d+>(?=\s|\Z)c #Ktdi|j}d}g}tj|D]}|j }|j j |}|J|j}|jt|dtj|d|fgf|||dz }z|r't||j|Ed{d}g}|jdr$|jtj |f|jtj"|f|r$t||j|Ed{yy77w)Nr*r)roptionsr finditergroup _prompt_rematchr appendlenrPromptrget_tokens_unprocessed startswithstart TracebackOutput) selftexterlexercurcode insertionsrlinemr s rrz'ErlangShellLexer.get_tokens_unprocessedsV- - %%d+ >E;;=D%%d+A}eeg!!3w<%&Tc $C#D#FG4:%,Z-4-K-KG-T VVV G!#J??3'++-):):D@@++-==# >$ $Z%,%C%CG%LN N N V Ns%C E E BEEEEN) rrrrrrrrrecompilerrrrrrrs; DgG I*+I=>JNrrcxi}d|d|ftdd|fd|dt|dftdg|d |z<|S) N[^#\\]+escapes\\.rrrinterpolstring_)rr)rsymboltokenstatess rgen_elixir_string_rulesrsR F !5)   huov6   F9t  Mrcz|r'd|d|ftdd|f|d|dftdgSd|d|fd|f|d|dfgS) Nr r rrz [a-zA-Z]*rrz[^)r)term term_classrrs rgen_elixir_sigstr_rulesrsn' )5 1 I  UO# %uf 5 J    ' (% 0 UO# %uf 5  rceZdZdZdZdZgdZgdZdgZdZ dZ d Z d Z d Z d Zd ZdZdZdZdZdZdZdj-deDZdj-deDZdj-deDZdedededZdj-deDZdZdezZddeizZdedededZdZ d Z!d!Z"d"Z#gd#e$fd$e%jLfd%e!ze'e(jRe(jTe+jXe(jTfd%e"ze'e(jRe(jTfd%e#ze'e(jRe(jTfd&e(jRfd'e(jZfd(e.fd)e ze(jZfd)eze(jZfd*e(jZd+fd,e(jZd-fd.e ded/e'e(jZe/fd0eze0jbfee0fd1ede'e/e0jdfee.fee.fee/fd2e0jffee.fd3e+jhfd4e+jjfd5e+jXfd6e+jlfd7e+jnfd8e'e(jpe$d9fd:e'e(jpe$d;fde(jLd?fe:d@dAe/dBfdCe/dDfdEe'e$e(jpdFfe:dGgdHe(jpdFfe:dGgdIe(jpfe:dJdKe(jpfdLe(jpfe:dMgdNe(jpfdKe(jpfdLe$fge!e'e(jTe+jXe(jTfe"e(jTfe#e(jTfgdOe(jvdPfgdQe(jvdFfe:dRge:dRd)e/dSfdTe/dSfdQe/dFfge:dRdUe/dFfdVe/dFfge:dRdQe/dFfgdW ZdXddYd>e(jLedZdd[d>e(jZe>>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#dKtj||D]\}}}|tur||jvr |t|f*||j vr|t j|fN||jvr |t|fh||jvr|tj|f||jvr|tj|f||jvr|tj|f||jvr!|tj j"|f|||f |||fywN)rrrKEYWORDr KEYWORD_OPERATORr rBUILTINBUILTIN_DECLARATION DeclarationBUILTIN_NAMESPACErCONSTANTr PSEUDO_VARrPseudo)rrindexrvalues rrz"ElixirLexer.get_tokens_unprocesseds#-#D#DT4#P * E5%}DLL(%//d33355dll*%//d666!4!4e;;d444!2!2E99dmm+55doo-!4!4e;;--UE))' *sD.D0c 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]P\}}}}|dxxd|z||dzfd|z||d zfgz cc<t|||||dz<t|||d||d z<R|S)N))\{r}cb)z\[\]rbsb)z\(z\)rpa)rErFrFab)rIrIrIslas)\|rgrpipe)rrrquot)'rjrjapos)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 $(*HUFNN,KF]D7N35$(*HUFNN,KF]D:$568!  uf-%F4&= ! d"S((:v~~*NPVW*+&F4'> " d"C'*fnn)MvV-.)F4*$ %! *0; S +E5+t 8 U"E4'>:U"E4*+<=!   ({EB 4'> "({EER 4*$ % S rrc#FK|]}tj|ywrRr escape.0ss r zElixirLexer.Q7qbiil7!c#FK|]}tj|ywrRrzr|s rrzElixirLexer.Rrrc#FK|]}tj|ywrRrzr|s rrzElixirLexer.Srrrrc#FK|]}tj|ywrRrzr|s rrzElixirLexer.Us@qbiil@rz\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])rz#.*$z(\?)z\?\\?.z:::z::rMz:"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_doublerj string_singlernz%\{rr_tuplez ^(\s*)(""")rroz^\s*'''z [^#\\\n]+rrz\n+rz[^\\\n]+rinterpol_stringrrrrrr) rrrrorprrrrrrdoublesingle double_atom single_atomN)?rrrrrrrrrrSrTrUrVrXrYrZ OPERATORS3 OPERATORS2 OPERATORS1 PUNCTUATIONrrxjoinop3_reop2_reop1_reops_repunctuation_rername_re modname_recomplex_name_respecial_atom_relong_hex_char_re hex_char_reescape_char_rerr SinglerrrrrHexSymbolr rr AttributeClassrBinOctrrrrDoublerrrupdaterrrrrrs  D "C%G4I !IEG9G >'HHJJJ?JK*,2hXX7J7 7F XX7J7 7F XX7J7 7F & 7FXX@K@@N E*U2G9We> *_= dHV^^Z@  "e= hXfnnjA  "i= l6==/ 2m= n6==/ 2o= r H s= v[) ,w= xK )y= ~Xj&..A6 J & '  0 & ' 6>> * I  V^^ $ V^^ $ J   &.. ) V^^ $ Z   FMMB D &-- ( V]] +  V__&7 8 FOOV , FO FO ; * K + K (   FO ; '  V , FO K ( WoF` MM)(CGH MM)(CGH MM)-fmmLM MM)-fmmLM MM(*+rrcJeZdZdZdZdgZdgZejdZ dZ 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 sessioniexztext/x-elixir-shellsessionz,(iex|\.{3})((?:\([\w@_.]+\))?\d+|\(\d+\))?> c #Ktdi|j}d}d}g}tj|D])}|j }|j dr>E++-44- 5. $G::7CE E E  Q Es%DF FA"F F F  F N) rrrrrrrr r rrrrrrrs4& DgG-.IKLJErr)T)rr pygments.lexerrrrrrrr r pygments.tokenr r r rrrrrr__all__rrrrrrrrrrsy --- }*}@&Nu&NR  "x,*x,v9E9Er