
    Mh^                         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dS )	z
    pygments.lexers.mojo
    ~~~~~~~~~~~~~~~~~~~~

    Lexers for Mojo and related languages.

    :copyright: Copyright 2006-2025 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            "          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j        e          d&fd' eej        e          d(f ed)          gd)d* eej        ej                   ed+d,          fd- eej        ej                   ed+d.          fd/ eej        ej                   ed+d0          fd1 eej        ej                   ed+d2          fd3 eej        ej                   ed4d,          fd5 eej        ej                   ed4d.          fd6 eej        ej                   ed4d0          fd7 eej        ej                   ed4d2          fd8 eej        ej                  d9fd: e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                   edAd9          fdB eej        ej                   edAd;          fdC eej        ej                   edAd=          fdD eej        ej                   edAd?          fdE eej        ej                   edFd9          fdG eej        ej                   edFd;          fdH eej        ej                   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j!        dXfdYej!        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j#        fgd e"d_d\]          ef e"d^d\]          ej#        fgdd`da$                    db e%j&        D                       z   dcz    eee          ddfgddde ee e'e(          e          f e)dX          gdP e"dfdgd\h          e*j+        fdie*j+        j,        f e"djdgd\h          e*j-        fgdQ e"dkd\]          e*j.        j/        fgdR e"dld\]          e*j0        j/        fgdKdme1j2        fdne1j2        fdoe1j3        fdpe1j4        fdqe1j5        fdre1j6        fgdSdsez   e*j7        fdsefee*fgdee*j0        dXfgd edQ          ee*j.        dXf e)dX          gd!ee*j8        dXfgd#ee*j9        dXfgi d(dt eeee          fdue*j        fee*j        fdv eeee          f e)dX          gd&dw eeej                  dXfdue*j        fdxej#        dXfee*j        f e)dX          gd+dyej:        fdzej:        fgd4 ed+           edA          gdFd{ej:        fgdAd|ej:        f edF          gd} eej                  d~ eej                  d eej                  d eej                  d0dej        dXfdej:        f ed~          gd2dej        dXfdej:        f ed}          gd=dej        dXfdej:        f ed          gd?dej        dXfdej:        f ed          gd,dej        dXf ed~          dej        fgd.dej        dXf ed}          dej        fgd9dej        dXf ed          dej        fgd;dej        dXf ed          dej        fgiZ;d Z<dS )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                 L    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    T/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/pygments/lexers/mojo.pyinnerstring_ruleszMojoLexer.innerstring_rules=   sF    *
  u%U#)
 	
    c                 H    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   s5     FO$FO%:;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              #   N   K   | ] }|d                                           |V  !dS )r   N)islower).0ks     r"   	<genexpr>zMojoLexer.<genexpr>M  s3      FFqt||~~F!FFFFFFr$   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                 F    t          | d          rdS d| d d         v rdS dS )Nzmojo?g      ?zimport i  g?r   r   )texts    r"   analyse_textzMojoLexer.analyse_text  s6    4** 	3UdU##3qr$   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   )   sX         D
*CvGI
 	I M83=88C$4888H
 
 
2
 
 
W	Z 9V\6:>>
 :V\6:>> )*gn%j!JGJGO$$
  *--
 HHWj999EHHWj99:F88GZ88*E*--
 xx<<lKhhw
;;\JXXg&7DDlSxx(9:FFQGFOOI%
W	N 	 #v}55)622 #v}55)622 !v}55)511 !v}55)511 v}55&11 v}55&11 v}55%00 v}55%00 "88FL&-#H#H&Q!88FL&-#H#H&Q&,!F!FN&,!F!FN v}5500 v}5500 v}55// v}55// v}55// v}55// v}55.. v}55..
 $GI.9 +.$hm4GO$$GJGL!!GK  GFOOGd
OW	X 	{$?@   Z GFOO) 
YW	D 	${$?@{F+Z GFOO	&
EW	P 	 
 !   " U,U;;;W=MN'
QW	z 	6 !9  < ? B U,U;;;W=MNE#
{W	B 	'
 		FFW^FFFFFG  W--%

CW	^ 	#XXj%%++w%O%OPGFOO 
_W	h 	`B & Gd d dJ MgP <T\=PQ%   
 Ur
iW	N 	_@ !Cb b bF #Ieg
OW	^ 	, !/  2 #5
_W	Z 	+
 26<@!6:. &*-'4V^,
[W	r 	H_dn-8t
sW	| 	t}f-
}W	B 	GL!!t}f-GFOO
CW	L 	tz6*
MW	R 	t{F+
SW	 W	X 	Wj I IJDN#t~&xx
HjIIJGFOO
YW	f 	*g6G!H!H&QDN# (&1t~&GFOO
gW	x 	fm$fm$
yW	@ 	G$%%GN##
AW	H 	@&-P
IW	N 	<fmLGM""
OW	V 	==77WW	X 	==77YW	Z 	++FM::[W	\ 	++FM::]W	^ 	6=&)v}-G%&&
_W	h 	6=&)v}-G%&&
iW	r 	6=&)v}-G$%%
sW	| 	6=&)v}-G$%%
}W	F 	V]F+G%&&FM"
GW	P 	V]F+G%&&FM"
QW	Z 	V]F+G$%%FM"
[W	 W	d 	V]F+G$%%FM"
eW	 W	Fr    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     sW     % % % % % %	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	                      * ) ) ) ) )-Z
 Z
 Z
 Z
 Z

 Z
 Z
 Z
 Z
 Z
r$   