o
    Th-                     @   s   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 deZG d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                   @   s.  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 d e d eee
eefde d ejfde d ee
ejfde d e d eeje
ee
ejfde d eee
ejfde d eeje
efeg eeedefedd eD edefeddgefdejfd e d! 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 d* eejed+fde d, eejed-fde d. eejejd/fde d0 eejejd1fde d2 eejed3fd4e d eee
ejfd5ed3fd6e d eee
eeejfd7e d eee
eeejfd8e ejfeg edd9ed8ed:ejfee d;defee!d;dejfee"d;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dAe$j(fdBe$j)fed9gefdCejfdejdDfdEejdFfdGejfgdHedDfdIedFfeejfe*dJgdKedFfdLefgdMedFfdNej+fdOefgdPe ej,fdQeej,edRfgdSedDfdTedFfe*dJgdUe dV eeejdFfdWej+fe*dXdYej,fdZefd9efgd[e dV eeejdFfdWej+fe*dXdZefd9efgd\eejejdFfdNejfd]ejfgd^eejejdFfd_ejfgd`e dV eejejdFfdaej+fe*dXdbejfd9ejfgdce dV eejejdFfddej+fe*dXdbejfd9ejfgdeZ-dfdg Z.dhS )ir   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                 C   s   g | ]}d | qS ). ).0or%   r%   V/home/air/segue/gemini/back/venv/lib/python3.10/site-packages/pygments/lexers/julia.py
<listcomp>J   s    zJuliaLexer.<listcomp>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\\\$)r5   r    r2   r*   r+   r8   r7   r/   r.   r-   r,   r1   r0   c                 C   s
   t | dS )Nr   r   )textr%   r%   r(   analyse_text   s   
zJuliaLexer.analyse_textN)/__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   
	



 "$.25689
;
=
A
C
H
KNPSXY]_adghijklmpt







	  Lc                   @   s0   e Zd ZdZdZddgZdZdZdZdd	 Z	d
S )r   zG
    For Julia console sessions. Modeled after MatlabSessionLexer.
    zJulia consolejlconz
julia-replr   r   zjlcon/consolec           	   	   c   s   t di | j}d}d}g }d}d}|jddD ]}|dr?|t|dtj|d d fgf ||dd  7 }d}d}nr|dsI|d	re|tj|d d fV  |d t|dd  fV  d}d}nL|d
r|s|t|dt	|d d fgf ||dd  7 }n+|rt
|||E d H  d}g }|ds|r|tj|fV  d}n|tj|fV  d}|t|7 }q|rt
|||E d H  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)	selfr9   jllexerstartcurcode
insertionsoutputerrorliner%   r%   r(   rb      sL   
$"


z(JuliaConsoleLexer.get_tokens_unprocessedN)
r;   r<   r=   r>   r?   rA   r@   rD   _examplerb   r%   r%   r%   r(   r      s    N) r>   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__rF   rI   r   r   r%   r%   r%   r(   <module>   s     
0 \