3

V'íc‚€ã
@s<dZddlZddlmZmZmZmZmZmZm	Z	m
Z
ddlmZm
Z
mZmZmZmZmZmZmZmZddlmZdddd	d
ddd
ddg
ZGdd„deƒZGdd„deƒZGdd„deƒZGdd	„d	eƒZGdd
„d
eƒZGdd„deƒZGdd„deƒZ Gdd„deƒZ!Gdd
„d
eƒZ"Gdd„deƒZ#Gdd„deƒZ$dS)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!@sLeZdZdZdZdZddgZdgZdgZd€Z	dZ
d5efd6ej
fd7ejd8fd9ejd:fd;ejd<fd=ejfd>d?je	ƒejfd@ejfdAejdBejfdCejdDefdEejdBejfdFejdBejfdGejfdHejfdIejfdJejfdKejfdLejfdMefdNejfdOejfdPejfdQejfdRejfdSej fdTej!fdUej"fdVejdWfdXedYfdZejfd[ej#fd\e$fg d5efdXedYfd]e$d^fd_efd`ejdaejdbe%ej&eeeeƒd^fd`ejdce%ej&eeee$ƒddfd`ejdee%ej&ee$ƒddfdfej&d^fgd5efd`ejdee%ej&ee$ƒddfdgejdhej&d^fgd5efdgejdiejfdjejdkejfd6ej
fd7ejd8fdle$fdMefdme$d‚fd]e$dnfg	doejfd7ejdpfdqejd^fdrejfgdsejd^fdtej'dufdVejd^fgdvefdtej'dufdXed^fgdwej'd^fdxejdyej'd^fd?je
ƒej'd^fdzej'd^fd{ej'd^fd|ej'd^fd}e%eej'ƒd^fgd~œZ(dS)ƒrzk
    A Haskell lexer based on the lexemes defined in the Haskell 98 Report.

    .. versionadded:: 0.8
    ZHaskellzhttps://www.haskell.org/ZhaskellZhsz*.hsztext/x-haskellÚcaseÚclassÚdatarÚderivingÚdoÚelseÚfamilyÚifÚinú
infix[lr]?ÚinstanceÚletÚnewtypeÚofÚthenÚtypeÚwhereÚ_ÚNULÚSOHú[SE]TXÚEOTÚENQÚACKÚBELÚBSÚHTÚLFÚVTÚFFÚCRúS[OI]ÚDLEúDC[1-4]ÚNAKÚSYNÚETBÚCANÚEMÚSUBÚESCú[FGRU]SÚSPÚDELz\s+z!--(?![!#$%&*+./<=>?@^|_~:\\]).*?$z\{-Úcommentz
\bimport\bÚimportz
\bmodule\bÚmodulez	\berror\bz\b(%s)(?!\')\bú|z'[^\\]'z^[_z][\w\']*z'?[_z][\w']*z('')?[z(')[z
(')\[[^\]]*\]z(')\([^)]*\)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)*)?z0[bB]_*[01](_*[01])*z0[oO]_*[0-7](_*[0-7])*z 0[xX]_*[\da-fA-F](_*[\da-fA-F])*z	\d(_*\d)*ú'Ú	characterú"Ústringz\[\]z\(\)z[][(),;`{}]z\)z#popzqualified\bz([z][\w.]*)(\s+)(as)(\s+)([z][\w.]*)z][\w.]*)(\s+)(hiding)(\s+)(\()Úfunclistz][\w.]*)(\s+)(\()z[\w.]+ú[z][\w.]*z]\w*z(_[\w\']+|[z	][\w\']*)ú,z\(z#pop:2z[^-{}]+z#pushz-\}z[-{}]z[^\\']'z\\Úescapez[^\\"]+z[abfnrtv"\'&\\]z\^[][z@^_]zo[0-7]+zx[\da-fA-F]+z\d+z	(\s+)(\\))ÚrootrLrMrSrKrPrRrVN)rr r!rr"r#r$r%r&r'r(r)r*r+r,r-r.r/r0)r1r2r3r4r5r6r7r8r9r:r;r<r=r>r?r@rArBrCrDrErFrGrHrIrJ)rSrS))Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚnameÚurlÚaliasesÚ	filenamesÚ	mimetypesÚreservedÚasciirrÚSingleÚ	Multiliner
ÚReservedrÚ	ExceptionÚjoinrÚCharÚuniZLlÚFunctionZLuÚTyperÚWordrÚFloatZBinÚOctÚHexÚIntegerÚBuiltinrrÚ	NamespaceÚEscapeÚtokens©ruruú;/tmp/pip-build-gk9425m9/Pygments/pygments/lexers/haskell.pyrs®
















