
    L&i~-                         d Z ddl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mZ ddlmZ ddlmZmZmZmZmZ ddgZdZd	Z G d
 de          Z G d de          ZdS )z
    pygments.lexers.julia
    ~~~~~~~~~~~~~~~~~~~~~

    Lexers for the Julia language.

    :copyright: Copyright 2006-2022 by the Pygments team, see AUTHORS.
    :license: BSD, see LICENSE for details.
    )Lexer
RegexLexerbygroupsdo_insertionswordsinclude)
TextCommentOperatorKeywordNameStringNumberPunctuationGeneric
Whitespaceshebang_matches)OPERATORS_LISTDOTTED_OPERATORS_LISTKEYWORD_LISTBUILTIN_LISTLITERAL_LIST
JuliaLexerJuliaConsoleLexeru)   (?:[a-zA-Z_¡-􏿿][a-zA-Z_0-9!¡-􏿿]*)uN  [²³¹ʰʲʳʷʸˡˢˣᴬᴮᴰᴱᴳᴴᴵᴶᴷᴸᴹᴺᴼᴾᴿᵀᵁᵂᵃᵇᵈᵉᵍᵏᵐᵒᵖᵗᵘᵛᵝᵞᵟᵠᵡᵢᵣᵤᵥᵦᵧᵨᵩᵪᶜᶠᶥᶦᶫᶰᶸᶻᶿ′″‴‵‶‷⁗⁰ⁱ⁴⁵⁶⁷⁸⁹⁺⁻⁼⁽⁾ⁿ₀₁₂₃₄₅₆₇₈₉₊₋₌₍₎ₐₑₒₓₕₖₗₘₙₚₛₜⱼⱽ]*c                   	   e Zd ZdZdZdZddgZdgZddgZg d	e	fd
e	fde
j        dfde
fdefdez   dz   ez   dz    eee	ee          fdez   dz   ej        fdez   dz    ee	ej                  fdez   dz   ez   dz    eej        e	ee	ej                  fdez   dz    eee	ej                  fdez   dz    eej        e	e          f eg eee          ef ed eD             e          ef eddg          efdej        fdez   dz   efd  eej        e          d!fd" eej        e          d#fd$ eej        ej                  d%fd& eej        ej                  d'fdez   d(z    eej        e          d)fdez   d*z    eej        e          d+fdez   d,z    eej        ej                  d-fdez   d.z    eej        ej                  d/fdez   d0z    eej        e          d1fd2ez   dz    eee	ej                  fd3ed1fd4ez   dz    eee	eeej                  fd5ez   dz    eee	eeej                  fd6ez   ej        f eg edd7ed6e8          ej        f eed9          ef ee d9          ej        f ee!d9          ej"        feefd:e#j$        fd;e#j$        fd<e#j$        fd=e#j%        fd>e#j&        fd?e#j'        fd@e#j(        f ed7g          efdAe
j        fde
j        dBfdCe
j        dDfdEe
j        fgdFedBfdGedDfeej        f e)dH          gdIedDfdJefgdKedDfdLej*        fdMefgdNez   ej+        fdO eej+        e          dPfgdQedBfdRedDf e)dH          gdSez   dTz    eeej                  dDfdUej*        f e)dV          dWej+        fdXefd7efgdYez   dTz    eeej                  dDfdUej*        f e)dV          dXefd7efgdZ eej        ej                  dDfdLej        fd[ej        fgd\ eej        ej                  dDfd]ej        fgd^ez   dTz    eej        ej                  dDfd_ej*        f e)dV          d`ej        fd7ej        fgdaez   dTz    eej        ej                  dDfdbej*        f e)dV          d`ej        fd7ej        fgdcZ,dd Z-deS )fr   z;
    For Julia source code.

    .. versionadded:: 1.6
    Juliazhttps://julialang.org/juliajlz*.jlztext/x-juliazapplication/x-juliaz\nz[^\S\n]+z#=blockcommentz#.*$z
