Ë
    !täi¬^  ã                   ó˜   — d Z ddlZddlmZ ddlmZmZ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 ddlmZ dgZ G d„ de«      Zy)	zÖ
    pygments.lexers.mojo
    ~~~~~~~~~~~~~~~~~~~~

    Lexers for Mojo and related languages.

    :copyright: Copyright 2006-present by the Pygments team, see AUTHORS.
    :license: BSD, see LICENSE for details.
é    N)Ú	unistring)Ú
RegexLexerÚbygroupsÚcombinedÚdefaultÚincludeÚthisÚusingÚwords)	ÚCommentÚKeywordÚNameÚNumberÚOperatorÚPunctuationÚStringÚTextÚ
Whitespace©Úshebang_matchesÚ	MojoLexerc            "       óv  — e Zd ZdZdZdZddgZddgZdd	gZd
Z	de
j                  › de
j                  › d�Zd„ Zd„ Zi ddefd eeej&                  ej(                  «      fd eeej&                  ej(                  «      fdej,                  fdej.                  fdefdef ed«       ed«      d eee«      dfd eee«      dfd eee«      dfd eee«      dfd  eee«      d!fd" eee«      d#fd$ eee«      d#fd% eej4                  e«      d&fd' eej4                  e«      d(f ed)«      g“d)d* eej&                  ej6                  «       ed+d,«      fd- eej&                  ej.                  «       ed+d.«      fd/ eej&                  ej6                  «       ed+d0«      fd1 eej&                  ej.                  «       ed+d2«      fd3 eej&                  ej6                  «       ed4d,«      fd5 eej&                  ej.                  «       ed4d.«      fd6 eej&                  ej6                  «       ed4d0«      fd7 eej&                  ej.                  «       ed4d2«      fd8 eej&                  ej6                  «      d9fd: eej&                  ej.                  «      d;fd< eej&                  ej6                  «      d=fd> eej&                  ej.                  «      d?fd@ eej&                  ej6                  «       edAd9«      fdB eej&                  ej.                  «       edAd;«      fdC eej&                  ej6                  «       edAd=«      fdD eej&                  ej.                  «       edAd?«      fdE eej&                  ej6                  «       edFd9«      fdG eej&                  ej.                  «       edFd;«      fdH eej&                  ej6                  «       edFd=«      fdI eej&                  ej.                  «       edFd?«      fdJef edK«      dLefdMefdNej@                  f edO«       edP«       edQ«       edR«       edS«      g“dTdUedVfdWejB                  dXfdYejB                  dXfdef ed)«      g“dVdUedVfdZedXfdef ed)«      g“dO e"d[d\¬]«      ef e"d^d\¬]«      ejF                  fg“d e"d_d\¬]«      ef e"d^d\¬]«      ejF                  fg“dd`dajI                  db„ e%jL                  D «       «      z   dcz    eee«      ddfg“ddde ee e'e(«      e«      f e)dX«      g“dP e"dfdgd\¬h«      e*jV                  fdie*jV                  jX                  f e"djdgd\¬h«      e*jZ                  fg“dQ e"dkd\¬]«      e*j\                  j^                  fg“dR e"dld\¬]«      e*j`                  j^                  fg“dKdme1jd                  fdne1jd                  fdoe1jf                  fdpe1jh                  fdqe1jj                  fdre1jl                  fg“dSdsez   e*jn                  fdsefee*fg“dee*j`                  dXfg“d edQ«      ee*j\                  dXf e)dX«      g“d!ee*jp                  dXfg“d#ee*jr                  dXfg“i d(dt eeee«      fdue*j4                  fee*j4                  fdv eeee«      f e)dX«      g“d&dw eeej4                  «      dXfdue*j4                  fdxejF                  dXfee*j4                  f e)dX«      g“d+dyejt                  fdzejt                  fg“d4 ed+«       edA«      g“dFd{ejt                  fg“dAd|ejt                  f edF«      g“d} eej.                  «      “d~ eej6                  «      “d eej.                  «      “d€ eej6                  «      “d0d�ej6                  dXfd‚ejt                  f ed~«      g“d2dƒej.                  dXfd„ejt                  f ed}«      g“d=d�ej6                  dXfd‚ejt                  f ed€«      g“d?dƒej.                  dXfd„ejt                  f ed«      g“d,d…ej6                  dXf ed~«      d†ej6                  fg“d.d‡ej.                  dXf ed}«      d†ej.                  fg“d9d…ej6                  dXf ed€«      d†ej6                  fg“¥d;d‡ej.                  dXf ed«      d†ej.                  fgi¥Z;dˆ„ Z<y‰)Šr   z0
    For Mojo source code (version 24.2.1).
    ÚMojozhttps://docs.modular.com/mojo/Úmojou   ðŸ”¥z*.mojou   *.ðŸ”¥ztext/x-mojozapplication/x-mojoz2.18Ú[z][z]*c                 ó\   — dt         j                  fdt         j                  fd| fd| fd| fgS )NzH%(\(\w+\))?[-#0 +]*([0-9]+|[*])?(\.([0-9]+|[*]))?[hlL]?[E-GXc-giorsaux%]zg\{((\w+)((\.\w+)|(\[[^\]]+\]))*)?(\![sra])?(\:(.?[<>=\^])?[-+ ]?#?0?(\d+)?,?(\.\d+)?[E-GXb-gnosx%]?)?\}z[^\\\'"%{\n]+ú[\'"\\]z%|(\{{1,2})©r   ÚInterpol©Úttypes    úc/Volumes/fast/ai/experiments/MLX_z-image/.venv/lib/python3.12/site-packages/pygments/lexers/mojo.pyÚinnerstring_ruleszMojoLexer.innerstring_rules=   sJ   € ð*ä—‘ððô
 —‘ðð ˜uÐ%Ø˜Ðà˜UÐ#ð)
