
    Mh-                         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-2025 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d	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                  d0fdez   d1z    eej        e          d2fd3ez   dz    eee
ej                  fd4ed2fd5ez   dz    eee
eeej                  fd6ez   dz    eee
eeej                  fd7ez   ej        f eg edd8ed7e9          ej        f ee d:          ef ee!d:          ej        f ee"d:          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dAe$j)        f ed8g          efdBej        fdej        dCfdDej        dEfdFej        fgdGedCfdHedEfeej        f e*dI          gdJedEfdKefgdLedEfdMej+        fdNefgdOez   ej,        fdP eej,        e          dQfgdRedCfdSedEf e*dI          gdTez   dUz    eeej                  dEfdVej+        f e*dW          dXej,        fdYefd8efgdZez   dUz    eeej                  dEfdVej+        f e*dW          dYefd8efgd[ eej        ej                  dEfdMej        fd\ej        fgd] eej        ej                  dEfd^ej        fgd_ez   dUz    eej        ej                  dEfd`ej+        f e*dW          daej        fd8ej        fgdbez   dUz    eej        ej                  dEfdcej+        f e*dW          daej        fd8ej        fgddZ-de Z.dfS )gr   z 
    For Julia source code.
    Juliahttps://julialang.org/juliajlz*.jlztext/x-juliazapplication/x-julia1.6z\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     U/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/pygments/lexers/julia.py
<listcomp>zJuliaLexer.<listcomp>J   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\\\$)r9   r"   r6   r.   r/   r<   r;   r3   r2   r1   r0   r5   r4   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	mimetypesversion_addedr   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M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                   0    e Zd ZdZdZddgZdZdZdZd Z	d	S )
r   zG
    For Julia console sessions. Modeled after MatlabSessionLexer.
    zJulia consolejlconz
julia-replr   r!   zjlcon/consolec           	   #     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+   ri   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@   rA   rB   rC   rD   rF   rE   rI   _exampleri   r(   r-   r+   r   r      sR          D%G
"CMH&E &E &E &E &Er-   N) rC   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__rK   rN   r   r   r(   r-   r+   <module>rz      s                  - - - - - - - - - - - - - - - - - - - - - - - - ) ) ) ) ) )- - - - - - - - - - - - - - ,
- D  f X/ X/ X/ X/ X/ X/ X/ X/v0E 0E 0E 0E 0E 0E 0E 0E 0E 0Er-   