c@s^eZdZdZdZdgZdgZgZddee	e
ejƒfdee	e
ejƒfdee	e
ejƒfe
giZd	S)
rzY
    A Haskell lexer with support for Hspec constructs.

    .. versionadded:: 2.4.0
    ZHspecZhspecz*Spec.hsrWz(it)(\s*)("[^"]*")z(describe)(\s*)("[^"]*")z(context)(\s*)("[^"]*")N)rXrYrZr[r\r^r_r`rr
rrZDocrrtrurururvrsc3@s4eZdZdZdZdZddgZdgZdgZd–Z	d—Z
d˜Zdadbjeƒe
eejƒfdce
eejƒfdde
eejƒfdee
eejƒdffdge
eejeejeƒfdhdbje	ƒejfdie
ejeƒdjfdkejfdlefdmejfdnejfdoejfdpejfdqejfdrejfdsejdtfduedvfdwefdxefgdyefdze
ej ee!ƒd{fd|ej d}fgdyefd~ejfdejfd€ejfdejdffd‚e!fdƒefd„e!d™fd…e!d†fg	d‡ejfdejdˆfd‰ejd}fdŠejfgd‹ejfdŒej"dfdsejd}fgdŽefdŒej"dfdued}fgdej"d}fdej"d}fdbje
ƒej"d}fd‘ej"d}fd’ej"d}fdrej"d}fd“e
eej"ƒd}fgd”œZ#d•S)šrzŒ
    A lexer for the dependently typed programming language Idris.

    Based on the Haskell and Agda Lexer.

    .. versionadded:: 2.0
    ZIdriszhttps://www.idris-lang.org/ZidrisZidrz*.idrztext/x-idrisrr r!rÚusingr#r$r&r'ú
