
                         n   S r SSKrSSKJrJrJrJrJrJrJ	r	J
r
  SSKJrJrJrJrJrJrJrJrJrJr  SSKJr  / SQr " S S\5      r " S	 S
\5      r " S S\5      r " S S\5      r " S S\5      r " S S\5      r " S S\5      r  " S S\5      r! " S S\5      r" " S S\5      r# " S S\5      r$g)z
pygments.lexers.haskell
~~~~~~~~~~~~~~~~~~~~~~~

Lexers for Haskell and related languages.

:copyright: Copyright 2006-2023 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S rSrSrSrSrSS/rS/rS/r	S	r
S
r/ S\4PS\R                  4PS\R                  S4PS\R"                  S4PS\R"                  S4PS\R&                  4PSSR)                  \
5      -  \R"                  4PS\R,                  4PS\R0                  -   S-   \R2                  4PS\R0                  -   S-   \4PS\R4                  -   S-   \R6                  4PS\R4                  -   S-   \R6                  4PS\R6                  4PS\R6                  4PS\R6                  4PS \R2                  4PS!\R:                  4PS"\R6                  4PS#\4PS$\R>                  4PS%\R>                  4PS&\R>                  4PS'\R>                  4PS(\R@                  4PS)\RB                  4PS*\RD                  4PS+\RF                  4PS,\R,                  S-4PS.\S/4PS0\R6                  4PS1\RH                  4PS2\%4PS\4S.\S/4S3\%S44S5\4S6\R4                  -   S7-   \R4                  -   S8-   \&" \RN                  \\\\5      S44S6\R4                  -   S9-   \&" \RN                  \\\\%5      S:4S6\R4                  -   S;-   \&" \RN                  \\%5      S:4S<\RN                  S44/S\4S6\R4                  -   S;-   \&" \RN                  \\%5      S:4S=\R4                  -   S>-   \RN                  S44/S\4S=\R4                  -   S?-   \R6                  4S@\R0                  -   SA-   \R2                  4S\R                  4S\R                  S4SB\%4S#\4SC\%SD4S3\%SE4/	SF\R                  4S\R                  SG4SH\R                  S44SI\R                  4/SJ\R,                  S44SK\RP                  SL4S,\R,                  S44/SM\4SK\RP                  SL4S.\S44/SN\RP                  S44SO\R4                  -   SP-   \RP                  S44SR)                  \5      \RP                  S44SQ\RP                  S44SR\RP                  S44SS\RP                  S44ST\&" \\RP                  5      S44/SU.r)SVr*gW)Xr      z_
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\']*),\(rg   rg   #pop:2[^-{}]+#push-\}[-{}][^\\']'\\escape[^\\"]+[abfnrtv"\'&\\]z\^[][z@^_]o[0-7]+x[\da-fA-F]+\d+	(\s+)(\\)rootrS   rU   rg   rQ   r^   r`   rt    N)+__name__
__module____qualname____firstlineno____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__static_attributes__r}       *lib/third_party/pygments/lexers/haskell.pyr   r      s   
 D
