a
    ñ»j¨^  ã                   @   s’   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„ deƒZdS )	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                &   @   sˆ  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d„ Zdd„ Z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jeƒd'fd(eejeƒd)fed*ƒgd+eejejƒed,d-ƒfd.eejejƒed,d/ƒfd0eejejƒed,d1ƒfd2eejejƒed,d3ƒfd4eejejƒed5d-ƒfd6eejejƒed5d/ƒfd7eejejƒed5d1ƒfd8eejejƒed5d3ƒfd9eejejƒd:fd;eejejƒd<fd=eejejƒd>fd?eejejƒd@fdAeejejƒedBd:ƒfdCeejejƒedBd<ƒfdDeejejƒedBd>ƒfdEeejejƒedBd@ƒfdFeejejƒedGd:ƒfdHeejejƒedGd<ƒfdIeejejƒedGd>ƒfdJeejejƒedGd@ƒfdKefedLƒdMefdNefdOej fedPƒedQƒedRƒedSƒedTƒgdUedVfdWej!dXfdYej!dXfdefed*ƒgdUedVfdZedXfdefed*ƒge"d[d\d]�efe"d^d\d]�ej#fge"d_d\d]�efe"d^d\d]�ej#fgd`da $dbdc„ e%j&D ƒ¡ dd eeeƒdefgdfeee'e(ƒeƒfe)dXƒge"dgdhd\di�e*j+fdje*j+j,fe"dkdhd\di�e*j-fge"dld\d]�e*j.j/fge"dmd\d]�e*j0j/fgdne1j2fdoe1j2fdpe1j3fdqe1j4fdre1j5fdse1j6fgdte e*j7fdtefee*fgee*j0dXfgedRƒee*j.dXfe)dXƒgee*j8dXfgee*j9dXfgdueeeeƒfdve*jfee*jfdweeeeƒfe)dXƒgdxeeejƒdXfdve*jfdyej#dXfee*jfe)dXƒgdzej:fd{ej:fged,ƒedBƒgd|ej:fgd}ej:fedGƒgeejƒeejƒeejƒeejƒd~ejdXfdej:fed€ƒgd�ejdXfd‚ej:fedƒƒgd~ejdXfdej:fed„ƒgd�ejdXfd‚ej:fed…ƒgd†ejdXfed€ƒd‡ejfgdˆejdXfedƒƒd‡ejfgd†ejdXfed„ƒd‡ejfgdˆejdXfed…ƒd‡ejfgd‰œ#Z;dŠd‹„ Z<dŒS )�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                 C   s&   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©Úttype© r   ú:E:\soccer\ml_env\Lib\site-packages\pygments/lexers/mojo.pyÚinnerstring_rules=   s    ýú	ìzMojoLexer.innerstring_rulesc                 C   s"   dt jfdt jdfd| fd| fgS )Nz\}z\{úexpr-inside-fstringz[^\\\'"{}\n]+r   r   r   r   r   r    Úfstring_rulesV   s
    
÷zMojoLexer.fstring_rulesz\s+z$^(\s*)([rRuUbB]{,2})("""[\s\S]*?""")z$^(\s*)([rRuUbB]{,2})('''[\s\S]*?''')z\A#!.+$z#.*$z\\\nz\\Úkeywordsú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)\búexpr-keywordsÚbuiltinsÚ
magicfuncsÚ	magicvarsÚnamez[{([]ú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Úasyncr@   ZborrowedÚbreakÚcontinueÚdelÚelifrA   ÚexceptÚfinallyrB   ÚglobalrC   rD   ÚpassÚraiseÚnonlocalÚreturnÚtryÚwhilerE   rF   ÚasÚwithz6(^[ \t]*)(match|case)\b(?![ \t]*(?:[:,;=^&|@~)\]}]|(?:ú|c                 c   s   | ]}|d    ¡ r|V  qdS )r   N)Úislower)Ú.0Úkr   r   r    Ú	<genexpr>M  ó    zMojoLexer.<genexpr>z)\b))úsoft-keywords-innerz(\s+)([^\n_]*)(_\b))^Ú
__import__ÚabsZ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ÚzipZAnyTypeÚ	CoroutineZDTypeÚErrorZIntÚListZListLiteralZScalarZInt8ZUInt8ZInt16ZUInt16ZInt32ZUInt32ZInt64ZUInt64ZBFloat16ZFloat16ZFloat32ZFloat64ZSIMDr   ZTensorÚTupleZMovableZCopyableZCollectionElementz(?<!\.))ÚprefixrG   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\\\\|\\"|\\\núfstrings-doubleú'z\\\\|\\'|\\\núfstrings-singleústrings-doubleústrings-singlez"""z\nz''')#Úrootr,   r"   r?   r:   r$   r%   rb   r;   r<   r=   r9   r>   r&   r'   r(   r)   r+   r*   r-   r2   r8   r7   r   r  r"  r!  r0   r1   r5   r6   r.   r/   r3   r4   c                 C   s&   t | dƒrdS d| d d… v r"dS dS )Nzmojo?g      ð?zimport iè  gÍÌÌÌÌÌì?r   r   )Útextr   r   r    Úanalyse_text½  s
    
zMojoLexer.analyse_textN)=r  r  r  r  r>   ÚurlÚaliasesÚ	filenamesÚ	mimetypesÚversion_addedÚuniZ	xid_startZxid_continueZ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    r   )   sD  þþþþýýÜ)ýýýýýýýýýýýýýýýý�fû
ûìü	ôñíäá!Þ'ûú÷þýa�ešh
ýú–u`Ÿcœÿjéæÿ ýöý
ÿ
ý
ÿ
ÿû
ù
þþÿþ
ý
ý
ý
ý
ý
ý
ý
ý€ € € € ®    ])r  r5  Úpygmentsr   r+  Zpygments.lexerr   r   r   r   r   r   r	   r
   Zpygments.tokenr   r   r   r   r   r   r   r   r   Zpygments.utilr   Ú__all__r   r   r   r   r    Ú<module>   s   
(
,