infix[lr]?r)ÚrewriteÚautoÚ	namespaceÚcodataÚmutualÚprivateÚpublicÚabstractÚtotalÚpartialÚ	interfaceÚimplementationÚexportÚcoveringÚconstructorr*Úproofr,r-Ústaticr/r0ÚwithÚpatternÚtermÚsyntaxÚprefixÚ	postulateÚ
parametersÚrecordÚdslÚ
impossibleÚimplicitÚtacticsÚintrosÚintroÚcomputeÚrefineÚexactÚtrivialr1r2ú[SE]TXr4r5r6r7r8r9r:r;r<r=úS[OI]r?úDC[1-4]rArBrCrDrErFrGú[FGRU]SrIrJÚlibÚlinkÚflagrÚhideÚfreezeÚaccessÚloggingÚdynamicr\Úerror_handlersÚlanguagez^(\s*)(%%(%s))rNz((\s*)(--(?![!#$%&*+./<=>?@^|_~:\\]).*?)$z(\s*)(\|{3}.*?)$z
(\s*)(\{-)rKz^(\s*)([^\s(){}]+)(\s*)(:)(\s*)z\b(%s)(?!\')\bz(import|module)(\s+)rMz('')?[A-Z][\w\']*z[a-z][\w\']*z(<-|::|->|=>|=)z"([(){}\[\]:!#$%&*+.\\/<=>?@^|~-]+)z\d+[eE][+-]?\d+z\d+\.\d+([eE][+-]?\d+)?z0[xX][\da-fA-F]+z\d+rOrPrQrRz
[^\s(){}]+z\s+?z\s+z([A-Z][\w.]*)(\s+)(\()rSz[A-Z][\w.]*z#popz[A-Z]\w*z(_[\w\']+|[a-z][\w\']*)z--.*$z\{-rUz[:!#$%&*+.\\/<=>?@^|~-]+z\(z\)z#pop:2z[^-{}]+z#pushz-\}z[-{}]z[^\\']z\\rVz[^\\"]+z[abfnrtv"\'&\\]z\^[][A-Z@^_]zo[0-7]+zx[\da-fA-F]+z	(\s+)(\\))rWrMrSrKrPrRrVN)3rr r!rrwr#r$r&r'rxr)ryrzr{r|r}r~rr€rr‚rƒr„r…r†r‡r*rˆr,r-r‰r/r0rŠr‹rŒrrŽrrr‘r’r“r”r•r–r—r˜r™ršr›)r1r2rœr4r5r6r7r8r9r:r;r<r=rr?ržrArBrCrDrErFrGrŸrIrJ)
r r¡r¢rr£r¤r¥rr¦r§r\r¨r©)rSrS)$rXrYrZr[r\r]r^r_r`rarbZ
directivesrgrrr
rerrcrdrrjrrlrkr
rrmrorprrhrrrrsrtrurururvr³s













c)@s>eZdZdZdZdZdgZdgZdgZdQZ	d0e
eej
eejeƒfd1ejfd2ejd3fd4ejd5fd6d7je	ƒejfd8e
ejeƒd9fd:ejfd;efd<ejfd=ejfd>ejfd?ejfd@ejfdAejdBfdCedDfdEefdFefgdGejfd4ejdHfdIejdJfdKejfgd2ejd3fdLedJfdMefgej d3ej dBej dDej dNdOœZ dPS)Rrz|
    For the Agda dependently typed functional programming language and
    proof assistant.

    .. versionadded:: 2.0
    ZAgdaz.http://wiki.portal.chalmers.se/agda/pmwiki.phpZagdaz*.agdaztext/x-agdar€r|Úcoinductiver‡r!r#úeta-equalityÚfieldÚforallÚhidingr'Ú	inductiveÚinfixÚinfixlÚinfixrr)Úinterleavedr*Úmacror}úno-eta-equalityÚopenÚoverlapr‹rÚ	primitiver~ÚquoteÚ	quoteTermr‘ÚrenamingryrÚtacticÚunquoteÚunquoteDeclÚ
unquoteDefrwÚvariabler/rŠz^(\s*)([^\s(){}]+)(\s*)(:)(\s*)z!--(?![!#$%&*+./<=>?@^|_~:\\]).*?$z\{-rKz\{!Úholez\b(%s)(?!\')\brNz(import|module)(\s+)rMz\b(Set|Prop)[\u2080-\u2089]*\bz
(\(|\)|\{|\})z((\.{1,3}|\||\u03BB|\u2200|\u2192|:|=|->)z\d+[eE][+-]?\d+z\d+\.\d+([eE][+-]?\d+)?z0[xX][\da-fA-F]+z\d+rOrPrQrRz
[^\s(){}]+z\s+?z[^!{}]+z#pushz!\}z#popz[!{}]z[a-zA-Z][\w.\']*z	[\W0-9_]+rV)rWrÁrMrKrPrRrVN))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»ryrr¼r½r¾r¿rwrÀr/rŠ)!rXrYrZr[r\r]r^r_r`rarrrrjrrlrrcrdZ	Directivergr
rerkrrmrorprrhr
rrtrurururvr#sX








c@s¦eZdZdZdZddgZdgZdgZd†Zd‡Z	d9e
fd:ejfd;ej
d<fd=ejdfd>ejdfd?ejfd@dAjeƒejfdBejfdCefdDejfdEejfdFejfdGejfdHefdIejfdJejfdKejfdLejfdMejfdNejdOfdPedQfdRejfdSejfdTefgd9e
fdPedQfdUedVfdWefdXe ej!e
ee
eƒdVfdYe ej!e
ee
eƒdZfd[e ej!e
eƒdZfd\ej!dVfgd9e
fd[e ej!e
eƒdZfd]ej!dVfgd9e
fd^ejfd_ejfd`efdHefdaedˆfdUedbfgdcej
fd;ej
ddfdeej
dVfdfej
fgdgejdVfdhej"difdNejdVfgdjefdhej"difdPedVfgdkej"dVfdlej"dVfdAje	ƒej"dVfdmej"dVfdnej"dVfdMej"dVfdoe e
ej"ƒdVfgdpœZ#dqdrdsdtddudvdwdxdydzd{d|d}d~dd€dd‚hZ$dƒd„„Z%d…S)‰rzs
    FIXME: A Cryptol2 lexer based on the lexemes defined in the Haskell 98 Report.

    .. versionadded:: 2.0
    ZCryptolZcryptolZcryz*.cryztext/x-cryptolÚArithÚBitÚCmpÚFalseÚInfÚTruer$r…ÚexternÚfinr&rLÚinfÚlg2ÚmaxÚminrMr+ÚpragmaÚpropertyr-r.r/Úwidthr1r2ú[SE]TXr4r5r6r7r8r9r:r;r<r=úS[OI]r?úDC[1-4]rArBrCrDrErFrGú[FGRU]SrIrJz\s+z//.*$z/\*rKz
\bimport\bz
\bmodule\bz	\berror\bz\b(%s)(?!\')\brNz^[_a-z][\w\']*z'?[_a-z][\w']*z('')?[A-Z][\w\']*z\\(?![:!#$%&*+.\\/<=>?@^|~-]+)z+(<-|::|->|=>|=)(?![:!#$%&*+.\\/<=>?@^|~-]+)z:[:!#$%&*+.\\/<=>?@^|~-]*z[:!#$%&*+.\\/<=>?@^|~-]+z\d+[eE][+-]?\d+z\d+\.\d+([eE][+-]?\d+)?z0[oO][0-7]+z0[xX][\da-fA-F]+z\d+rOrPrQrRz\[\]z\(\)z[][(),;`{}]z\)z#popzqualified\bz(([A-Z][\w.]*)(\s+)(as)(\s+)([A-Z][\w.]*)z#([A-Z][\w.]*)(\s+)(hiding)(\s+)(\()rSz([A-Z][\w.]*)(\s+)(\()z[\w.]+z[A-Z][\w.]*z[A-Z]\w*z(_[\w\']+|[a-z][\w\']*)rUz\(z#pop:2z[^/*]+z#pushz\*/z[*/]z[^\\']'z\\rVz[^\\"]+z[abfnrtv"\'&\\]z\^[][A-Z@^_]zo[0-7]+zx[\da-fA-F]+z	(\s+)(\\))rWrLrMrSrKrPrRrVrgÚsplitÚreverseZ	transposeÚlengthÚtailz<<z>>z<<<z>>>ÚconstÚregÚparÚseqÚASSERTZ	undefinedÚerrorÚtraceccsVdg}xJtj|||ƒD]8\}}}|tkrB||jkrB|tj|fVq|||fVqWdS)NrW)rÚget_tokens_unprocessedrÚEXTRA_KEYWORDSrq)ÚselfÚtextÚstackÚindexÚtokenÚvaluerururvràìsz#CryptolLexer.get_tokens_unprocessedN)rÂrÃrÄrÅrÆrÇr$r…rÈrÉr&rLrÊrËrÌrÍrMr+rÎrÏr-r.r/rÐ)r1r2rÑr4r5r6r7r8r9r:r;r<r=rÒr?rÓrArBrCrDrErFrGrÔrIrJ)rSrS)&rXrYrZr[r\r^r_r`rarbrrrcrdr
rerrfrgrjrkrrlrrmrnrorprrhrqrrrrrsrtráràrurururvrms¢

















c@s*eZdZdZejdƒZdd„Zdd„ZdS)Ú
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)cKs||_tj|f|ŽdS)N)Ú	baselexerrÚ__init__)râréÚoptionsrururvrêszLiterateLexer.__init__ccs¢|jjdƒ}|dkr0|jƒdd…dkr,dp.d}d}g}|dkrºxvtj|ƒD]h}|jƒ}|jj|ƒ}|rš|jt	|ƒdt
j|jdƒfgfƒ||jdƒ7}qL|jt	|ƒdt|fgfƒqLWnÌdd	l
m}|f|jŽ}	d}
d}xŽtj|ƒD]€}|jƒ}|
r |jƒjd
ƒrd}
||7}n||7}qæ|jƒjdƒr^d}
||7}|jt	|ƒt|	j|ƒƒfƒd}qæ||7}qæW|jt	|ƒt|	j|ƒƒfƒt||jj|ƒƒEdHdS)NÚlitstyleréz%\ÚlatexZbirdÚé)ÚTexLexerz
\end{code}z\begin{code})rëÚgetÚlstripr	ÚfinditerÚgroupÚbird_reÚmatchÚappendÚlenrÚSpecialr
Zpygments.lexers.markuprñÚ
startswithÚlistràrré)rârãÚstyleÚcodeZ
insertionsr÷ÚlineÚmrñZlxlexerZ	codelinesrîrururvrà	sF
 



