o
    ‡ÎÖañ  ã                   @   sf   d Z ddl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gZG dd„ deƒZdS )zÊ
    pygments.lexers.rust
    ~~~~~~~~~~~~~~~~~~~~

    Lexers for the Rust language.

    :copyright: Copyright 2006-2021 by the Pygments team, see AUTHORS.
    :license: BSD, see LICENSE for details.
é    )Ú
RegexLexerÚincludeÚbygroupsÚwordsÚdefault)	ÚTextÚCommentÚOperatorÚKeywordÚNameÚStringÚNumberÚPunctuationÚ
WhitespaceÚ	RustLexerc                   @   sl  e Zd ZdZdZddgZddgZddgZed	d
d�e	j
fZedd
d�ejfZeddd�ejjfZdejfedƒgg def‘def‘dejf‘dejf‘dejf‘dejdf‘dejdf‘dejdf‘dejf‘edd
d�e	f‘edd
d�e	jf‘de	jf‘dejjf‘d e	d!f‘d"e	jf‘d#e	d$f‘d%e	d&f‘d'ee	ee	ƒf‘e‘d(ejjf‘e‘e‘d)ef‘d*ed&f‘d+ee	ejej ƒf‘d,ej!f‘d-ej!f‘d.e"j#d/f‘d0e"j$d/f‘d1e"j%d/f‘d2e"j&d/f‘d3e"j'd/f‘d4ed5f‘d6ed7f‘d8ef‘d9e(d:f‘d;e(f‘d<e)f‘d=e(f‘d>ef‘d?ef‘d@ejdAf‘dBef‘dCejfdejdDfdEejdFfdGejfgdCejfdejdDfdEejdFfdGejfgdefd>ej*dFfedFƒgdefd>ejdFfedFƒgdefdHe	jfd9e(d:feed>ej+dFfedFƒgdIejfdJej,fedFƒgdKe	dFfdLe	dFfedFƒgd6edFfdMej-fdNefdOefgdPej-fe.d7ƒgd6ed7fdQejdAfge.dRƒdSejdFfdTejfgdUœZ/dVS )Wr   z\
    Lexer for the Rust programming language (version 1.47).

    .. versionadded:: 1.6
    ÚRustz*.rsz*.rs.inÚrustÚrsz	text/rustztext/x-rust)Úu8Úu16Úu32Úu64Úu128Úi8Úi16Úi32Úi64Úi128ÚusizeÚisizeÚf32Úf64ÚcharÚstrÚboolz\b)Úsuffix)$ÚCopyÚSendÚSizedÚSyncÚUnpinÚDropÚFnÚFnMutÚFnOnceÚdropÚBoxÚToOwnedÚCloneÚ	PartialEqÚ
