
a[Tc           @   s   d  Z  d d l 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 d d g Z d e f d     YZ d e f d	     YZ d e f d
     YZ d S(   s   
    pygments.lexers.ml
    ~~~~~~~~~~~~~~~~~~

    Lexers for ML family languages.

    :copyright: Copyright 2006-2014 by the Pygments team, see AUTHORS.
    :license: BSD, see LICENSE for details.
iN(   t
   RegexLexert   includet   bygroupst   defaultt   words(	   t   Textt   Commentt   Operatort   Keywordt   Namet   Stringt   Numbert   Punctuationt   Errort   SMLLexert
   OcamlLexert   OpaLexerc        *   B   s  e  Z d  Z d Z d g Z d d d g Z d d g Z e d  Z e d  Z	 e d  Z
 dB Z dC Z dD   Z dE   Z dF   Z dG   Z i dH e f dI e j dJ f g dK 6dL e dM f dN e dO f dP e j d f dQ e j dM f dR e j dO f g dS 6dT dU j dV   e
 D  e f dW e j dX f dY e j dZ f d[ e j f d\ e j f d] e j f d^ e j f d_ e j f d` e j f da e j f db e j  f dc e e j  f dd e e j  f de e j df f dg e dh f di e j dj f dk e j dl f dm e j! f dn e e do f dT e e f dT e e f g dp 6dn e e f dT e e dO f dT e e dO f dH e" f dq e" f g do 6e# dM  g dr 6e$ dK  ds e j dt f du e j d f e$ dS  e$ dp  dq e" f g dM 6e$ dK  dx e f dI e j dJ f dy e j dw f dz e j d f d2 e dw f d{ e j d f e$ dS  e$ dp  dq e" f g
 dv 6e e j  dX 6e e j  dZ 6d| dU j e  e dO f g d} 6e$ dK  e$ d}  dT e e j% f e# dO  g dj 6e$ dK  dm e j! f d~ e d f dT e e j& dO f dT e e j& dO f e# dO  g dw 6e$ dK  dm e j! f d~ e d f d e e f e' e j( e e  dO f d e e f e' e j( e e  dO f dT e e j( dO f dT e e j( dO f e# dO  g dt 6e$ dK  e$ d}  dm e j! f d~ e d f d e e d f dT e e j) f dT e e j) f dq e" dO f g dl 6e$ dK  d e j d f e$ d}  e$ dp  dq e" dO f g d 6e$ dK  e$ d}  dm e j! f d~ e d f d e' e e e j  dO f d e e d f dT e e j) f dT e e j) f dq e" dO f g	 df 6e$ dK  d e j d f d e j d f d e j f d e e' e e e j*  f d e e' e e e j*  f e$ d}  e$ dp  dq e" f g	 d 6e$ dK  d e e' e j e e j*  f d e e' e j e e j*  f d e j f e$ d}  e$ dp  dq e" f g dh 6e$ dK  dT e e j* dO f dT e e j* dO f dq e" dO f g d 6dx e f dI e j dJ f dm e j! f e e f d> e f d e dO f e e f g d 6d e j f dI e j d f d e j dO f d e j f g dJ 6Z+ RS(   sB   
    For the Standard ML language.

    .. versionadded:: 1.5
    s   Standard MLt   smls   *.smls   *.sigs   *.funs   text/x-standardmls   application/x-standardmlt   abstypet   andt   andalsot   ast   caset   datatypet   dot   elset   endt	   exceptiont   fnt   funt   handlet   ift   int   infixt   infixrt   lett   localt   nonfixt   oft   opt   opent   orelset   raiset   rect   thent   typet   valt   witht   withtypet   whilet   eqtypet   functorR   t   sharingt   sigt	   signaturet   structt	   structuret   wheret   :s   \|t   =s   =>s   ->t   #s   :>t   (t   )t   [t   ]t   {t   }t   ,t   ;s   ...t   _s   [a-zA-Z][\w']*s   [!%&$#+\-/:<=>?@\\~`^|*]+c      	   C   sU   d |  f d t  j f d t  j f d t  j f d t  j f d t  j f d |  d f g S(	   Ns   [^"\\]s   \\[\\"abtnvfr]s   \\\^[\x40-\x5e]s
   \\[0-9]{3}s   \\u[0-9a-fA-F]{4}s   \\\s+\\t   "s   #pop(   R
   t   Escapet   Interpol(   t   whatkind(    (    s6   /usr/lib/python2.7/dist-packages/pygments/lexers/ml.pyt   stringy=   s    	c         c   sn   | j  d  |  j k r! t } n	 t j } | j d  | | j  d  f V| j d  t | j  d  f Vd  S(   Ni   i   (   t   groupt   alphanumid_reservedR   R	   t	   Namespacet   startR   (   t   selft   matcht   token(    (    s6   /usr/lib/python2.7/dist-packages/pygments/lexers/ml.pyt   long_id_callbackL   s
    		 c         c   sl   | j  d  |  j k r! t } n' | j  d  |  j k rB t } n t } | j d  | | j  d  f Vd  S(   Ni   (   RK   RL   R   t   symbolicid_reservedR	   RN   (   RO   RP   RQ   (    (    s6   /usr/lib/python2.7/dist-packages/pygments/lexers/ml.pyt   end_id_callbackT   s    		c         c   sc   | j  d  } | |  j k r* t j } n | |  j k rB t } n t } | j d  | | f Vd  S(   Ni   (   RK   RL   R   t   ReservedRS   R   R	   RN   (   RO   RP   t   strRQ   (    (    s6   /usr/lib/python2.7/dist-packages/pygments/lexers/ml.pyt   id_callback]   s    	s   \s+s   \(\*t   commentt
   whitespaces   \(|\[|\{t   mains   \)|\]|\}s   #pops   \b(let|if|local)\b(?!\')s   \b(struct|sig|while)\b(?!\')s   \b(do|else|end|in|then)\b(?!\')t
   delimiterss   (%s)t   |c         c   s   |  ] } t  j |  Vq d  S(   N(   t   ret   escape(   t   .0t   z(    (    s6   /usr/lib/python2.7/dist-packages/pygments/lexers/ml.pys	   <genexpr>}   s    s   #"t   charRF   t   strings   ~?0x[0-9a-fA-F]+s   0wx[0-9a-fA-F]+s   0w\d+s   ~?\d+\.\d+[eE]~?\d+s
   ~?\d+\.\d+s   ~?\d+[eE]~?\d+s   ~?\d+s   #\s*[1-9][0-9]*s   #\s*(%s)s   #\s+(%s)s   \b(datatype|abstype)\b(?!\')t   dnames   (?=\b(exception)\b(?!\'))t   enames4   \b(functor|include|open|signature|structure)\b(?!\')t   snames   \b(type|eqtype)\b(?!\')t   tnames	   \'[\w\']*s   (%s)(\.)t   dottedt   cores   \S+t   roots   \b(val|and)\b(?!\')t   vnames   \b(fun)\b(?!\')s   main-funt   fnames   \ss   \b(fun|and)\b(?!\')s   \b(val)\b(?!\')s   \b(case|handle)\b(?!\')s   (?=\b(%s)\b(?!\'))t   breakouts   \(t   tyvarseqs   (%s)(\s*)(=(?!%s))s   =(?!%s)t   typbinds   \b(and)\b(?!\')s   (=)(\s*)(datatype)t   datbindt   datcons   \b(withtype)\b(?!\')s   \b(of)\b(?!\')s   (\|)(\s*)(%s)s   (\|)(\s+)(%s)s   (exception|and)\b(\s+)(%s)s   (exception|and)\b(\s*)(%s)s   \)s   [^(*)]s   #pushs   \*\)s   [(*)]()   R   R   R   R   R   R   R   s   elses   endR   s   fnR   R   R   s   inR!   R"   R#   R$   R%   R&   s   ops   openR)   R*   R+   R,   s   typeR.   R/   R0   R1   R2   R3   s   includeR4   R5   R6   R7   R8   R9   (   R:   s   \|R;   s   =>s   ->R<   s   :>(
   R=   R>   R?   R@   RA   RB   RC   RD   s   ...RE   (   s   mains   main(   s   #pops   main-funs   fname(   s   #pops   mainRj   (   s   #pops   main(   s   #popRn   (   s   #popRf   (   s   #popRo   Rp   (   s   #popRc   (   s   #popRf   (,   t   __name__t
   __module__t   __doc__t   namet   aliasest	   filenamest	   mimetypest   setRL   RS   t   nonid_reservedt   alphanumid_ret   symbolicid_reRJ   RR   RT   RW   R   R   t	   MultilineR   R   RU   t   joinR
   t   Chart   DoubleR   t   Hext   Integert   FloatR	   t   Labelt	   DecoratorR   R   R   RM   t   FunctionR   t   Variablet   Typet   Classt   tokens(    (    (    s6   /usr/lib/python2.7/dist-packages/pygments/lexers/ml.pyR      s@  	     	 						
													 											
										c        0   B   s  e  Z d  Z d Z d g Z d d d d g Z d g Z d Z d Z da Z	 d Z
 dj Z dk Z d Z i dt e j f du e j f dv e j f g dw 6dx e f dy e j j f dz e j d{ f d| e j f d} e d~ f d d j e  e f d d j e d d d   e f d e e e	 f e f d d j e
  e j f d d j e  e j f d e f d e j f d e j f d e j f d e j  f d e j! f d e j" f d e j" f d e f d e j# dp f d e j$ f g d 6d e f d e d f d e d f d e f g d~ 6d e j# f e% dw  d e j# f d e j# d f g dp 6dx e f dD e& f d e j f d e j d f d e d f e' d  g d{ 6Z( RS(   s<   
    For the OCaml language.

    .. versionadded:: 0.7
    t   OCamlt   ocamls   *.mls   *.mlis   *.mlls   *.mlys   text/x-ocamlR   t   assertt   begint   classt
   constraintR   t   donet   downtoR   R   R   t   externalt   falset   forR   t   functionR3   R   R    R   t   inheritt   initializert   lazyR#   RP   t   methodt   modulet   mutablet   newt   objectR&   R(   t   privateR*   R+   R5   R7   R,   t   tot   truet   tryR-   t   valueR.   t   virtualt   whenR1   R/   s   !=R<   t   &s   &&s   \(s   \)s   \*s   \+RC   t   -s   -\.s   ->s   \.s   \.\.R:   s   ::s   :=s   :>RD   s   ;;t   <s   <-R;   t   >s   >]s   >\}s   \?s   \?\?s   \[s   \[<s   \[>s   \[\|R@   RE   t   `s   \{s   \{<s   \|s   \|]s   \}t   ~s   [!$%&*+\./:<=>?@^|~-]R   t   asrt   landt   lort   lslt   lxort   modt   ors   [!?~]s   [=<>@^|&+\*/$%-]t   unitt   intt   floatt   boolRb   Ra   t   listt   arrays   \\[\\"\'ntbr]s
   \\[0-9]{3}s   \\x[0-9a-fA-F]{2}s   escape-sequences   \s+s   false|true|\(\)|\[\]s   \b([A-Z][\w\']*)(?=\s*\.)Rg   s   \b([A-Z][\w\']*)s   \(\*(?![)])RX   s   \b(%s)\bR\   s   (%s)Nis
   (%s|%s)?%ss   [^\W\d][\w']*s(   -?\d[\d_]*(.[\d_]*)?([eE][+\-]?\d[\d_]*)s   0[xX][\da-fA-F][\da-fA-F_]*s   0[oO][0-7][0-7_]*s   0[bB][01][01_]*s   \d[\d_]*s7   '(?:(\\[\\\"'ntbr ])|(\\[0-9]{3})|(\\x[0-9a-fA-F]{2}))'s   '.'t   'RF   s   [~?][a-z][\w\']*:Ri   s   [^(*)]+s   \(\*s   #pushs   \*\)s   #pops   [(*)]s   [^\\"]+s   \\\ns   [A-Z][\w\']*(?=\s*\.)s   [A-Z][\w\']*s   [a-z_][\w\']*(0   s   ass   assertR   R   R   s   dos   doneR   s   elses   ends	   exceptionR   R   R   s   funR   s   functors   ifs   ins   includeR   R   R   s   lets   matchR   s   moduleR   s   news   objects   ofs   openR   s   raises   recs   sigs   structs   thenR   R   R   s   types   values   valR   R   s   whiles   with()   s   !=R<   R   s   &&s   \(s   \)s   \*s   \+RC   R   s   -\.s   ->s   \.s   \.\.R:   s   ::s   :=s   :>RD   s   ;;R   s   <-R;   R   s   >]s   >\}s   \?s   \?\?s   \[s   \[<s   \[>s   \[\|R@   RE   R   s   \{s   \{<s   \|s   \|]s   \}R   (   s   andR   R   R   R   R   s   mods   or(   R   s   ints   floats   bools   strings   chars   lists   array()   Rq   Rr   Rs   Rt   Ru   Rv   Rw   t   keywordst   keyoptst	   operatorst   word_operatorst   prefix_symst
   infix_symst
   primitivesR
   RG   R   R	   t   Builtint   PseudoRM   R   R   R}   R   R   t   WordR   R   R   R   t   Octt   BinR   R~   R   R   R   R   R   R   (    (    (    s6   /usr/lib/python2.7/dist-packages/pygments/lexers/ml.pyR   e  sz   		         	#							c           B   s  e  Z d  Z d Z d g Z d g Z d g Z dv Z d! Z d" Z	 d# Z
 i d$ e j f d% e j f d& e j f g d' 6d( e d) f d* e f g d+ 6e d+  d, e f g d- 6e d-  e e d. d/ d0 d/ e f d1 e d/ e j j f d2 e j f d3 e j f d4 e j f d5 e j f d6 e j f d7 e j f d8 e j f d9 e j f d: e j d; f d< e j f d= e d> f d? e d@ f dA e j dB f dC e j f dD e	 dE e j f dF e j  f dG e	 dE e f dH e	 e f dH e
 e f dI e d f dJ e e j! f dK e e j f dL e j f e e f g dM 6e d-  dN e j! f e" dw  g d 6e d-  dQ e j! dx f dS e j! dy f e dQ e j! dz f e e j! d@ f dJ e e j! f e" d@  g dU 6e d-  e" d{  g dP 6e d-  dW e j! d| f e" d@  g dV 6e d-  dN e j! d} f dX e j! d~ f e" d@  g dO 6e d-  dZ e j! dP f dN e j! d f e" d@  g dY 6e d-  d[ e j! f d\ e j! f dQ e j! d> f d] e j! d@ f g dR 6e d-  d^ e j! f d\ e j! f d= e j! d> f d? e j! d@ f g dT 6d_ e f d( e d> f d` e d@ f d\ e f g d) 6da e j f d: e j d@ f d= e dM f e d'  g d; 6db e j f dc e j d@ f d= e dM f e d'  g dd 6de e j d f dg e j d f g dB 6di e j d@ f g dj 6d, e f dk e j dl f dm e j d@ f dg e j d f g df 6dJ e j d f d: e j d f dK e e j d@ f dL e j d f dn e j d@ f d= e d f g dl 6do e dp f dq e j d f dr e j dB f d= e dM f ds e j f g dh 6dt e d@ f du e f g dp 6Z# RS(   sU   
    Lexer for the Opa language (http://opalang.org).

    .. versionadded:: 1.5
    t   Opat   opas   *.opas
   text/x-opaR   R   R   R   t   clientt   csst   databaset   dbR   R   R   R   t   forallR   R   t   importRP   R   R   t   packaget   parserR+   t   serverR,   R-   R.   R/   t
   xml_parsers   (([a-zA-Z_]\w*)|(`[^`]*`))s   [.=\-<>,@~%/+?*&^!]s   [()\[\],;|]s   \\[\\"\'ntr}]s
   \\[0-9]{3}s   \\x[0-9a-fA-F]{2}s   escape-sequences   /\*s   nested-comments   //.*?$t   commentss   \s+s   comments-and-spacest   prefixs   \bt   suffixt   @s   -?.[\d]+([eE][+\-]?\d+)s   -?\d+.\d*([eE][+\-]?\d+)s   -?\d+[eE][+\-]?\d+s   0[xX][\da-fA-F]+s   0[oO][0-7]+s
   0[bB][01]+s   \d+s   #[\da-fA-F]{3,6}RF   Rb   s9   '(?:(\\[\\\"'ntbr ])|(\\[0-9]{3})|(\\x[0-9a-fA-F]{2})|.)'s   \{s   #pushs   \}s   #pops   <(?=[a-zA-Z>])s   html-open-tags   [@?!]?(/\w+)+(\[_\])?s   <-(?!R>   s   \b([A-Z]\w*)(?=\.)s   =(?!s   (%s)+R:   R   R<   s   #(?=\{)Ri   s   ->s
   type-lhs-1s   type-with-slashs   \(s
   type-tuples   ~?\{s   type-records   type-1s   slash-type-1t   /s   (?=,)s
   type-arrows   ,(?=[^:]*?->)s   [^()/*]+s   [/*]s   \)s   [^{}/*]+s   [^/*]+s   \*/s   [^\\"{]+s	   [^\\\'{]+s   \'s   single-strings   [\w\-:]+s	   html-attrR   s   html-contents	   [\w\-:]*>s   html-end-tags	   [\w\-:]+=s   html-attr-values   />s   [^"\'{`=<>]+s   <!--s   html-comments   </R   s   [^<{]+s   -->s   [^\-]+|-(   s   ands   ass   begins   caseR   R   R   R   s   dos   elses   ends   externalR   s   functions   ifR   s   matchs   modules   ors   packageR   s   recR   s   thens   types   vals   withR   (   s   #pops
   type-lhs-1s   type-with-slash(   s   #pops
   type-tuple(   s   #pops   type-record(   s   #pops
   type-tuple(   s   #pops   slash-type-1s   type-1(   s   #pops   type-1(   s   #pops   type(   s   #pops
   type-arrow(   s   #pops   type(   s   #pops	   html-attr(   s   #pops   html-content(   s   #pops   html-content(   s   #pops   single-string(   s   #pops   string(   s   #pops   root(   s   #pops   root(   s   #pops   html-end-tag($   Rq   Rr   Rs   Rt   Ru   Rv   Rw   R   t   ident_ret   op_ret   punc_reR
   RG   R   R   R   R   R   R	   R   R   R   R   R   R   R   R   R   R~   R   t   SingleR   RM   R   R   R   (    (    (    s6   /usr/lib/python2.7/dist-packages/pygments/lexers/ml.pyR     s   			   										
			
	(   Rs   R]   t   pygments.lexerR    R   R   R   R   t   pygments.tokenR   R   R   R   R	   R
   R   R   R   t   __all__R   R   R   (    (    (    s6   /usr/lib/python2.7/dist-packages/pygments/lexers/ml.pyt   <module>
   s   (@ Q\