$C$GI!"IFH9E*
Z *
 27>>B	*

 W&&	2*
 G,,h7*
 G,,h7*
 4>>**
 (!33W5E5EF*
 %*
 cff_{*DMM:*
 svv
*D1*
 +-w||<*
  svv+W\\:!*
" w||,#*
$ gll+%*
& ,W\\:'*
* />+*
, <X]]K-*
. *7<<8/*
0 )(31*
4 EfllS5*
6()/77*
: .v||<;*
< <V\\J=*
> %fjj1?*
@ '

3A*
B 1&**=C*
D 6>>*E*
H 6;;,I*
J 68$K*
N gll#O*
P dll#Q*
R [)S*
Z Z 68$K(W%SVV^99CFFB[Pdnnj':tLfV SVV^??dnnj':{SU_a SVV^22dnnj+>
L /#
( Z SVV^22dnnj+>
LCFF]Z'@	
 Z CFF]W$gll3cff$|3T]]C17>>BW&&	2;((3K!9:K*
  **+W&&0W&&/w(()
 f-FMM8,&++v&	
  FMM8,&&!
  7(&--@XXe_fmmV4/fmmV4V]]F+8J>G
KnFr   r   c            	           \ rS rSrSrSrS/rS/r/ rSS\	" \
\\R                  5      4S\	" \
\\R                  5      4S	\	" \
\\R                  5      4\/0rS
rg)r      zM
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*)("[^"]*")r}   N)r~   r   r   r   r   r   r   r   r   r   r   r   r   Docr	   r   r   r}   r   r   r   r      st     DiGII 	"HT:vzz$JK((4VZZ*PQ'$
FJJ)OP	
Fr   r   c                   b   \ rS rSrSrSrSrSS/rS/rS/r	S	r
S
rSrSSR                  \5      -  \" \\R"                  5      4S\" \\R&                  5      4S\" \\R&                  5      4S\" \\R(                  5      S4S\" \\R,                  \\R0                  \5      4SSR                  \
5      -  \R"                  4S\" \R"                  \5      S4S\R2                  4S\4S\R0                  4S\R0                  4S\R8                  4S\R8                  4S\R:                  4S\R<                  4S\R@                  S4S \S!4S"\4S#\4/S$\4S%\" \RB                  \\"5      S&4S'\RB                  S(4/S$\4S)\R2                  4S*\R,                  4S+\R&                  4S,\R(                  S4S-\"4S.\4S/\"S04S1\"S24/	S3\R(                  4S,\R(                  S44S5\R(                  S(4S6\R(                  4/S7\R@                  4S8\RF                  S94S\R@                  S(4/S:\4S8\RF                  S94S \S(4/S;\RF                  S(4S<\RF                  S(4SR                  \5      \RF                  S(4S=\RF                  S(4S>\RF                  S(4S\RF                  S(4S?\" \\RF                  5      S(4/S@.r$SAr%gB)Cr      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constructorr0   proofr2   r3   staticr5   r6   withpatterntermsyntaxprefix	postulate
parametersrecorddsl
impossibleimplicittacticsintrosintrocomputerefineexacttrivialr7   )liblinkflagr   hidefreezeaccessr   loggingdynamicr   error_handlerslanguagez^(\s*)(%%(%s))rX   z((\s*)(--(?![!#$%&*+./<=>?@^|_~:\\]).*?)$z(\s*)(\|{3}.*?)$z
(\s*)(\{-)rQ   ^(\s*)([^\s(){}]+)(\s*)(:)(\s*)rW   (import|module)(\s+)rU   ('')?[A-Z][\w\']*z[a-z][\w\']*z(<-|::|->|=>|=)z"([(){}\[\]:!#$%&*+.\\/<=>?@^|~-]+)\d+[eE][+-]?\d+\d+\.\d+([eE][+-]?\d+)?0[xX][\da-fA-F]+ry   r]   r^   r_   r`   
[^\s(){}]+\s+?rN   ([A-Z][\w.]*)(\s+)(\()rg   [A-Z][\w.]*re   [A-Z]\w*(_[\w\']+|[a-z][\w\']*)z--.*$rP   rj   r\   rk   rl   rd   rm   rn   ro   rp   rq   z[^\\']rs   rt   ru   rv   \^[][A-Z@^_]rw   rx   rz   )r|   rU   rg   rQ   r^   r`   rt   r}   N)&r~   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   r      sA    D
'CG	I IWH9E
YJ *!55j'"2"2358(:w~~:^_ (:w~~"FGHZ1B1BCYO/j$--X]]JWY (!33W5E5EF$hw/?/?&LhW!7<<0d#/2HMMB.'6 &**-V^^$6;;,68$D!j!7
< Z &dnnj+>
LT^^V4	
 Z ',,''7w~~&W&&	2;((3K!9:K*
  **+W&&0W&&/w(()
 $FMM8,&++v&	
  FMM8,&&!
  7fmmV4XXe_fmmV4/fmmV4V]]F+8J>G
IMFr   r   c                      \ rS rSrSrSrSrS/rS/rS/r	Sr
S	\" \\R                  \\R                   \5      4S
\R$                  4S\R&                  S4S\R(                  S4SSR+                  \
5      -  \R.                  4S\" \R.                  \5      S4S\R0                  4S\4S\R                   4S\R4                  4S\R4                  4S\R6                  4S\R8                  4S\R<                  S4S\S4S\4S\4/S \R(                  4S\R(                  S!4S"\R(                  S#4S$\R(                  4/S\R&                  S4S%\S#4S&\4/\ RB                  S   \ RB                  S   \ RB                  S   \ RB                  S'   S(.r!S)r"g*)+r   i#  zl
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/   interleavedr0   macror   zno-eta-equalityopenoverlapr   r   	primitiver   quote	quoteTermr   renamingr   r   tacticunquoteunquoteDecl
unquoteDefr   variabler5   r   r   rO   rP   rQ   z\{!holerW   rX   r   rU   z\b(Set|Prop)[\u2080-\u2089]*\bz(\(|\)|\{|\})z((\.{1,3}|\||\u03BB|\u2200|\u2192|:|=|->)r   r   r   ry   r]   r^   r_   r`   r   r   z[^!{}]+ro   z!\}re   z[!{}]z[a-zA-Z][\w.\']*z	[\W0-9_]+rt   )r|   r   rU   rQ   r^   r`   rt   r}   N)#r~   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   r   #  s    D
:ChG
IIH 0j$--mmZ12 27>>BW&&	2W&&/ (!33W5E5EF$hw/?/?&L.=x(8(--H.'6 &**-V^^$6;;,68$D!j!9
@ **+W&&0W&&/w(()
 W&&	2 $/4 

  &&y1!((5%%h/%%h/]/Fr   r   c                      \ rS rSrSrSrSS/rS/rS/rSr	S	r
S
\4S\R                  4S\R                  S4S\R                   S4S\R                   S4S\R$                  4SSR'                  \	5      -  \R                   4S\R(                  4S\4S\R*                  4S\R(                  4S\R.                  4S\R*                  4S\4S\R2                  4S\R2                  4S\R4                  4S\R6                  4S \R8                  4S!\R<                  S"4S#\S$4S%\R*                  4S&\R>                  4S'\ 4/S
\4S#\S$4S(\ S)4S*\4S+\!" \RD                  \\\\5      S)4S,\!" \RD                  \\\\ 5      S-4S.\!" \RD                  \\ 5      S-4S/\RD                  S)4/S
\4S.\!" \RD                  \\ 5      S-4S0\RD                  S)4/S
\4S1\R*                  4S2\R(                  4S3\ 4S\4S4\ S54S(\ S64/S7\R                  4S\R                  S84S9\R                  S)4S:\R                  4/S;\R<                  S)4S<\RF                  S=4S!\R<                  S)4/S>\4S<\RF                  S=4S#\S)4/S?\RF                  S)4S@\RF                  S)4SR'                  \
5      \RF                  S)4SA\RF                  S)4SB\RF                  S)4S \RF                  S)4SC\!" \\RF                  5      S)4/SD.r$1 SEkr%SF r&SGr'gH)Ir   im  zg
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,   rS   inflg2maxminrU   r1   pragmapropertyr3   r4   r5   widthr7   rN   //.*$/\*rQ   rR   rS   rT   rU   rV   rW   rX   z^[_a-z][\w\']*z'?[_a-z][\w']*r   rY   rZ   r[   r\   r   r   z0[oO][0-7]+r   ry   r]   r^   r_   r`   ra   rb   rc   rd   re   rf   z(([A-Z][\w.]*)(\s+)(as)(\s+)([A-Z][\w.]*)z#([A-Z][\w.]*)(\s+)(hiding)(\s+)(\()rg   r   rh   r   r   r   rj   rk   rl   rm   [^/*]+ro   \*/[*/]rr   rs   rt   ru   rv   r   rw   rx   rz   r{   >   parregseqr   tailconsterrorsplittracer  ASSERTlengthreverse	transpose	undefined<<>><<<>>>c              #      #    S/n[         R                  " XU5       H;  u  p4nU[        L a&  XPR                  ;   a  U[        R                  U4v   M5  X4U4v   M=     g 7f)Nr|   )r   get_tokens_unprocessedr   EXTRA_KEYWORDSr   )selftextstackindextokenvalues         r   r,  #CryptolLexer.get_tokens_unprocessed  sY     11$eD  E%}*=*=!=T\\500E))	 Es   AA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   r   r   m  s   
 D% G	I!"I2H9E Z w~~&W&&	2 G,,h7G,,h74>>*(!33W5E5EF.%!7<<0.>;X]]K)7<<8((3.'6VZZ( &**-V^^$6;;,68$gll#dll#[)A!
H Z 68$K(W%8dnnj':tLfV 4dnnj':{SU_a 'dnnj+>
L /#
( Z &dnnj+>
LT^^V4	
 Z ',,''7 ;((3K!9:K*
 ))*W&&0W&&/g''(
 f-FMM8,&++v&	
  FMM8,&&!
  7fmmV4XXe_fmmV4/fmmV4V]]F+8J>G
wdFLN
*r   r   c                   H    \ rS rSrSr\R                  " S5      rS rS r	Sr
g)LiterateLexeri  au  
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                 >    Xl         [        R                  " U 40 UD6  g )N)	baselexerr   __init__)r.  r8  optionss      r   r9  LiterateLexer.__init__  s    "t'w'r   c           	   #     #    U R                   R                  S5      nUc(  UR                  5       SS S;   =(       a    S=(       d    SnSn/ nUS:X  a  [        R                  " U5       H  nUR                  5       nU R                  R                  U5      nU(       aR  UR                  [        U5      S[        R                  UR                  S5      4/45        X7R                  S5      -  nM  UR                  [        U5      S[        U4/45        M     GOSS	KJn  U" S0 U R                   D6n	Sn
Sn[        R                  " U5       H  nUR                  5       nU
(       a2  UR                  5       R                  S
5      (       a  Sn
X-  nMF  X6-  nML  UR                  5       R                  S5      (       a>  Sn
X-  nUR                  [        U5      [!        U	R#                  U5      5      45        SnM  X-  nM     UR                  [        U5      [!        U	R#                  U5      5      45        [%        X@R&                  R#                  U5      5       S h  vN   g  N7f)Nlitstyler      z%\latexbird    )TexLexerz
\end{code}z\begin{code}r}   )r:  getlstripr
   finditergroupbird_rematchappendlenr   Specialr   pygments.lexers.markuprC  
startswithlistr,  r   r8  )r.  r/  stylecode
insertionsrI  linemrC  lxlexer	codelinesr?  s               r   r,  $LiterateLexer.get_tokens_unprocessed	  s      ,=[[]1Q'50=gGE
F? ))$/{{}LL&&t,%%s4y)*GOOQWWQZ(H'I'K LGGAJ&D%%s4yAtT?2C&DE 0 8..GIE ))$/{{}{{}//>>$%	[[]--o>> !IME%%s4y'+G,J,J5,Q'R'T UEME 0  s4y#G$B$B5$IJL M ^^-R-RSW-XYYYs   II%I#I%)r8  N)r~   r   r   r   r   recompilerH  r9  r,  r   r}   r   r   r6  r6    s#    
 jj+,G(*Zr   r6  c                   6    \ rS rSrSrSr/ SQrS/rS/rS r	Sr
g	)
r   i6  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                 H    [        S0 UD6n[        R                  " X40 UD6  g Nr}   )r   r6  r9  r.  r:  hslexers      r   r9  LiterateHaskellLexer.__init__H  s"    ))t88r   r}   Nr~   r   r   r   r   r   r   r   r   r9  r   r}   r   r   r   r   6  s'     D5G	I*+I9r   r   c                   6    \ rS rSrSrSr/ SQrS/rS/rS r	Sr
g	)
r   iM  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                 H    [        S0 UD6n[        R                  " X40 UD6  g r^  )r   r6  r9  r_  s      r   r9  LiterateIdrisLexer.__init___  s"    'w't88r   r}   Nrb  r}   r   r   r   r   M  s'     D2G
I()I9r   r   c                   6    \ rS rSrSrSrSS/rS/rS/rS r	S	r
g
)r   id  a5  
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                 L    [        S0 UD6n[        R                  " X4SS0UD6  g )Nr=  r?  r}   )r   r6  r9  )r.  r:  	agdalexers      r   r9  LiterateAgdaLexer.__init__v  s'    ((	tLLGLr   r}   Nrb  r}   r   r   r   r   d  s-     D(GI'(IMr   r   c                   6    \ rS rSrSrSr/ SQrS/rS/rS r	Sr
g	)
r   i{  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                 H    [        S0 UD6n[        R                  " X40 UD6  g r^  )r   r6  r9  )r.  r:  crylexers      r   r9  LiterateCryptolLexer.__init__  s"    *'*t99r   r}   Nrb  r}   r   r   r   r   {  s'     D6G
I*+I:r   r   c                      \ rS rSrSrSrSrS/rSS/rS/r	/ S	Qr
/ S
Qr/ SQr/ SQrSrS\-   S-   rSr\R$                  r\R(                  r\R.                  r\" S5      S\-   \S4S\" \\\5      S4S\" \\\5      S4SSR;                  \5      -  S-   \" \\\5      S4S\" \\\\\R<                  5      4S\" \\\R<                  \\\\\\R<                  5	      4S\-   S-   \" \\\\\R>                  5      4S\-   S-   \" \\\\\\\R>                  5      4SSR;                  \5      -  \-   \R@                  4SSR;                  \
5      -  \-   \4SSR;                  \5      -  \-   \RB                  4S \-   \4S!\" \R<                  \5      4S"\" \R<                  \5      4S#\-   S-   \" \R<                  \5      4S$\RD                  4S%\#RH                  S&4\S'-   \%4S(\%4S)\&4S*\'RP                  4S+\'RR                  4S,\'RT                  4S-\#RV                  S.4S/\#RH                  S04/S1\4\" S5      /S2\&S34\" S5      /S4\S54\" S65      /S7\S34S4\S54S8\4S9\" \\\5      4\" S65      /\" S5      SSR;                  \5      -  \-   \4S:SR;                  \
5      -  \-   S;-   \S34S<\-   \4S=\4S$\RD                  4S!\" \R<                  \5      4S>\" \R<                  \5      4S?\4\," S35      /
S@\" \\-R\                  5      4SA\4SB\-R^                  SC4SD\-R`                  4/SE\-R^                  4SB\-R^                  SF4SG\-R^                  S34SH\-R^                  4/SI\#RH                  4SJ\#Rb                  4S/\#RH                  S34/SK\#RH                  4\" SL5      SM\#RH                  S34/SN\#RV                  4\" SL5      SO\#RV                  S34/SP\#Rb                  4SQ\#Rb                  4SR\#Rb                  4SS\#Rb                  4/ST.r2SUr3gV)Wr   i  z5
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   r4   cotyperectypealiasstructconfunfunctionvalvarexternalr,   r3   r*   elifreturnrI  r   r   r   rU   rS   asr   inlinerectryyieldenumr   r/   )r4   rv  rw  rx  ry  r  )r   existssomer   )forwhilerepeatforeachzforeach-indexedr  catchfinallycsjsfilerefassignedz[$%&*+@!/\\^~=.:\-?|<>]+z(?!)z	(?![\w/])
whitespacez::?r4   z(alias)(\s+)([a-z]\w*)?
alias-typez(struct)(\s+)([a-z]\w*)?struct-typez(%s)rX   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(?=\((?!,*\)))re   z[(\[<]type-nestedtype-contentz[)\]>]rj   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*)(#.*)$rN   r  rQ   r  r  ro   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  r4   r  r  r  rQ   r  r`   r  r  r}   N)4r~   r   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   r     sd    D
;ChG!IIH 
L
G *G #%I H I::L||
 L! iF3'':|)T((7J*U!233 !"*7J"M Ngz7JOQ+ gz4>>:wPZz4>>;<%'./1:;gz7JNP ")*,56gz7JUYUbUbce
 sxx--8',,Gsxx))H4g>sxx((83W^^D)+W5 +dnn&679*HT^^T,JK&09<dnnd+-dmm$ FMM;/ |#X.8k* 26<<@!6::.'6;;'6==(+u;
~ 7OFO
 V4FO
 	=1N#
 	6*	=19'dJ	24N#
 L! sxx--8'B388H--84?f ("I. %i0i(()*dnni02*dnni02 Y' FO/
8 x
GOODEZ W&&	2w~~&	
 ))*W&&0W&&/g''(	
 v}}%FMM"6==&)
 6==)%&v}}f-
 FKK(%&V,
 fmm,!6==1!6==1!6==1
cXFr   r   )%r   rX  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   r6  r   r   r   r   r   r}   r   r   <module>r     s    
' ' '- - - %0
B: BJ ,m m`G
 GTF*: F*R=ZE =Z@9= 9.9 9.M M.:= :.U
 Ur   