PartialOrdÚEqÚOrdÚAsRefÚAsMutÚIntoÚFromÚDefaultÚIteratorÚExtendÚIntoIteratorÚDoubleEndedIteratorÚExactSizeIteratorÚOptionÚSomeÚNoneÚResultÚOkÚErrr   ÚToStringÚVec)2ÚasmÚassertÚ	assert_eqÚ	assert_neÚcfgÚcolumnÚcompile_errorÚconcatÚconcat_identsÚdbgÚdebug_assertÚdebug_assert_eqÚdebug_assert_neÚenvÚeprintÚeprintlnÚfileÚformatÚformat_argsÚformat_args_nlÚ
global_asmr   Úinclude_bytesÚinclude_strÚis_aarch64_feature_detectedÚis_arm_feature_detectedÚis_mips64_feature_detectedÚis_mips_feature_detectedÚis_powerpc64_feature_detectedÚis_powerpc_feature_detectedÚis_x86_feature_detectedÚlineÚllvm_asmÚ
log_syntaxÚmacro_rulesÚmatchesÚmodule_pathÚ
option_envÚpanicÚprintÚprintlnÚ	stringifyÚthread_localÚtodoÚtrace_macrosÚunimplementedÚunreachableÚvecÚwriteÚwritelnú!z#![^[\r\n].*$Úbasez\nz\s+z//!.*?\nz///(\n|[^/].*?\n)z	//(.*?)\nz/\*\*(\n|[^/*])Ú
doccommentz/\*!z/\*Úcommentz\$([a-zA-Z_]\w*|\(,?|\),?|,?))ÚasÚasyncÚawaitÚboxÚconstÚcrateÚdynÚelseÚexternÚforÚifÚimplÚinÚloopÚmatchÚmoveÚmutÚpubÚrefÚreturnÚstaticÚsuperÚtraitÚunsafeÚuseÚwhereÚwhile)ÚabstractÚbecomeÚdoÚfinalÚmacroÚoverrideÚprivÚtypeofÚtryÚunsizedÚvirtualÚyieldz(true|false)\bzself\bzmod\bÚmodnamezlet\bzfn\bÚfuncnamez(struct|enum|type|union)\bÚtypenamez(default)(\s+)(type|fn)\bz	[sS]elf\bz::\bz(?::|->)z((break|continue)(\b\s*)(\'[A-Za-z_]\w*)?zA'(\\['"\\nrt]|\\x[0-7][0-9a-fA-F]|\\0|\\u\{[0-9a-fA-F]{1,6}\}|.)'z@b'(\\['"\\nrt]|\\x[0-9a-fA-F]{2}|\\0|\\u\{[0-9a-fA-F]{1,6}\}|.)'z0b[01_]+Ú
number_litz	0o[0-7_]+z0[xX][0-9a-fA-F_]+zJ[0-9][0-9_]*(\.[0-9_]+[eE][+\-]?[0-9_]+|\.[0-9_]*(?!\.)|[eE][+\-]?[0-9_]+)z[0-9][0-9_]*zb"Ú
bytestringú"Ústringz(?s)b?r(#*)".*?"\1ú'Úlifetimez\.\.=?z[{}()\[\],.;]z[+\-*/%&|<>^!~@=:?]z[a-zA-Z_]\w*zr#[a-zA-Z_]\w*z#!?\[ú
attribute[ú#z[^*/]+z#pushz\*/z#popz[*/]ú&z
(static|_)z[a-zA-Z_]+\w*z[ui](8|16|32|64|size)zf(32|64)z;\\['"\\nrt]|\\x[0-7][0-9a-fA-F]|\\0|\\u\{[0-9a-fA-F]{1,6}\}z[^\\"]+z\\z\\x[89a-fA-F][0-9a-fA-F]z\[Úattribute_commonz\]z	[^"\]\[]+)Úrootr{   r}   r|   r¥   r¦   r§   r­   r¨   r«   r©   r±   r®   N)0Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚnameÚ	filenamesÚaliasesÚ	mimetypesr   r
   ÚTypeÚkeyword_typesr   ÚBuiltinÚbuiltin_funcs_typesÚFunctionÚMagicÚbuiltin_macrosr   ÚPreprocr   r   r   ÚDocÚSingleÚ	MultilineÚReservedÚConstantÚPseudoÚDeclarationr   r   ÚLabelÚCharr   ÚBinÚOctÚHexÚFloatÚIntegerr	   r   Ú	NamespaceÚClassÚ	AttributeÚEscaper   Útokens© rÖ   rÖ   ú6/usr/lib/python3/dist-packages/pygments/lexers/rust.pyr      sj   ýýõõïïüþýüûú
ù
ø
	÷ôüüòþþíê
éèçæåäã
â à!ß#Ý%Û'ÿÙ+þÕ.þÒ
3Í
5Ë
7É9þÇ
<Ä?Á@ÀA¿D¼G¹H¸I·L´N²
Q¯VªY

ü

ü
ý
ý
ù
ýýÿûþ
þ
ý �
èN)r¶   Úpygments.lexerr   r   r   r   r   Úpygments.tokenr   r   r	   r
   r   r   r   r   r   Ú__all__r   rÖ   rÖ   rÖ   r×   Ú<module>   s
    
,