[\[\](),;](z
)(\s*)(:)()z(?<![\]):<>\d.])(:z(?<=::)(\s*)(z)\b(?![(\[])z)(\s*)([<>]:)(\s*)(z([<>]:)(\s*)(z\b(z)(\s*)([<>]:))suffixc                     g | ]}d |z   S ). ).0os     b/home/geonatureadmin/si_en_reseau/tutos/venv/lib/python3.11/site-packages/pygments/lexers/julia.py
<listcomp>zJuliaLexer.<listcomp>K   s    ;;;C!G;;;    z...z..zZ'(\\.|\\[0-7]{1,3}|\\x[a-fA-F0-9]{1,3}|\\u[a-fA-F0-9]{1,4}|\\U[a-fA-F0-9]{1,6}|[^\\\'\n])'z(?<=[.\w)\]])(\'z)+z
(raw)(""")tqrawstringz(raw)(")	rawstringz(r)(""")tqregexz(r)(")regexz)?(""")tqstringz)?(")stringz)?(```)	tqcommandz)?(`)commandz)(\{)curlyz(where)(\s+)(z(\{)z.(abstract|primitive)([ \t]+)(type\b)([\s()]+)(z0(mutable(?=[ \t]))?([ \t]+)?(struct\b)([\s()]+)(@r%   )prefixr#   z\bzJ(\d+((_\d+)+)?\.(?!\.)(\d+((_\d+)+)?)?|\.\d+((_\d+)+)?)([eEf][+-]?[0-9]+)?z\d+((_\d+)+)?[eEf][+-]?[0-9]+zQ0x[a-fA-F0-9]+((_[a-fA-F0-9]+)+)?(\.([a-fA-F0-9]+((_[a-fA-F0-9]+)+)?)?)?p[+-]?\d+z0b[01]+((_[01]+)+)?z0o[0-7]+((_[0-7]+)+)?z!0x[a-fA-F0-9]+((_[a-fA-F0-9]+)+)?z\d+((_\d+)+)?z[^=#]z#pushz=#z#popz[=#]z\{z\}rootz"""z([^"]|"[^"][^"])+"z\\"z([^"\\]|\\[^"])+z\$z(\$)(\()in-intpz\(z\)z(")(z|\d+)?z+\\([\\"\'$nrbtfav]|(x|u|U)[a-fA-F0-9]+|\d+)interpz=%[-#0 +]*([0-9]+|[*])?(\.([0-9]+|[*]))?[hlL]?[E-GXc-giorsux%]z	[^"$%\\]+z(""")(z(")([imsxa]*)?z[^\\"]+z(""")([imsxa]*)?z[^"]+z(`)(z\\[`$]z[^\\`$]+z(```)(z\\\$)r7   r    r4   r,   r-   r:   r9   r1   r0   r/   r.   r3   r2   c                 "    t          | d          S )Nr   r   )texts    r)   analyse_textzJuliaLexer.analyse_text   s    tX...r+   N).__name__
__module____qualname____doc__nameurlaliases	filenames	mimetypesr   r
   	Multiliner   allowed_variabler   r   r   r   Symbolr   Typer   r   r   operator_suffixesCharAffixRegexBacktickr	   	Decoratorr   r   r   Builtinr   FloatBinOctHexIntegerr   EscapeInterpoltokensr=   r&   r+   r)   r   r      s'	         D
"CoGI!67Iq
Jq
*%q
 G%~6q
 g	q

 K(q
 $$}47GG#Mz8T::<q
 #%55;V]Kq
   00?BXj',//1!q
( ##&<<?OORaaz8ZVVX)q
.  00?B:w|<<>/q
4 &&)99z8<<>5q
@ U<^<&;<+- - -.68Aq
D U;;%:;;;+- - -.68Eq
H UE4=!!8,Iq
\017>]q
d !#44t;XFeq
j HHV\6::MJkq
l ((6<88+Fmq
p ((6<>>	Jqq
r v|<<gFsq
v $$y0XflF++Z9wq
z $$w.XflF++X7{q
B $$y0XflFO44kCCq
F $$w.XflFO44iAGq
P ##h.{33W>Qq
V  0036*gl;;=Wq
\ k7+]q
` ? !#'(*gtW\JJLaq
f A !#'(*gtW\JJLgq
p $$dn5qq
r UG^GTG3G1FG#46 6 67;~Gsq
z U<...8{q
~ U<...=q
B U<...=Cq
H t$Iq
N [\b\hiOq
P .v|<Qq
R bcicopSq
T $VZ0Uq
V &vz2Wq
X 26:>Yq
Z v~.[q
` UC5\\8$aq
h w()G%w/G%v.g'(	
 K)K(w|,GFOO	
 VV$!6*

 66"V]# &)
 %%v7((6?K@@)L

 K)K(GFOO
 '')3Xffl++V5 <V]KGHM_6"6N
 ))I5Xffl++V5;V]KGH6"6N
 v| D DfMV\"&
 !((6<"F"FOv|$
 '')3Xfov|44f>&GH&/*6?#
 ))I5Xfov|44f>fm$GH&/*6?#
CI IFV/ / / / /r+   c                   $    e Zd ZdZdZddgZd ZdS )r   zb
    For Julia console sessions. Modeled after MatlabSessionLexer.

    .. versionadded:: 1.6
    zJulia consolejlconz
julia-replc           	   #     K   t          di | j        }d}d}g }d}d}|                    d          D ]}|                    d          rM|                    t          |          dt          j        |d d         fgf           ||dd          z  }d}d}n&|                    d          s|                    d	          r5|t          j        |d d         fV  |dz   t          |dd          fV  d}d}n|                    d
          rE|sC|                    t          |          dt          |d d         fgf           ||dd          z  }nm|r-t          ||                    |                    E d {V  d}g }|                    d          s|r|t          j        |fV  d}n|t          j        |fV  d}|t          |          z  }|r+t          ||                    |                    E d {V  d S d S )Nr    FT)keependszjulia>   zhelp?>zshell>z      zERROR: r&   )r   options
splitlines
startswithappendlenr   Promptr	   r   r   get_tokens_unprocessedErrorOutput)	selfr<   jllexerstartcurcode
insertionsoutputerrorlines	            r)   rf   z(JuliaConsoleLexer.get_tokens_unprocessed   s     ,,t|,,
OOTO22 	 	Dx(( !!3w<<1gnd2A2h2O1P"QRRR48#** dooh.G.G W^T"1"X5555aitABBx////** 6 !!3w<<1j$rr(2K1L"MNNN48# $,"G$B$B7$K$K M  M M M M M M M M G!#J??9-- 6 64444 EE5555SYYEE 	E$G::7CCE E E E E E E E E E E	E 	Er+   N)r>   r?   r@   rA   rB   rD   rf   r&   r+   r)   r   r      sC         
 D%G&E &E &E &E &Er+   N) rA   pygments.lexerr   r   r   r   r   r   pygments.tokenr	   r
   r   r   r   r   r   r   r   r   pygments.utilr   pygments.lexers._julia_builtinsr   r   r   r   r   __all__rH   rK   r   r   r&   r+   r)   <module>rv      s                  - - - - - - - - - - - - - - - - - - - - - - - - ) ) ) ) ) )- - - - - - - - - - - - - - ,
- D  f Y/ Y/ Y/ Y/ Y/ Y/ Y/ Y/x/E /E /E /E /E /E /E /E /E /Er+   