z$LiterateLexer.get_tokens_unprocessedN)	rXrYrZr[ÚreÚcompilerörêràrurururvrèös
rèc@s2eZdZdZdZdddgZdgZdgZdd	„Zd
S)ran
    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
    zLiterate Haskellzliterate-haskellZlhaskellÚlhsz*.lhsztext/x-literate-haskellcKstf|Ž}tj||f|ŽdS)N)rrèrê)rârëÚhslexerrururvrêHs
zLiterateHaskellLexer.__init__N)	rXrYrZr[r\r^r_r`rêrurururvr6s
c@s2eZdZdZdZdddgZdgZdgZdd	„Zd
S)ral
    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
    zLiterate Idriszliterate-idrisZlidrisZlidrz*.lidrztext/x-literate-idriscKstf|Ž}tj||f|ŽdS)N)rrèrê)rârërrururvrê_s
zLiterateIdrisLexer.__init__N)	rXrYrZr[r\r^r_r`rêrurururvrMs
c@s0eZdZdZdZddgZdgZdgZdd„Zd	S)
raU
    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-agdaZlagdaz*.lagdaztext/x-literate-agdacKs&tf|Ž}tj||fddi|—ŽdS)Nrìrî)rrèrê)rârëZ	agdalexerrururvrêvs
