
xi\c           @   s   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 d e f d     YZ d S(   s   
    pygments.lexers.rust
    ~~~~~~~~~~~~~~~~~~~~

    Lexers for the Rust language.

    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
    :license: BSD, see LICENSE for details.
i(   t
   RegexLexert   includet   bygroupst   wordst   default(	   t   Textt   Commentt   Operatort   Keywordt   Namet   Stringt   Numbert   Punctuationt
   Whitespacet	   RustLexerc        0   B   s  e  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 i d< e j f e d=  g d> 6d? e f d@ e f dA e j f dB e j f dC e j f dD e j dE f dF e j dE f dG e j dH f dI e j f e d d d e f e d d d e j f dr e j f ds e dt f du e j f dv e dw f dx e dy f dz e e e e  f e
 d{ e j j f e d| e f d} e dy 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 d e d f d e d f d e f d e j f d e j$ f d e% f d e& f d e 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= 6d e j f dG e j d f d e j d f d e j f g dH 6d e j f dG e j d f d e j d f d e j f g dE 6d@ e f d e j' d f e d  g dt 6d@ e f d e j( d f e d  g dw 6d@ e f d e j f e e
 d e j) d f e d  g dy 6d e d f d e d f e d  g d 6d e d f d e j* f d e f d e f g d 6d e j* f e+ d  g d 6d e& d f d e& d f g d 6d e& d f d e& d f g d 6d e d f d e j d f d e j d f g d 6e+ d  d e j d f d e j f g d 6e+ d  d e j d f d e j f g d 6Z, RS(   s\   
    Lexer for the Rust programming language (version 1.10).

    .. versionadded:: 1.6
    t   Rusts   *.rss   *.rs.int   rustt   rss	   text/rustt   u8t   u16t   u32t   u64t   i8t   i16t   i32t   i64t   i128t   u128t   usizet   isizet   f32t   f64t   strt   boolt   suffixs   \bt   Copyt   Sendt   Sizedt   Synct   Dropt   Fnt   FnMutt   FnOncet   Boxt   ToOwnedt   Clonet	   PartialEqt
   PartialOrdt   Eqt   Ordt   AsReft   AsMutt   Intot   Fromt   Defaultt   Iteratort   Extendt   IntoIteratort   DoubleEndedIteratort   ExactSizeIteratort   Optiont   Somet   Nonet   Resultt   Okt   Errt   SliceConcatExtR
   t   ToStringt   Vecs   #![^[\r\n].*$t   baset   roots   \ns   \s+s   //!.*?\ns   ///(\n|[^/].*?\n)s	   //(.*?)\ns   /\*\*(\n|[^/*])t
   doccomments   /\*!s   /\*t   comments   \$([a-zA-Z_]\w*|\(,?|\),?|,?)t   ast   boxt   constt   cratet   elset   externt   fort   ift   implt   int   loopt   matcht   movet   mutt   pubt   reft   returnt   statict   supert   traitt   unsafet   uset   wheret   whilet   abstractt   alignoft   becomet   dot   finalt   macrot   offsetoft   overridet   privt   proct   puret   sizeoft   typeoft   unsizedt   virtualt   yields   (true|false)\bs   mod\bt   modnames   let\bs   fn\bt   funcnames   (struct|enum|type|union)\bt   typenames   (default)(\s+)(type|fn)\bs   self\bs   ::\bs   (?::|->)s&   (break|continue)(\s*)(\'[A-Za-z_]\w*)?sA   '(\\['"\\nrt]|\\x[0-7][0-9a-fA-F]|\\0|\\u\{[0-9a-fA-F]{1,6}\}|.)'s@   b'(\\['"\\nrt]|\\x[0-9a-fA-F]{2}|\\0|\\u\{[0-9a-fA-F]{1,6}\}|.)'s   0b[01_]+t
   number_lits	   0o[0-7_]+s   0[xX][0-9a-fA-F_]+sJ   [0-9][0-9_]*(\.[0-9_]+[eE][+\-]?[0-9_]+|\.[0-9_]*(?!\.)|[eE][+\-]?[0-9_]+)s   [0-9][0-9_]*s   b"t
   bytestringt   "t   strings   b?r(#*)".*?"\1s   'statics   '[a-zA-Z_]\w*s   [{}()\[\],.;]s   [+\-*/%&|<>^!~@=:?]s   [a-zA-Z_]\w*s   #!?\[s
   attribute[s.   ([A-Za-z_]\w*)(!)(\s*)([A-Za-z_]\w*)?(\s*)(\{)s   macro{s)   ([A-Za-z_]\w*)(!)(\s*)([A-Za-z_]\w*)?(\()s   macro(s   [^*/]+s   #pushs   \*/s   #pops   [*/]t   &s   [ui](8|16|32|64|size)s   f(32|64)s;   \\['"\\nrt]|\\x[0-7][0-9a-fA-F]|\\0|\\u\{[0-9a-fA-F]{1,6}\}s   [^\\"]+s   \\s   \\x[89a-fA-F][0-9a-fA-F]s   \{s   \}s   \(s   \)s   \[s
   attribute(t   attribute_commons   \];?s   [^"\]]+s   \);?s   [^")]+(   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R    R!   (#   R#   R$   R%   R&   R'   R(   R)   R*   R+   R,   R-   R.   R/   R0   R1   R2   R3   R4   R5   R6   R7   R8   R9   R:   R;   R<   R=   R>   R?   R@   RA   RB   R
   RC   RD   (   RI   RJ   RK   RL   RM   RN   RO   RP   RQ   RR   RS   RT   RU   RV   RW   RX   RY   RZ   R[   R\   R]   R^   R_   R`   (   Ra   Rb   Rc   Rd   Re   Rf   Rg   Rh   Ri   Rj   Rk   Rl   Rm   Rn   Ro   Rp   (-   t   __name__t
   __module__t   __doc__t   namet	   filenamest   aliasest	   mimetypesR   R   t   Typet   keyword_typesR	   t   Builtint   builtin_typesR   t   PreprocR   R   R
   t   Doct   Singlet	   Multilinet   Reservedt   Constantt   DeclarationR   R   t   Pseudot   Labelt   CharR   t   Bint   Octt   Hext   Floatt   Integert	   AttributeR   R   t	   Namespacet   Functiont   Classt   EscapeR   t   tokens(    (    (    s3   lib/python2.7/site-packages/pygments/lexers/rust.pyR      s  	                		    															N(   R|   t   pygments.lexerR    R   R   R   R   t   pygments.tokenR   R   R   R   R	   R
   R   R   R   t   __all__R   (    (    (    s3   lib/python2.7/site-packages/pygments/lexers/rust.pyt   <module>
   s   (@	