B
    [                 @   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-2017 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            0   @   s@  e Zd ZdZdZddgZddgZdgZedd	d
e	j
fZedd	d
ejfZdejfed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	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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d,ej!d+fd-ej"d+fd.ej#d+fd/ej$d+fd0ed1fd2ed3fd4efd5ejfd6ej%fd7e&fd8e'fd9efd:ejd;fd<eeje&eeee&d=fd>eeje&eee&d?fg)d@ejfdejdAfdBejdCfdDejfgd@ejfdejdAfdBejdCfdDejfgdefd9ej(dCfedCgdefd9ej)dCfedCgdefdEe	jfeed9ej*dCfedCgdFe	dCfdGe	dCfedCgd2edCfdHej+fdIefdJefgdKej+fe,d3gdLe'dAfdMe'dCfgdNe'dAfdOe'dCfgd2ed3fdPejd;fdNejdQfge,dRdSejdCfdTejfge,dRdUejdCfdVejfgdWZ-dXS )Yr   z\
    Lexer for the Rust programming language (version 1.10).

    .. versionadded:: 1.6
    ZRustz*.rsz*.rs.inZrustZrsz	text/rust)u8u16u32Zu64Zi8Zi16Zi32Zi64ZusizeZisizeZf32Zf64strboolz\b)suffix)#ZCopyZSendSizedZSyncZDropZFnZFnMutZFnOnceZBoxZToOwnedZCloneZ	PartialEqZ
PartialOrdZEqZOrdZAsRefZAsMutZIntoZFromZDefaultIteratorZExtendZIntoIteratorZDoubleEndedIteratorZExactSizeIteratorZOptionZSomeNoneZResultZOkZErrZSliceConcatExtr   ZToStringZVecz#![^[\r\n].*$basez\nz\s+z//!.*?\nz///(\n|[^/].*?\n)z	//(.*?)\nz/\*\*(\n|[^/*])
doccommentz/\*!z/\*commentz\$([a-zA-Z_]\w*|\(,?|\),?|,?))asZboxZconstZcrateelseZexternforifimplinZloopmatchZmoveZmutZpubrefreturnZstaticsuperZtraitZunsafeZusewherewhile)ZabstractZalignofZbecomeZdofinalZmacroZoffsetofoverrideZprivprocZpureZsizeofZtypeofZunsizedZvirtualyieldz(true|false)\bzmod\bmodnamezlet\bzfn\bfuncnamez(struct|enum|type|union)\btypenamez(default)(\s+)(type|fn)\bzself\bz::\bz(?::|->)z&(break|continue)(\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b?r(#*)".*?"\1z'staticz'[a-zA-Z_]\w*z[{}()\[\],.;]z[+\-*/%&|<>^!~@=:?]z[a-zA-Z_]\w*z#!?\[z
attribute[z.([A-Za-z_]\w*)(!)(\s*)([A-Za-z_]\w*)?(\s*)(\{)zmacro{z)([A-Za-z_]\w*)(!)(\s*)([A-Za-z_]\w*)?(\()zmacro(z[^*/]+z#pushz\*/z#popz[*/]&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\{z\}z\(z\)z\[z
attribute(attribute_commonz\];?z[^"\]]+z\);?z[^")]+)rootr   r   r   r-   r.   r/   r0   r3   r1   zmacro{zmacro(r5   z
attribute[z
attribute(N).__name__
__module____qualname____doc__name	filenamesaliasesZ	mimetypesr   r
   ZTypeZkeyword_typesr   ZBuiltinZbuiltin_typesr   ZPreprocr   r   r   ZDocSingleZ	MultilineZReservedZConstantZDeclarationr   r   ZPseudoZLabelZCharr   ZBinZOctZHexZFloatZIntegerZ	Attributer   r	   Z	NamespaceZFunctionZClassZEscaper   tokens r@   r@   3lib/python3.7/site-packages/pygments/lexers/rust.pyr      s   

























N)r:   Zpygments.lexerr   r   r   r   r   Zpygments.tokenr   r   r	   r
   r   r   r   r   r   __all__r   r@   r@   r@   rA   <module>
   s   ,