
    L&i                        d Z ddlZddlmZmZmZ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mZ ddlmZ g dZ G d de          Z G d	 d
e          Z G d de          Z G d de          Z G d de          Z G d de          Z G d de          Z  G d de          Z! G d de          Z" G d de          Z# G d de          Z$dS )z
    pygments.lexers.haskell
    ~~~~~~~~~~~~~~~~~~~~~~~

    Lexers for Haskell and related languages.

    :copyright: Copyright 2006-2022 by the Pygments team, see AUTHORS.
    :license: BSD, see LICENSE for details.
    N)Lexer
RegexLexerbygroupsdo_insertionsdefaultincludeinheritline_re)
TextCommentOperatorKeywordNameStringNumberPunctuationGeneric
Whitespace)	unistring)
HaskellLexer
HspecLexer
IdrisLexer	AgdaLexerCryptolLexerLiterateHaskellLexerLiterateIdrisLexerLiterateAgdaLexerLiterateCryptolLexer	KokaLexerc                   R   e Zd ZdZdZdZddgZdgZdgZdZ	d	Z
g d
efdej        fdej        dfdej        dfdej        dfdej        fdd                    e	          z  ej        fdej        fdej        z   dz   ej        fdej        z   dz   efdej        z   dz   ej        fdej        z   dz   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        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j        d,fd-ed.fd/ej        fd0ej#        fd1e$fd
efd-ed.fd2e$d3fd4efd5ej        z   d6z   ej        z   d7z    e%ej&        eeee          d3fd5ej        z   d8z    e%ej&        eeee$          d9fd5ej        z   d:z    e%ej&        ee$          d9fd;ej&        d3fgd
efd5ej        z   d:z    e%ej&        ee$          d9fd<ej        z   d=z   ej&        d3fgd
efd<ej        z   d>z   ej        fd?ej        z   d@z   ej        fdej        fdej        dfdAe$fd"efdBe$dCfd2e$dDfg	dEej        fdej        dFfdGej        d3fdHej        fgdIej        d3fdJej'        dKfd+ej        d3fgdLefdJej'        dKfd-ed3fgdMej'        d3fdNej        z   dOz   ej'        d3fd                    e
          ej'        d3fdPej'        d3fdQej'        d3fdRej'        d3fdS e%eej'                  d3fgdTZ(dUS )Vr   zk
    A Haskell lexer based on the lexemes defined in the Haskell 98 Report.

    .. versionadded:: 0.8
    Haskellzhttps://www.haskell.org/haskellhsz*.hsztext/x-haskell)caseclassdatar   derivingdoelsefamilyifin