ð 	
ó    c                 óX   — dt         j                  fdt         j                  dfd| fd| fgS )Nz\}z\{úexpr-inside-fstringz[^\\\'"{}\n]+r   r   r    s    r"   Úfstring_ruleszMojoLexer.fstring_rulesV   s9   € ð ”F—O‘OÐ$Ø”F—O‘OÐ%:Ð;à˜uÐ%Ø˜Ðð
ð 	
r$   Úrootz\s+z&^(\s*)([rRuUbB]{,2})("""(?:.|\n)*?""")z&^(\s*)([rRuUbB]{,2})('''(?:.|\n)*?''')z\A#!.+$z#.*$z\\\nz\\Úkeywordszsoft-keywordsz(alias)(\s+)Úvarnamez
(var)(\s+)z
(def)(\s+)Úfuncnamez	(fn)(\s+)z(class)(\s+)Ú	classnamez(struct)(\s+)Ú
structnamez(trait)(\s+)z(from)(\s+)Ú
fromimportz(import)(\s+)ÚimportÚexprz(?i)(rf|fr)(""")ÚrfstringescapeÚtdqfz(?i)(rf|fr)(''')Útsqfz(?i)(rf|fr)(")Údqfz(?i)(rf|fr)(')Úsqfz([fF])(""")Úfstringescapez([fF])(''')z	([fF])(")z	([fF])(')z(?i)(rb|br|r)(""")Útdqsz(?i)(rb|br|r)(''')Útsqsz(?i)(rb|br|r)(")Údqsz(?i)(rb|br|r)(')Úsqsz([uU]?)(""")Ústringescapez([uU]?)(''')z
([uU]?)(")z
([uU]?)(')z([bB])(""")Úbytesescapez([bB])(''')z	([bB])(")z	([bB])(')z[^\S\n]+Únumbersz!=|==|<<|>>|:=|[-~+/*%=<>&^|.]z([]{}:\(\),;[])+z(in|is|and|or|not)\bzexpr-keywordsÚbuiltinsÚ
magicfuncsÚ	magicvarsÚnamer&   z[{([]zexpr-inside-fstring-innerz(=\s*)?(\![sraf])?\}z#popz(=\s*)?(\![sraf])?:z[])}])	z	async forz
async withÚawaitÚelseÚforÚifÚlambdaÚyieldú
yield fromz\b)Úsuffix)ÚTrueÚFalseÚNone)ÚassertÚasyncrB   ÚborrowedÚbreakÚcontinueÚdelÚelifrC   ÚexceptÚfinallyrD   ÚglobalrE   rF   ÚpassÚraiseÚnonlocalÚreturnÚtryÚwhilerG   rH   ÚasÚwithz6(^[ \t]*)(match|case)\b(?![ \t]*(?:[:,;=^&|@~)\]}]|(?:Ú|c              #   óH   K  — | ]  }|d    j                  «       sŒ|–— Œ y­w)r   N)Úislower)Ú.0Úks     r"   Ú	<genexpr>zMojoLexer.<genexpr>M  s   è ø€ ÐF¡^ °q¸±t·|±|µ~œ!¡^ùs   ‚"›"z)\b))zsoft-keywords-innerz(\s+)([^\n_]*)(_\b))^Ú
__import__ÚabsÚaiterÚallÚanyÚbinÚboolÚ	bytearrayÚ
breakpointÚbytesÚcallableÚchrÚclassmethodÚcompileÚcomplexÚdelattrÚdictÚdirÚdivmodÚ	enumerateÚevalÚfilterÚfloatÚformatÚ	frozensetÚgetattrÚglobalsÚhasattrÚhashÚhexÚidÚinputÚintÚ
isinstanceÚ
issubclassÚiterÚlenÚlistÚlocalsÚmapÚmaxÚ
memoryviewÚminÚnextÚobjectÚoctÚopenÚordÚpowÚprintÚpropertyÚrangeÚreprÚreversedÚroundÚsetÚsetattrÚsliceÚsortedÚstaticmethodÚstrÚsumÚsuperÚtupleÚtypeÚvarsÚzipÚAnyTypeÚ	CoroutineÚDTypeÚErrorÚIntÚListÚListLiteralÚScalarÚInt8ÚUInt8ÚInt16ÚUInt16ÚInt32ÚUInt32ÚInt64ÚUInt64ÚBFloat16ÚFloat16ÚFloat32ÚFloat64ÚSIMDr   ÚTensorÚTupleÚMovableÚCopyableÚCollectionElementz(?<!\.))ÚprefixrI   z+(?<!\.)(self|Ellipsis|NotImplemented|cls)\b)r«   )^Ú__abs__Ú__add__Ú
__aenter__Ú	__aexit__Ú	__aiter__Ú__and__Ú	__anext__Ú	__await__Ú__bool__Ú	__bytes__Ú__call__Ú__complex__Ú__contains__Ú__del__Ú__delattr__Ú
__delete__Ú__delitem__Ú__dir__Ú
__divmod__Ú	__enter__Ú__eq__Ú__exit__Ú	__float__Ú__floordiv__Ú
__format__Ú__ge__Ú__get__Ú__getattr__Ú__getattribute__Ú__getitem__Ú__gt__Ú__hash__Ú__iadd__Ú__iand__Ú__ifloordiv__Ú__ilshift__Ú__imatmul__Ú__imod__Ú__imul__Ú	__index__Ú__init__Ú__instancecheck__Ú__int__Ú
__invert__Ú__ior__Ú__ipow__Ú__irshift__Ú__isub__Ú__iter__Ú__itruediv__Ú__ixor__Ú__le__Ú__len__Ú__length_hint__Ú
__lshift__Ú__lt__Ú
__matmul__Ú__missing__Ú__mod__Ú__mul__Ú__ne__Ú__neg__Ú__new__Ú__next__Ú__or__Ú__pos__Ú__pow__Ú__prepare__Ú__radd__Ú__rand__Ú__rdivmod__Ú__repr__Ú__reversed__Ú__rfloordiv__Ú__rlshift__Ú__rmatmul__Ú__rmod__Ú__rmul__Ú__ror__Ú	__round__Ú__rpow__Ú__rrshift__Ú
__rshift__Ú__rsub__Ú__rtruediv__Ú__rxor__Ú__set__Ú__setattr__Ú__setitem__Ú__str__Ú__sub__Ú__subclasscheck__Ú__truediv__Ú__xor__)Ú__annotations__Ú	__bases__Ú	__class__Ú__closure__Ú__code__Ú__defaults__Ú__dict__Ú__doc__Ú__file__Ú__func__Ú__globals__Ú__kwdefaults__Ú
__module__Ú__mro__Ú__name__Ú__objclass__Ú__qualname__Ú__self__Ú	__slots__Ú__weakref__zT(\d(?:_?\d)*\.(?:\d(?:_?\d)*)?|(?:\d(?:_?\d)*)?\.\d(?:_?\d)*)([eE][+-]?\d(?:_?\d)*)?z!\d(?:_?\d)*[eE][+-]?\d(?:_?\d)*j?z0[oO](?:_?[0-7])+z0[bB](?:_?[01])+z0[xX](?:_?[a-fA-F0-9])+z\d(?:_?\d)*Ú@z(\s+)(as)(\s+)z\.z(\s*)(,)(\s*)z(\s+)(import)\bzNone\bz\{\{z\}\}z0\\([\\abfnrtv"\']|\n|x[a-fA-F0-9]{2}|[0-7]{1,3})z,\\(N\{.*?\}|u[a-fA-F0-9]{4}|U[a-fA-F0-9]{8})zfstrings-singlezfstrings-doublezstrings-singlezstrings-doubleÚ"z\\\\|\\"|\\\nÚ'z\\\\|\\'|\\\nz"""z\nz'''c                 ó.   — t        | d«      ryd| d d v ryy)Nzmojo?g      ð?zimport iè  gÍÌÌÌÌÌì?r   r   )Útexts    r"   Úanalyse_textzMojoLexer.analyse_text½  s#   € ä˜4 Ô*ØØ˜˜U˜d˜Ñ#ØØr$   N)=r/  r-  r1  r(  rA   ÚurlÚaliasesÚ	filenamesÚ	mimetypesÚversion_addedÚuniÚ	xid_startÚxid_continueÚuni_namer#   r'   r   r   r   ÚAffixÚDocr   ÚHashbangÚSingler   r   Ú	NamespaceÚDoubler   r   r   r   ÚWordr   r   ÚConstantÚjoinÚkeywordÚkwlistr
   r	   r   r   ÚBuiltinÚPseudoÚ	ExceptionÚFunctionÚMagicÚVariabler   ÚFloatÚOctÚBinÚHexÚIntegerÚ	DecoratorÚClassÚStructÚEscapeÚtokensr:  © r$   r"   r   r   )   sæ  „ ñð €DØ
*€CØ�vÐ€GàØð€Ið
 	Øð€Ið €Mà�3—=‘=�/  C×$4Ñ$4Ð#5°RÐ8€Hò
ò2
ðW	ØØ�ZÐ à9Ù˜ V§\¡\°6·:±:Ó>ðð
 :Ù˜ V§\¡\°6·:±:Ó>ðð ˜×)Ñ)Ð*Ø�g—n‘nÐ%Ø�jÐ!Ø�JÐÙ�JÓÙ�OÓ$ð
  Ù˜ *Ó-Øðð
 ™H W¨jÓ9¸9ÐEØ™H W¨jÓ9¸:ÐFØ™8 G¨ZÓ8¸*ÐEàÙ˜ *Ó-Øðð
 ™x¨°Ó<¸lÐKØ™h w°
Ó;¸\ÐJØ™X g×&7Ñ&7¸ÓDÀlÐSØ™x¨×(9Ñ(9¸:ÓFÈÐQÙ�F‹OðI%
ðW	ðN 	ð #Ù˜Ÿ™ v§}¡}Ó5ÙÐ)¨6Ó2ðð #Ù˜Ÿ™ v§}¡}Ó5ÙÐ)¨6Ó2ðð !Ù˜Ÿ™ v§}¡}Ó5ÙÐ)¨5Ó1ðð !Ù˜Ÿ™ v§}¡}Ó5ÙÐ)¨5Ó1ðð Ù˜Ÿ™ v§}¡}Ó5Ù˜¨&Ó1ðð Ù˜Ÿ™ v§}¡}Ó5Ù˜¨&Ó1ðð Ù˜Ÿ™ v§}¡}Ó5Ù˜¨%Ó0ðð Ù˜Ÿ™ v§}¡}Ó5Ù˜¨%Ó0ðð "¡8¨F¯L©L¸&¿-¹-Ó#HÈ&ÐQØ!¡8¨F¯L©L¸&¿-¹-Ó#HÈ&ÐQØ¡¨&¯,©,¸¿¹Ó!FÈÐNØ¡¨&¯,©,¸¿¹Ó!FÈÐNð Ù˜Ÿ™ v§}¡}Ó5Ù˜¨Ó0ðð Ù˜Ÿ™ v§}¡}Ó5Ù˜¨Ó0ðð Ù˜Ÿ™ v§}¡}Ó5Ù˜¨Ó/ðð Ù˜Ÿ™ v§}¡}Ó5Ù˜¨Ó/ðð Ù˜Ÿ™ v§}¡}Ó5Ù˜¨Ó/ðð Ù˜Ÿ™ v§}¡}Ó5Ù˜¨Ó/ðð Ù˜Ÿ™ v§}¡}Ó5Ù˜¨Ó.ðð Ù˜Ÿ™ v§}¡}Ó5Ù˜¨Ó.ðð
 ˜$ÐÙ�IÓØ.°Ð9Ø  +Ð.Ø$ h§m¡mÐ4Ù�OÓ$Ù�JÓÙ�LÓ!Ù�KÓ Ù�F‹OðGd
ðOW	ðX 	Ø�{Ð$?Ð@ðð —‘Øððð —‘Øðð �ZÐ Ù�F‹Oð) 
ðYW	ðD 	$Ø�{Ð$?Ð@Ø�{ FÐ+Ø�ZÐ Ù�F‹Oð	&
ðEW	ðP 	ñ ð
ð !ôð ðñ" Ð,°UÔ;¸W×=MÑ=MÐNð'
ðQW	ðz 	áðð6 !ô9ð< ð? ñB Ð,°UÔ;¸W×=MÑ=MÐNðE#
ð{W	ðB 	ð'ð
 —	‘	ÑF W§^¢^ÓFÓFñGð ññ ˜ WÓ-Ø%ð
ð
ðCW	ð^ 	à#¡X¨j¹%À»+ÀwÓ%OÐPÙ�F‹Oð 
ð_W	ðh 	áð`ðB &Ø ôGdðJ —‘ðMgðP <¸T¿\¹\×=PÑ=PÐQáØØ%Ø ôð
 —‘ððUr
ðiW	ðN 	áð_ð@ !ôCbðF —‘×#Ñ#ðIeðg
ðOW	ð^ 	áðð, !ô/ð2 —‘×#Ñ#ð5ð
ð_W	ðZ 	ð+à—‘ðð
 2°6·<±<Ð@Ø! 6§:¡:Ð.Ø  &§*¡*Ð-Ø'¨¯©Ð4Ø˜VŸ^™^Ð,ð
ð[W	ðr 	Ø�H‰_˜dŸn™nÐ-Ø�8ÐØ�tÐð
ðsW	ð| 	Ø�t—}‘} fÐ-ð
ð}W	ðB 	Ù�LÓ!Ø�t—}‘} fÐ-Ù�F‹Oð
ðCW	ðL 	Ø�t—z‘z 6Ð*ð
ðMW	ðR 	Ø�t—{‘{ FÐ+ð
ñSW	ðX 	Ø¡¨°W¸jÓ IÐJØ�D—N‘NÐ#Ø�t—~‘~Ð&Ø™x¨
°H¸jÓIÐJÙ�F‹Oð
ðYW	ðf 	Ø¡¨*°g×6GÑ6GÓ!HÈ&ÐQØ�D—N‘NÐ#ð ˜×(Ñ(¨&Ð1Ø�t—~‘~Ð&Ù�F‹Oð
ðgW	ðx 	Ø�f—m‘mÐ$Ø�f—m‘mÐ$ð
ðyW	ð@ 	ÙÐ$Ó%Ù�NÓ#ð
ðAW	ðH 	Ø@À&Ç-Á-ÐPð
ðIW	ðN 	Ø<¸f¿m¹mÐLÙ�MÓ"ð
ðOW	ðV 	™=¨¯©Ó7ðWW	ðX 	™=¨¯©Ó7ðYW	ðZ 	Ñ+¨F¯M©MÓ:ð[W	ð\ 	Ñ+¨F¯M©MÓ:ð]W	ð^ 	Ø�6—=‘= &Ð)Ø˜vŸ}™}Ð-ÙÐ%Ó&ð
ð_W	ðh 	Ø�6—=‘= &Ð)Ø˜vŸ}™}Ð-ÙÐ%Ó&ð
ðiW	ðr 	Ø�6—=‘= &Ð)Ø˜vŸ}™}Ð-ÙÐ$Ó%ð
ðsW	ð| 	Ø�6—=‘= &Ð)Ø˜vŸ}™}Ð-ÙÐ$Ó%ð
ð}W	ðF 	Ø�V—]‘] FÐ+ÙÐ%Ó&Ø�F—M‘MÐ"ð
ðGW	ðP 	Ø�V—]‘] FÐ+ÙÐ%Ó&Ø�F—M‘MÐ"ð
ðQW	ðZ 	Ø�V—]‘] FÐ+ÙÐ$Ó%Ø�F—M‘MÐ"ð
ñ[W	ðd 	Ø�V—]‘] FÐ+ÙÐ$Ó%Ø�F—M‘MÐ"ð
ñeW	€Fórr$   )r(  rM  Úpygmentsr   r@  Úpygments.lexerr   r   r   r   r   r	   r
   r   Úpygments.tokenr   r   r   r   r   r   r   r   r   Úpygments.utilr   Ú__all__r   r_  r$   r"   Ú<module>re     sJ   ðñó å %÷	÷ 	ó 	÷÷ õ õ *àˆ-€ôZ
�
õ Z
r$   