
=Q[Tc           @   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 d g Z d e f d     YZ d S(   s   
    pygments.lexers.rust
    ~~~~~~~~~~~~~~~~~~~~

    Lexers for the Rust language.

    :copyright: Copyright 2006-2014 by the Pygments team, see AUTHORS.
    :license: BSD, see LICENSE for details.
i(   t
   RegexLexert   includet   bygroupst   wordst   default(   t   Commentt   Operatort   Keywordt   Namet   Stringt   Numbert   Punctuationt
   Whitespacet	   RustLexerc           B   s  e  Z d  Z d Z d g Z d g Z d g Z i	 d e f d e f d e j	 f d e j
 f d	 e j d
 f d e j f d e j f e d d* d+ e f e d d* d+ e j f d6 e j f d7 e j f d8 e j f e d d* d+ e j f dG e j j f e d d* d+ e j f d e j f d e e e  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 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 d	 e j d f d e j d f d e j f g d
 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 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 0.9).

    .. versionadded:: 1.6
    t   Rusts   *.rst   rusts   text/x-rustsrcs   \ns   \s+s   //[/!](.*?)\ns	   //(.*?)\ns   /\*t   comments   '[a-zA-Z_]\w*s   \$([a-zA-Z_]\w*|\(,?|\),?|,?)t   ast   boxt   breakt   continuet   dot   elset   enumt   externt   fnt   fort   ift   implt   int   loopt   matcht   mutt   privt   proct   pubt   reft   returnt   statics   'statict   structt   traitt   truet   typet   unsafet   whilet   suffixs   \bt   alignoft   bet   constt   offsetoft   puret   sizeoft   typeoft   oncet   unsizedt   yields   (mod|use)\bs   (true|false)\bs   let\bt   u8t   u16t   u32t   u64t   i8t   i16t   i32t   i64t   uintt   intt   f32t   f64t   strt   bools   self\bt   Freezet   Podt   Sendt   Sizedt   Addt   Subt   Mult   Divt   Remt   Negt   Nott   BitAndt   BitOrt   BitXort   Dropt   Shlt   Shrt   Indext   Optiont   Somet   Nonet   Resultt   Okt   Errt   from_strt   ranget   printt   printlnt   Anyt	   AnyOwnExtt	   AnyRefExtt   AnyMutRefExtt   Asciit	   AsciiCastt   OnwedAsciiCastt   AsciiStrt	   IntoBytest   Boolt   ToCStrt   Chart   Clonet	   DeepClonet   Eqt   ApproxEqt   Ordt   TotalEqt   Orderingt   Lesst   Equalt   Greatert   Equivt	   Containert   Mutablet   Mapt
   MutableMapt   Sett
   MutableSett   Defaultt   FromStrt   Hasht   FromIteratort
   Extendablet   Iteratort   DoubleEndedIteratort   RandomAccessIteratort   CloneableIteratort   OrdIteratort   MutableDoubleEndedIteratort	   ExactSizet   Timest	   Algebraict   Trigonometrict   Exponentialt
   Hyperbolict   Bitwiset   BitCountt   Boundedt   Integert
   Fractionalt   Realt   RealExtt   Numt   NumCastt
   CheckedAddt
   CheckedSubt
   CheckedMult	   Orderablet   Signedt   Unsignedt   Roundt	   Primitivet   Intt   Floatt
   ToStrRadixt   ToPrimitivet   FromPrimitivet   GenericPatht   Patht	   PosixPatht   WindowsPatht   RawPtrt   Buffert   Writert   Readert   Seekt   SendStrt   SendStrOwnedt   SendStrStatict   IntoSendStrt   Strt	   StrVectort   StrSlicet   OwnedStrt	   IterBytest   ToStrt   IntoStrt   CopyableTuplet   ImmutableTuplet   ImmutableEqVectort   ImmutableTotalOrdVectort   ImmutableCopyableVectort   OwnedVectort   OwnedCopyableVectort   OwnedEqVectort   MutableVectort   MutableTotalOrdVectort   Vectort   VectorVectort   CopyableVectort   ImmutableVectort   Portt   Chant
   SharedChant   spawnt   drops   (ImmutableTuple\d+|Tuple\d+)\bs   (&)(\'[A-Za-z_]\w*)?s   \'[A-Za-z_]\w*:sT   '(\\['"\\nrt]|\\x[0-9a-fA-F]{2}|\\[0-7]{1,3}|\\u[0-9a-fA-F]{4}|\\U[0-9a-fA-F]{8}|.)'s   0b[01_]+t
   number_lits	   0o[0-7_]+s   0[xX][0-9a-fA-F_]+sD   [0-9][0-9_]*(\.[0-9_]+[eE][+\-]?[0-9_]+|\.[0-9_]*|[eE][+\-]?[0-9_]+)s   [0-9][0-9_]*t   "t   strings   r(#*)".*?"\1s   [{}()\[\],.;]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(t   roots   [^*/]+s   #pushs   \*/s   #pops   [*/]s   [ui](8|16|32|64)s   f(32|64)sN   \\['"\\nrt]|\\x[0-9a-fA-F]{2}|\\[0-7]{1,3}|\\u[0-9a-fA-F]{4}|\\U[0-9a-fA-F]{8}s   [^\\"]+s   \\s   \{s   \}s   \(s   \)s   \[s
   attribute(t   attribute_commons   \];?s   [^"\]]+s   \);?s   [^")]+(   R   R   R   R   R   s   elseR   R   s   fnR   R   R   s   inR   s   matchR    R!   R"   R#   s   refR%   R&   s   'staticR'   R(   R)   s   typeR+   R,   (
   R.   R/   R0   R1   R2   R3   R4   s   onceR6   R7   (   s   u8s   u16s   u32R;   R<   R=   R>   R?   R@   s   intRB   RC   s   strs   bool(   RF   RG   RH   s   SizedRJ   RK   RL   RM   RN   RO   RP   RQ   RR   RS   RT   RU   RV   RW   RX   RY   s   NoneR[   R\   R]   R^   s   ranges   printRa   Rb   Rc   Rd   Re   Rf   Rg   Rh   Ri   Rj   Rk   Rl   s   CharRn   Ro   Rp   Rq   Rr   Rs   Rt   Ru   Rv   Rw   Rx   s	   ContainerRz   R{   R|   s   Sets
   MutableSetR   R   R   R   R   s   IteratorR   R   R   R   R   R   R   R   R   R   R   R   R   R   s   IntegerR   R   R   R   R   R   R   R   R   R   R   R   R   R   s   FloatR   R   R   R   R   R   R   R   R   s   Writers   ReaderR   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   R   ((   t   __name__t
   __module__t   __doc__t   namet	   filenamest   aliasest	   mimetypesR   R   t   Doct   Singlet	   MultilineR   t   Labelt   PreprocR   R   t   Reservedt	   Namespacet   Constantt   Declarationt   Typet   Builtint   PseudoR   R   R	   Rm   R
   t   Bint   Octt   HexR   R   t   RawR   R   t   EscapeR   t   tokens(    (    (    s8   /usr/lib/python2.7/dist-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   t   __all__R   (    (    (    s8   /usr/lib/python2.7/dist-packages/pygments/lexers/rust.pyt   <module>
   s   (:	