zLiterateAgdaLexer.__init__N)	rXrYrZr[r\r^r_r`rêrurururvrdsc@s2eZdZdZdZdddgZdgZdgZdd	„Zd
S)ran
    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
    zLiterate Cryptolzliterate-cryptolZlcryptolZlcryz*.lcryztext/x-literate-cryptolcKstf|Ž}tj||f|ŽdS)N)rrèrê)rârëZcrylexerrururvrês
zLiterateCryptolLexer.__init__N)	rXrYrZr[r\r^r_r`rêrurururvr{s
c"@súeZdZdZdZdZdgZddgZdgZdd	d
ddd
dddddddddddddddddddd d!d"d#d$d%d&d'd(g"Z	ddd
ddd&gZ
d)d*d+d,gZd-d.d/d0d1d2d3d4d5d6d7d8d9g
Zd:Z
d;e
d<Zd=ZejZejZejZed>ƒd?eedfd@eeeeƒdAfdBeeeeƒdCfdDdEje
ƒdFeeeeƒdfdGeeeeeejƒfdHeeeejeeeeeejƒ	fdIe
dJeeeeeejƒfdKe
dJeeeeeeeejƒfdDdEjeƒeejfdDdEje	ƒeefdDdEjeƒeej fdLeefdMeejeƒfdNeejeƒfdOe
dJeejeƒfdPej!fdQe"j#dRfe
dSe$fdTe$fdUe%fdVe&j'fdWe&j(fdXe&j)fdYe"j*dZfd[e"j#d\fgd]efedƒgd^e%d_fedƒgd`edafedbƒgdced_fd`edafddefdeeeeeƒfedbƒged>ƒdDdEjeƒeefdfdEje	ƒedged_fdheefdiefdPej!fdMeejeƒfdjeejeƒfdkefe+d_ƒg
dleee,j-ƒfdmefdne,j.dofdpe,j/fgdqe,j.fdne,j.drfdse,j.d_fdte,j.fgdue"j#fdve"j0fd[e"j#d_fgdwe"j#fedxƒdye"j#d_fgdze"j*fedxƒd{e"j*d_fgd|e"j0fd}e"j0fd~e"j0fde"j0fgd€œZ1dS)‚rzA
    Lexer for the Koka language.

    .. versionadded:: 1.6
    ZKokaz/https://koka-lang.github.io/koka/doc/index.htmlZkokaz*.kkz*.kkiztext/x-kokar°r²r±r.ZcotypeZrectypeÚaliasÚstructÚconZfunÚfunctionÚvalÚvarZexternalr&r-r$ÚelifÚreturnr÷r~rrMrLÚasrÚinlineZrecÚtryÚyieldÚenumrƒr)r­ÚexistsZsomerŠÚforÚwhileÚrepeatZforeachzforeach-indexedrÞZcatchÚfinallyÚcsZjsÚfileÚrefÚassignedz[$%&*+@!/\\^~=.:\-?|<>]+z(?!ú)z	(?![\w/])Ú
whitespacez::?z(alias)(\s+)([a-z]\w*)?z
alias-typez(struct)(\s+)([a-z]\w*)?zstruct-typez(%s)rNz(\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]+)?z0[xX][0-9a-fA-F]+z[0-9]+rOÚcharrQrRú=z(?=\((?!,*\)))z#popz[(\[<]ztype-nestedztype-contentz[)\]>]rUz([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*)(#.*)$z\s+z/\*rKz//.*$z[^/*]+z#pushz\*/z[*/]z[^"]+z""z	[^\\"\n]+zescape-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})rWz
alias-typezstruct-typer.ztype-nestedztype-contentrrKrrRrzescape-sequenceN)2rXrYrZr[r\r]r^r_r`ÚkeywordsZtypeStartKeywordsZtypekeywordsÚbuiltinÚsymbolsZ	sboundaryÚboundaryrÚ	AttributeÚ	tokenTypeZClassZtokenTypeDefrZEmphZtokenConstructorrrr
rrgrrrjrkZPseudoÚVariablerÚDoublerrrrmrorprhrrZPreprocrdrcrsrtrurururvr’sâ












)%r[rZpygments.lexerrrrrrrrr	Zpygments.tokenr
rrr
rrrrrrZpygmentsrriÚ__all__rrrrrrèrrrrrrurururvÚ<module>	s((0
pJ
@