infix[lr]?instanceletnewtypeofthentypewhere_NULSOHz[SE]TXEOTENQACKBELBSHTLFVTFFCRzS[OI]DLEzDC[1-4]NAKSYNETBCANEMSUBESCz[FGRU]SSPDEL\s+!--(?![!#$%&*+./<=>?@^|_~:\\]).*?$\{-comment
\bimport\bimport
\bmodule\bmodule	\berror\b\b(%s)(?!\')\b|z'[^\\]'z^[_z][\w\']*z'?[_z][\w']*z('')?[z(')[z(')\[[^\]]*\]z(')\([^)]*\)z(')[:!#$%&*+.\\/<=>?@^|~-]+\\(?![:!#$%&*+.\\/<=>?@^|~-]+)+(<-|::|->|=>|=)(?![:!#$%&*+.\\/<=>?@^|~-]+):[:!#$%&*+.\\/<=>?@^|~-]*[:!#$%&*+.\\/<=>?@^|~-]+z40[xX]_*[\da-fA-F](_*[\da-fA-F])*_*[pP][+-]?\d(_*\d)*zR0[xX]_*[\da-fA-F](_*[\da-fA-F])*\.[\da-fA-F](_*[\da-fA-F])*(_*[pP][+-]?\d(_*\d)*)?z\d(_*\d)*_*[eE][+-]?\d(_*\d)*z+\d(_*\d)*\.\d(_*\d)*(_*[eE][+-]?\d(_*\d)*)?z0[bB]_*[01](_*[01])*z0[oO]_*[0-7](_*[0-7])*z 0[xX]_*[\da-fA-F](_*[\da-fA-F])*z	\d(_*\d)*'	character"string\[\]\(\)[][(),;`{}]\)#popqualified\bz([z][\w.]*)(\s+)(as)(\s+)([z][\w.]*)z][\w.]*)(\s+)(hiding)(\s+)(\()funclistz][\w.]*)(\s+)(\()[\w.]+[z][\w.]*z]\w*z(_[\w\']+|[z	][\w\']*),\(rf   rf   #pop:2[^-{}]+#push-\}[-{}][^\\']'\\escape[^\\"]+[abfnrtv"\'&\\]z\^[][z@^_]o[0-7]+x[\da-fA-F]+\d+	(\s+)(\\)rootrR   rT   rf   rP   r]   r_   rs   N))__name__
__module____qualname____doc__nameurlaliases	filenames	mimetypesreservedasciir   r   Single	Multiliner   Reservedr   	Exceptionjoinr   CharuniLlFunctionLuTyper   Wordr   FloatBinOctHexIntegerBuiltinr   r   	NamespaceEscapetokens     d/home/geonatureadmin/si_en_reseau/tutos/venv/lib/python3.11/site-packages/pygments/lexers/haskell.pyr   r      sq        
 D
$C$GI!"IFH9E*
Z *
 27>B	*

 W&	2*
 G,h7*
 G,h7*
 4>**
 (!3!33W5EF*
 %*
 cf_{*DM:*
 sv
*D1*
 +-w|<*
  sv+W\:!*
" w|,#*
$ gl+%*
& ,W\:'*
* />+*
, <X]K-*
. *7<8/*
0 )(31*
4 EflS5*
6()/77*
: .v|<;*
< <V\J=*
> %fj1?*
@ '
3A*
B 1&*=C*
D 6>*E*
H 6;,I*
J 68$K*
N gl#O*
P dl#Q*
R [)S*
Z Z 68$K(W%SV^99CFB[PXdnj':tLLfV SV^??Xdnj':{SSU_a SV^22Xdnj+>>
L /#
( Z SV^22Xdnj+>>
LCF]Z'@	
 Z CF]W$gl3cf$|3T]C17>BW&	2;((3K!9:K*
  *+W&0W&/w()
 f-FM8,&+v&	
  FM8,&&!
  7(&-@XXe__fmV4/fmV4V]F+88J>>G
Kn nFFFr   r   c            	           e Zd ZdZdZdgZdgZg Zdd ee	e
ej                  fd ee	e
ej                  fd ee	e
ej                  fegiZd	S )
r   zY
    A Haskell lexer with support for Hspec constructs.

    .. versionadded:: 2.4.0
    Hspechspecz*Spec.hsr{   z(it)(\s*)("[^"]*")z(describe)(\s*)("[^"]*")z(context)(\s*)("[^"]*")N)r|   r}   r~   r   r   r   r   r   r   r   r   r   Docr	   r   r   r   r   r   r      s          DiGII 	"HHT:vz$J$JK(((4VZ*P*PQ'$
FJ)O)OP	
FFFr   r   c                   2   e Zd ZdZdZdZddgZdgZdgZdZ	d	Z
d
Zdd                    e          z   eeej                  fd eeej                  fd eeej                  fd eeej                  dfd eeej        eej        e          fdd                    e	          z  ej        fd eej        e          dfd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        dfded fd!efd"efgd#efd$ eej         ee!          d%fd&ej         d'fgd#efd(ej        fd)ej        fd*ej        fd+ej        dfd,e!fd-efd.e!d/fd0e!d1fg	d2ej        fd+ej        d3fd4ej        d'fd5ej        fgd6ej        fd7ej"        d8fdej        d'fgd9efd7ej"        d8fded'fgd:ej"        d'fd;ej"        d'fd                    e
          ej"        d'fd<ej"        d'fd=ej"        d'fdej"        d'fd> eeej"                  d'fgd?Z#d@S )Ar   z
    A lexer for the dependently typed programming language Idris.

    Based on the Haskell and Agda Lexer.

    .. versionadded:: 2.0
    Idriszhttps://www.idris-lang.org/idrisidrz*.idrztext/x-idris)3r$   r%   r&   r   usingr(   r)   r+   r,   r-   r.   rewriteauto	namespacecodatamutualprivatepublicabstracttotalpartial	interfaceimplementationexportcoveringconstructorr/   proofr1   r2   staticr4   r5   withpatterntermsyntaxprefix	postulate
parametersrecorddsl
impossibleimplicittacticsintrosintrocomputerefineexacttrivialr6   )liblinkflagr   hidefreezeaccessr   loggingdynamicr   error_handlerslanguagez^(\s*)(%%(%s))rW   z((\s*)(--(?![!#$%&*+./<=>?@^|_~:\\]).*?)$z(\s*)(\|{3}.*?)$z
(\s*)(\{-)rP   ^(\s*)([^\s(){}]+)(\s*)(:)(\s*)rV   (import|module)(\s+)rT   ('')?[A-Z][\w\']*z[a-z][\w\']*z(<-|::|->|=>|=)z"([(){}\[\]:!#$%&*+.\\/<=>?@^|~-]+)\d+[eE][+-]?\d+\d+\.\d+([eE][+-]?\d+)?0[xX][\da-fA-F]+rx   r\   r]   r^   r_   
[^\s(){}]+\s+?rM   ([A-Z][\w.]*)(\s+)(\()rf   [A-Z][\w.]*rd   [A-Z]\w*(_[\w\']+|[a-z][\w\']*)z--.*$rO   ri   r[   rj   rk   rc   rl   rm   rn   ro   rp   z[^\\']rr   rs   rt   ru   \^[][A-Z@^_]rv   rw   ry   )r{   rT   rf   rP   r]   r_   rs   N)$r|   r}   r~   r   r   r   r   r   r   r   r   
directivesr   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      s5         D
'CG	I IWH9E
YJ *!5!55Xj'"23358((:w~:^:^_ ((:w~"F"FGHHZ1BCCYO/Xj$-X]JWWY (!3!33W5EF$hhw/?&L&LhW!7<0d#/2HMB.'6 &*-V^$6;,68$D!j!7
< Z &Xdnj+>>
LT^V4	
 Z ',''7w~&W&	2;((3K!9:K*
  *+W&0W&/w()
 $FM8,&+v&	
  FM8,&&!
  7fmV4XXe__fmV4/fmV4V]F+88J>>G
IM MFFFr   r   c                   V   e Zd ZdZdZdZdgZdgZdgZdZ	d e
eej        eej        e          fd	ej        fd
ej        dfdej        dfdd                    e	          z  ej        fd e
ej        e          dfd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        dfdedfdefdefgdej        fdej        d fd!ej        d"fd#ej        fgd
ej        dfd$ed"fd%efgej         d         ej         d         ej         d         ej         d&         d'Z d(S ))r   z|
    For the Agda dependently typed functional programming language and
    proof assistant.

    .. versionadded:: 2.0
    Agdaz.http://wiki.portal.chalmers.se/agda/pmwiki.phpagdaz*.agdaztext/x-agda))r   r   coinductiver   r&   r(   zeta-equalityfieldforallhidingr,   	inductiveinfixinfixlinfixrr.   interleavedr/   macror   zno-eta-equalityopenoverlapr   r   	primitiver   quote	quoteTermr   renamingr   r   tacticunquoteunquoteDecl
unquoteDefr   variabler4   r   r   rN   rO   rP   z\{!holerV   rW   r   rT   z\b(Set|Prop)[\u2080-\u2089]*\bz(\(|\)|\{|\})z((\.{1,3}|\||\u03BB|\u2200|\u2192|:|=|->)r   r   r   rx   r\   r]   r^   r_   r   r   z[^!{}]+rn   z!\}rd   z[!{}]z[a-zA-Z][\w.\']*z	[\W0-9_]+rs   )r{   r   rT   rP   r]   r_   rs   N)!r|   r}   r~   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   	Directiver   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   #  s         D
:ChG
IIH 0Xj$-mZ1 12 27>BW&	2W&/ (!3!33W5EF$hhw/?&L&L.=x(8(-H.'6 &*-V^$6;,68$D!j!9
@ *+W&0W&/w()
 W&	2 $/4 

  &y1!(5%h/%h/]/ /FFFr   r   c                   \   e Zd ZdZdZddgZdgZdgZdZdZ	d	e
fd
ej        fdej        dfdej        dfdej        dfdej        fdd                    e          z  ej        fdej        fdefdej        fdej        fdej        fd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        d!fd"ed#fd$ej        fd%ej        fd&efgd	e
fd"ed#fd'ed(fd)efd* e ej!        e
ee
e          d(fd+ e ej!        e
ee
e          d,fd- e ej!        e
e          d,fd.ej!        d(fgd	e
fd- e ej!        e
e          d,fd/ej!        d(fgd	e
fd0ej        fd1ej        fd2efdefd3ed4fd'ed5fgd6ej        fdej        d7fd8ej        d(fd9ej        fgd:ej        d(fd;ej"        d<fd ej        d(fgd=efd;ej"        d<fd"ed(fgd>ej"        d(fd?ej"        d(fd                    e	          ej"        d(fd@ej"        d(fdAej"        d(fdej"        d(fdB e e
ej"                  d(fgdCZ#h dDZ$dE Z%dFS )Gr   zs
    FIXME: A Cryptol2 lexer based on the lexemes defined in the Haskell 98 Report.

    .. versionadded:: 2.0
    Cryptolcryptolcryz*.cryztext/x-cryptol)ArithBitCmpFalseInfTruer)   r   externfinr+   rR   inflg2maxminrT   r0   pragmapropertyr2   r3   r4   widthr6   rM   //.*$/\*rP   rQ   rR   rS   rT   rU   rV   rW   z^[_a-z][\w\']*z'?[_a-z][\w']*r   rX   rY   rZ   r[   r   r   z0[oO][0-7]+r   rx   r\   r]   r^   r_   r`   ra   rb   rc   rd   re   z(([A-Z][\w.]*)(\s+)(as)(\s+)([A-Z][\w.]*)z#([A-Z][\w.]*)(\s+)(hiding)(\s+)(\()rf   r   rg   r   r   r   ri   rj   rk   rl   [^/*]+rn   \*/[*/]rq   rr   rs   rt   ru   r   rv   rw   ry   rz   >   <<>><<<>>>parregseqr   tailconsterrorsplittracer  ASSERTlengthreverse	transpose	undefinedc              #      K   dg}t          j        | ||          D ]1\  }}}|t          u r|| j        v r|t          j        |fV  *|||fV  2d S )Nr{   )r   get_tokens_unprocessedr   EXTRA_KEYWORDSr   )selftextstackindextokenvalues         r   r'  z#CryptolLexer.get_tokens_unprocessed  s      1$eDD	* 	*E5%}}$*=!=!=T\500000UE)))))	* 	*r   N)&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   r   r   r   r   r   r   r(  r'  r   r   r   r   r   m  s        
 D% G	I!"I2H9E Z w~&W&	2 G,h7G,h74>*(!3!33W5EF.%!7<0.>;X]K)7<8((3.'6VZ( &*-V^$6;,68$gl#dl#[)A!
H Z 68$K(W%8Xdnj':tLLfV 4Xdnj':{SSU_a 'Xdnj+>>
L /#
( Z &Xdnj+>>
LT^V4	
 Z ',''7 ;((3K!9:K*
 )*W&0W&/g'(
 f-FM8,&+v&	
  FM8,&&!
  7fmV4XXe__fmV4/fmV4V]F+88J>>G
wd dFL  N
* * * * *r   r   c                   >    e Zd ZdZ ej        d          Zd Zd ZdS )LiterateLexera  
    Base class for lexers of literate file formats based on LaTeX or Bird-style
    (prefixing each code line with ">").

    Additional options accepted:

    `litstyle`
        If given, must be ``"bird"`` or ``"latex"``.  If not given, the style
        is autodetected: if the first non-whitespace character in the source
        is a backslash or percent character, LaTeX is assumed, else Bird.
    z(>[ \t]*)(.*\n)c                 8    || _         t          j        | fi | d S )N)	baselexerr   __init__)r)  r2  optionss      r   r3  zLiterateLexer.__init__  s'    "t''w'''''r   c           	   #     K   | j                             d          }|"|                                dd         dv rdpd}d}g }|dk    rt          j        |          D ]}|                                }| j                            |          }|r^|                    t          |          dt          j        |                    d          fgf           ||                    d          z  }|                    t          |          dt          |fgf           n7dd	lm}  |di | j         }	d}
d}t          j        |          D ]}|                                }|
r5|                                                    d
          rd}
||z  }G||z  }M|                                                    d          rNd}
||z  }|                    t          |          t!          |	                    |                    f           d}||z  }|                    t          |          t!          |	                    |                    f           t%          || j                            |                    E d {V  d S )Nlitstyler      z%\latexbird    )TexLexerz
\end{code}z\begin{code}r   )r4  getlstripr
   finditergroupbird_rematchappendlenr   Specialr   pygments.lexers.markupr<  
startswithlistr'  r   r2  )r)  r*  stylecode
insertionsrB  linemr<  lxlexer	codelinesr8  s               r   r'  z$LiterateLexer.get_tokens_unprocessed	  s       ,,=[[]]1Q3'50=gGE
F?? )$// F F{{}}L&&t,, F%%s4yy)*GOQWWQZZ(H'I'K L L LAGGAJJ&DD%%s4yyAtT?2C&DEEEEF 877777h....GIE )$// " "{{}} "{{}}//>> %$%	[[]]--o>> " !ITME%%s4yy'+G,J,J5,Q,Q'R'R'T U U UEETMEEs4yy#G$B$B5$I$IJJL M M M T^-R-RSW-X-XYYYYYYYYYYYr   N)	r|   r}   r~   r   recompilerA  r3  r'  r   r   r   r0  r0    sU        
 
 bj+,,G( ( (*Z *Z *Z *Z *Zr   r0  c                   0    e Zd ZdZdZg dZdgZdgZd ZdS )r   an  
    For Literate Haskell (Bird-style or LaTeX) source.

    Additional options accepted:

    `litstyle`
        If given, must be ``"bird"`` or ``"latex"``.  If not given, the style
        is autodetected: if the first non-whitespace character in the source
        is a backslash or percent character, LaTeX is assumed, else Bird.

    .. versionadded:: 0.9
    zLiterate Haskell)zliterate-haskelllhaskelllhsz*.lhsztext/x-literate-haskellc                 D    t          di |}t          j        | |fi | d S Nr   )r   r0  r3  r)  r4  hslexers      r   r3  zLiterateHaskellLexer.__init__H  s6    ))))tW8888888r   N	r|   r}   r~   r   r   r   r   r   r3  r   r   r   r   r   6  sN          D555G	I*+I9 9 9 9 9r   r   c                   0    e Zd ZdZdZg dZdgZdgZd ZdS )r   al  
    For Literate Idris (Bird-style or LaTeX) source.

    Additional options accepted:

    `litstyle`
        If given, must be ``"bird"`` or ``"latex"``.  If not given, the style
        is autodetected: if the first non-whitespace character in the source
        is a backslash or percent character, LaTeX is assumed, else Bird.

    .. versionadded:: 2.0
    zLiterate Idris)zliterate-idrislidrislidrz*.lidrztext/x-literate-idrisc                 D    t          di |}t          j        | |fi | d S rV  )r   r0  r3  rW  s      r   r3  zLiterateIdrisLexer.__init___  s6    ''w''tW8888888r   NrY  r   r   r   r   r   M  sN          D222G
I()I9 9 9 9 9r   r   c                   0    e Zd ZdZdZddgZdgZdgZd ZdS )	r   aU  
    For Literate Agda source.

    Additional options accepted:

    `litstyle`
        If given, must be ``"bird"`` or ``"latex"``.  If not given, the style
        is autodetected: if the first non-whitespace character in the source
        is a backslash or percent character, LaTeX is assumed, else Bird.

    .. versionadded:: 2.0
    zLiterate Agdazliterate-agdalagdaz*.lagdaztext/x-literate-agdac                 H    t          di |}t          j        | |fddi| d S )Nr6  r8  r   )r   r0  r3  )r)  r4  	agdalexers      r   r3  zLiterateAgdaLexer.__init__v  s;    ((((	tYLLLGLLLLLr   NrY  r   r   r   r   r   d  sR          D(GI'(IM M M M Mr   r   c                   0    e Zd ZdZdZg dZdgZdgZd ZdS )r   an  
    For Literate Cryptol (Bird-style or LaTeX) source.

    Additional options accepted:

    `litstyle`
        If given, must be ``"bird"`` or ``"latex"``.  If not given, the style
        is autodetected: if the first non-whitespace character in the source
        is a backslash or percent character, LaTeX is assumed, else Bird.

    .. versionadded:: 2.0
    zLiterate Cryptol)zliterate-cryptollcryptollcryz*.lcryztext/x-literate-cryptolc                 D    t          di |}t          j        | |fi | d S rV  )r   r0  r3  )r)  r4  crylexers      r   r3  zLiterateCryptolLexer.__init__  s6    **'**tX9999999r   NrY  r   r   r   r   r   {  sN          D666G
I*+I: : : : :r   r   c                      e Zd ZdZdZdZdgZddgZdgZg dZ	g d	Z
g d
Zg dZdZdez   dz   ZdZej        Zej        Zej        Z ed          dez   edfd eeee          dfd eeee          dfdd                    e
          z  dz    eeee          dfd eeeeeej                  fd eeeej        eeeeeej        	  	        fdez   dz    eeeeeej                  fdez   dz    eeeeeeeej                  fdd                    e          z  ez   ej        fdd                    e	          z  ez   efdd                    e          z  ez   ej         fdez   efd  eej        e          fd! eej        e          fd"ez   dz    eej        e          fd#ej!        fd$e"j#        d%fed&z   e$f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gd0ef ed          gd1e%d2f ed          gd3ed4f ed5          gd6ed2fd3ed4fd7efd8 eeee          f ed5          g ed          dd                    e          z  ez   efd9d                    e	          z  ez   d:z   ed2fd;ez   efd<efd#ej!        fd  eej        e          fd= eej        e          fd>ef e+d2          g
d? eee,j-                  fd@efdAe,j.        dBfdCe,j/        fgdDe,j.        fdAe,j.        dEfdFe,j.        d2fdGe,j.        fgdHe"j#        fdIe"j0        fd.e"j#        d2fgdJe"j#        f edK          dLe"j#        d2fgdMe"j*        f edK          dNe"j*        d2fgdOe"j0        fdPe"j0        fdQe"j0        fdRe"j0        fgdSZ1dTS )Ur   zA
    Lexer for the Koka language.

    .. versionadded:: 1.6
    Kokaz/https://koka-lang.github.io/koka/doc/index.htmlkokaz*.kkz*.kkiztext/x-koka)"r   r   r   r3   cotyperectypealiasstructconfunfunctionvalvarexternalr+   r2   r)   elifreturnrB  r   r   r   rT   rR   asr   inlinerectryyieldenumr   r.   )r3   rj  rk  rl  rm  r{  )r   existssomer   )forwhilerepeatforeachzforeach-indexedr  catchfinallycsjsfilerefassignedz[$%&*+@!/\\^~=.:\-?|<>]+z(?!)z	(?![\w/])
whitespacez::?r3   z(alias)(\s+)([a-z]\w*)?
alias-typez(struct)(\s+)([a-z]\w*)?struct-typez(%s)rW   z(\s+)([a-z]\w*)?z=(module)(\s+)(interface(?=\s))?(\s+)?((?:[a-z]\w*/)*[a-z]\w*)z`(import)(\s+)((?:[a-z]\w*/)*[a-z]\w*)(?:(\s*)(=)(\s*)(qualified)?(\s*)((?:[a-z]\w*/)*[a-z]\w*))?z>^(public|private)?(\s+)?(function|fun|val)(\s+)([a-z]\w*|\((?:z|/)\))zd^(?:(public|private)(?=\s+external))?((?<!^)\s+)?(external)(\s+)(inline(?=\s))?(\s+)?([a-z]\w*|\((?:z::?|:=|\->|[=.]z((?:[a-z]\w*/)*)([A-Z]\w*)z((?:[a-z]\w*/)*)([a-z]\w*)z((?:[a-z]\w*/)*)(\((?:z_\w*z@"	litstringz
|/(?![*/])`z[{}()\[\];,]z![0-9]+\.[0-9]+([eE][\-+]?[0-9]+)?z0[xX][0-9a-fA-F]+z[0-9]+r\   charr^   r_   =z(?=\((?!,*\)))rd   z[(\[<]type-nestedtype-contentz[)\]>]ri   z([a-z]\w*)(\s*)(:)(?!:)z(?=((%s)z))z[EPHVX]z[a-z][0-9]*(?![\w/])z((?:[a-z]\w*/)*)([a-z]\w+)z::|->|[.:|]z(\n\s*)(#.*)$rM   r  rP   r  r  rn   r  r  z[^"]+z""z	[^\\"\n]+escape-sequencez["\n]z
[^\\\'\n]+z[\'\n]z\\[nrt\\"\']z\\x[0-9a-fA-F]{2}z\\u[0-9a-fA-F]{4}z\\U[0-9a-fA-F]{6})r{   r  r  r3   r  r  r  rP   r  r_   r  r  N)2r|   r}   r~   r   r   r   r   r   r   keywordstypeStartKeywordstypekeywordsbuiltinsymbols	sboundaryboundaryr   	Attribute	tokenTypeClasstokenTypeDefr   EmphtokenConstructorr   r   r   r   r   r   r   r   PseudoVariabler   Doubler   r   r   r   r   r   r   r   r   Preprocr   r   r   r   r   r   r   r   r     s         D
;ChG!II  H   
  L
  G *G #%I H I:L|
 GL!! iF3'':|)T)T(((7J*U*U!2333 !"*(7J"M"M NXgz7JOOQ+ Xgz4>:wPZz4>; ;<%'./1:;Xgz7JNNP ")*,56Xgz7JUYUbcce
 sxx---8',Gsxx)))H4g>sxx(((83W^D)+W5 +Xdn&6779*HHT^T,J,JK&09<Xdnd++-dm$ FM;/ |#X.8k* 26<@!6:.'6;'6=(+u;
~ 7OGFOO
 V4GFOO
 	=1GN##
 	6*	=19'XdJ	224GN##
 GL!! sxx---8'B388H---84?f ("I. %i0i()*Xdni002*Xdni002 Y' GFOO/
8 xx
GODDEZ W&	2w~&	
 )*W&0W&/g'(	
 v}%FM"6=&)
 6=)G%&&v}f-
 FK(G%&&V,
 fm,!6=1!6=1!6=1
cX XFFFr   r   )%r   rP  pygments.lexerr   r   r   r   r   r   r	   r
   pygments.tokenr   r   r   r   r   r   r   r   r   r   pygmentsr   r   __all__r   r   r   r   r   r0  r   r   r   r   r   r   r   r   <module>r     s0    
			' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' '- - - - - - - - - - - - - - - - - - - - - - - - % % % % % %0 0 0
B B B B B: B B BJ       ,m m m m m m m m`G G G G G
 G G GTF* F* F* F* F*: F* F* F*R=Z =Z =Z =Z =ZE =Z =Z =Z@9 9 9 9 9= 9 9 9.9 9 9 9 9 9 9 9.M M M M M M M M.: : : : := : : :.U U U U U
 U U U U Ur   