§
    £E±c t  ã                   óz  — 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mZ ddlmZ ddl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&dS )zË
    pygments.lexers.dotnet
    ~~~~~~~~~~~~~~~~~~~~~~

    Lexers for .net languages.

    :copyright: Copyright 2006-2022 by the Pygments team, see AUTHORS.
    :license: BSD, see LICENSE for details.
é    N)Ú
RegexLexerÚDelegatingLexerÚbygroupsÚincludeÚusingÚthisÚdefaultÚwords)ÚPunctuationÚTextÚCommentÚOperatorÚKeywordÚNameÚStringÚNumberÚLiteralÚOtherÚ
Whitespace)Úget_choice_opt)Ú	unistring)ÚXmlLexer)ÚCSharpLexerÚNemerleLexerÚBooLexerÚ
VbNetLexerÚCSharpAspxLexerÚVbNetAspxLexerÚFSharpLexerc                   ó²  — e Zd ZdZdZdZg d¢ZdgZdgZe	j
        e	j        z  Zdd ej        d	d
ddd¦  «        z   dz   dz    ej        d	d
dddddddd¦
  «
        z   dz   d ej        d	d
dddd¦  «        z   dz   dz    ej        d	d
ddddddddd¦  «        z   dz   dœZi ZdZe                     ¦   «         D �]\  ZZdez   dz   ez   dz    ee ee¦  «        ej        ee¦  «        fd eeej        ¦  «        fd efd! eee¦  «        fd"ej         fd#ej!        fd$ef e"d%¦  «        e#fd&e#fd'efd(efd)e$fd*e$fd+e$j%        fd,e&fd- eej'        eej'        ej'        e¦  «        fd. ee(ee(¦  «        fd/e(fd0 ee(e¦  «        fd1e(j)        fd2 ee(e¦  «        d3fd4 ee(e¦  «        d5feefgeej*        d6f e+d6¦  «        gd7ed6fd8ez   d9z   ej,        d6fgd:œee<   �Œ d;„ Z-d<S )=r   a²  
    For C# source code.

    Additional options accepted:

    `unicodelevel`
      Determines which Unicode characters this lexer allows for identifiers.
      The possible values are:

      * ``none`` -- only the ASCII letters and numbers are allowed. This
        is the fastest selection.
      * ``basic`` -- all Unicode characters from the specification except
        category ``Lo`` are allowed.
      * ``full`` -- all Unicode characters as specified in the C# specs
        are allowed.  Note that this means a considerable slowdown since the
        ``Lo`` category has more than 40,000 characters in it!

      The default value is ``basic``.

      .. versionadded:: 0.8
    zC#z/https://docs.microsoft.com/en-us/dotnet/csharp/)Úcsharpzc#Úcsz*.csztext/x-csharpú@?[_a-zA-Z]\w*ú@?[_ÚLuÚLlÚLtÚLmÚNlú]ú[ÚNdÚPcÚCfÚMnÚMcú]*ú	@?(?:_|[^ÚLoú])ú[^©ÚnoneÚbasicÚfullTú^([ \t]*)((?:ú(?:\[\])?\s+)+?)(ú
)(\s*)(\()ú^(\s*)(\[.*?\])ú[^\S\n]+ú(\\)(\n)ú//.*?\nú/[*].*?[*]/ú\n)(z>>>=z>>=z<<=z<=z>=z+=z-=z*=z/=z%=z&=z|=z^=z??=z=>z??z?.ú!=z==ú&&z||z>>>z>>z<<z++z--ú+ú-Ú*ú/ú%ú&ú|ú^ú<ú>ú?ú!ú~ú=ú=~|!=|==|<<|>>|[-+/*%=<>&^|]z[()\[\];:,.]ú[{}]ú@"(""|[^"])*"z!\$?"(\\\\|\\[^\\]|[^"\\\n])*["\n]ú'\\.'|'[^\\]'zB[0-9]+(\.[0-9]*)?([eE][+-][0-9]+)?[flFLdD]?|0[xX][0-9a-fA-F]+[Ll]?zb(#)([ \t]*)(if|endif|else|elif|define|undef|line|error|warning|region|endregion|pragma)\b(.*?)(\n)ú\b(extern)(\s+)(alias)\ba  (abstract|as|async|await|base|break|by|case|catch|checked|const|continue|default|delegate|do|else|enum|event|explicit|extern|false|finally|fixed|for|foreach|goto|if|implicit|in|interface|internal|is|let|lock|new|null|on|operator|out|override|params|private|protected|public|readonly|ref|return|sealed|sizeof|stackalloc|static|switch|this|throw|true|try|typeof|unchecked|unsafe|virtual|void|while|get|set|new|partial|yield|add|remove|value|alias|ascending|descending|from|group|into|orderby|select|thenby|where|join|equals)\bú(global)(::)zk(bool|byte|char|decimal|double|dynamic|float|int|long|object|sbyte|short|string|uint|ulong|ushort|var)\b\??z(class|struct)(\s+)Úclassú(namespace|using)(\s+)Ú	namespaceú#popú(?=\()ú(ú|\.)+)ÚrootrY   r[   c                 óè   — t          |dt          | j        ¦  «        d¦  «        }|| j        vr | j                             |¦  «        | _        n| j        |         | _        t          j        | fi |¤Ž d S ©NÚunicodelevelr8   ©	r   ÚlistÚtokensÚ_all_tokensÚ	__class__Úprocess_tokendefÚ_tokensr   Ú__init__©ÚselfÚoptionsÚlevels      ú8/usr/lib/python3/dist-packages/pygments/lexers/dotnet.pyrk   zCSharpLexer.__init__‰   st   € Ý˜w¨½¸T¼[Ñ8IÔ8IÈ7ÑSÔSˆØ˜Ô(Ð(Ð(àœ>×:Ò:¸5ÑAÔAˆDŒLˆLàÔ+¨EÔ2ˆDŒLåÔ˜DÐ,Ð, GÐ,Ð,Ð,Ð,Ð,ó    N).Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚnameÚurlÚaliasesÚ	filenamesÚ	mimetypesÚreÚ	MULTILINEÚDOTALLÚflagsÚuniÚcombineÚ	allexceptÚlevelsrf   Útoken_variantsÚitemsÚ	levelnameÚcs_identr   r   r   r   r   ÚFunctionr   Ú	Attributer   r   ÚSingleÚ	Multiliner
   r   r   ÚCharr   ÚPreprocr   ÚTypeÚClassr	   Ú	Namespacerk   © rq   rp   r   r      s~  € € € € € ðð ð, €DØ
;€CØ$Ð$Ð$€GØ�€IØ Ð!€IàŒL˜2œ9Ñ$€Eð "Ø˜;˜3œ; t¨T°4¸¸tÑDÔDÑDÀsÑJØñØ#˜œ D¨$°°d¸DÀ$ÈØ$(¨$°ñ6ô 6ñ6à8<ñ=ð Ø�”˜t T¨4°°t¸TÑBÔBñCØEIñJàñà%˜œ d¨D°$¸¸dÀDØ&*¨D°$¸¸dñDô DñDð GKñKð	ð 	€Fð €FØ€Nà%Ÿ|š|™~œ~ð >
ñ >
Ñˆ	�8ð " HÑ,ð 0ñ Ø ñ!ð$ñð �˜* e e¨D¡k¤k°4´=À*Ø%ñ'ô 'ð(ð
 $ X X¨j¸$¼.Ñ%IÔ%IÐJØ˜jÐ)Ø˜h˜h t¨ZÑ8Ô8Ð9Ø˜Wœ^Ð,Ø Ô!2Ð3Ø˜
Ð#Ø�ð ñ ô ð
 ðð 1°(Ð;Ø  +Ð.Ø˜+Ð&Ø! 6Ð*Ø5°vÐ>Ø! 6¤;Ð/ð5Ø6<ð>ðKà�˜'œ/¨:°w´Ø!œ/¨:ñ7ô 7ð8ð -¨h¨h°wÀ
Øñ/ô /ð ð#ð %,ð-ð ! ( (¨7°KÑ"@Ô"@ÐAðCØDKÄLðRà'¨¨°'¸:Ñ)FÔ)FÈÐPØ*¨H¨H°W¸jÑ,IÔ,IÈ;ÐWØ˜4Ð ðe3ðj ˜4œ: vÐ.Ø�˜‘”ðð
 ˜D &Ð)Ø�x‘ (Ñ*¨D¬N¸FÐCððs=
ð =
ˆˆyÑÑð~-ð -ð -ð -ð -rq   r   c            "       ó*  — e Zd ZdZdZdZdgZdgZdgZe	j
        e	j        z  Zdd ej        d	d
ddd¦  «        z   dz   dz    ej        d	d
dddddddd¦
  «
        z   dz   d ej        d	d
dddd¦  «        z   dz   dz    ej        d	d
ddddddddd¦  «        z   dz   dœZi ZdZe                     ¦   «         D �]Ø\  ZZdez   dz   ez   dz    ee ee¦  «        ej        ee¦  «        fd eeej        ¦  «        fd efd! eee¦  «        fd"ej         fd#ej!        fd$efd% ee"ee"¦  «        d&fd' ee"ee"¦  «        d(fd)e"d*fd+ez   d,z    ee#ee#¦  «        fd-e#fd.ez   efd/ eee¦  «        d0fd1efd2efd3e"fd4e"fd5e"j$        fd6e%fd7e%fd8 eej&        eej&        ¦  «        d9fd: ee#ee#¦  «        fd;e#fd< ee#e¦  «        fd=e#j'        fd>ez   d?z    eeee#j'        ¦  «        fd@ ee#e¦  «        dAfdB ee#e¦  «        dCfeefgeej(        dDfgdEej&        fdFefd$edDfgdGedDfdHez   dIz   ej)        dDfgdJe"fd.ez   efd/ eee¦  «        d0fdKe"fdLe"dDfgdMe"fd.ez   efd/ eee¦  «        d0fd)e"dNfdOe"dDfgdPe"fd)e"dNfdOe"dDfgdQe#fdRefeefdSe%fdTedNfdUedDfgdVœee<   �ŒÚdW„ Z*dX„ Z+dYS )Zr   aµ  
    For Nemerle source code.

    Additional options accepted:

    `unicodelevel`
      Determines which Unicode characters this lexer allows for identifiers.
      The possible values are:

      * ``none`` -- only the ASCII letters and numbers are allowed. This
        is the fastest selection.
      * ``basic`` -- all Unicode characters from the specification except
        category ``Lo`` are allowed.
      * ``full`` -- all Unicode characters as specified in the C# specs
        are allowed.  Note that this means a considerable slowdown since the
        ``Lo`` category has more than 40,000 characters in it!

      The default value is ``basic``.

    .. versionadded:: 1.5
    ÚNemerlezhttp://nemerle.orgÚnemerlez*.nztext/x-nemerler#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   Tr:   r;   r<   r=   r>   r?   r@   rA   rB   z(\$)(\s*)(")úsplice-stringz(\$)(\s*)(<#)úsplice-string2z<#úrecursive-stringz(<\[)(\s*)(z:)?z\]\>z\$z(\$)(\()úsplice-string-contentz[~!%^&*()+=|\[\]:;,.<>/?-]rT   rU   z"(\\\\|\\[^\\]|[^"\\\n])*["\n]rV   z0[xX][0-9a-fA-F]+[Ll]?z*[0-9](\.[0-9]*)?([eE][+-][0-9]+)?[flFLdD]?zY(#)([ \t]*)(if|endif|else|elif|define|undef|line|error|warning|region|endregion|pragma)\bÚpreprocrW   aã  (abstract|and|as|base|catch|def|delegate|enum|event|extern|false|finally|fun|implements|interface|internal|is|macro|match|matches|module|mutable|new|null|out|override|params|partial|private|protected|public|ref|sealed|static|syntax|this|throw|true|try|type|typeof|virtual|volatile|when|where|with|assert|assert2|async|break|checked|continue|do|else|ensures|for|foreach|if|late|lock|new|nolate|otherwise|regexp|repeat|requires|return|surroundwith|unchecked|unless|using|while|yield)\brX   zo(bool|byte|char|decimal|double|float|int|long|object|sbyte|short|string|uint|ulong|ushort|void|array|list)\b\??z(:>?)(\s*)(z\??)z"(class|struct|variant|module)(\s+)rY   rZ   r[   r\   z\w+z[ \t]+r]   r^   r_   z[^"$]z\\"ú"z[^#<>$]ú#pushz#>z[^#<>]zif|matchz[~!%^&*+=|\[\]:;,.<>/?-\\"$ ]ú\d+ú\(ú\))r`   rY   r˜   r[   r”   r•   r–   r—   c                 óè   — t          |dt          | j        ¦  «        d¦  «        }|| j        vr | j                             |¦  «        | _        n| j        |         | _        t          j        | fi |¤Ž d S rb   rd   rl   s      rp   rk   zNemerleLexer.__init__0  sy   € Ý˜w¨½¸T¼[Ñ8IÔ8IØ&ñ(ô (ˆà˜Ô(Ð(Ð(àœ>×:Ò:¸5ÑAÔAˆDŒLˆLàÔ+¨EÔ2ˆDŒLåÔ˜DÐ,Ð, GÐ,Ð,Ð,Ð,Ð,rq   c                 ó   — d}d| v r|dz  }|S )zUNemerle is quite similar to Python, but @if is relatively uncommon
        elsewhere.r   z@ifgš™™™™™¹?r�   ©ÚtextÚresults     rp   Úanalyse_textzNemerleLexer.analyse_text;  s    € ð ˆà�Dˆ=ˆ=Ø�c‰MˆFàˆrq   N),rr   rs   rt   ru   rv   rw   rx   ry   rz   r{   r|   r}   r~   r   r€   r�   r‚   rf   rƒ   r„   r…   r†   r   r   r   r   r   r‡   r   rˆ   r   r   r‰   rŠ   r   r   r‹   r   rŒ   r�   rŽ   r�   rk   r£   r�   rq   rp   r   r   ”   s$  € € € € € ðð ð, €DØ
€CØˆk€GØ�€IØ!Ð"€IàŒL˜2œ9Ñ$€Eð "Ø˜;˜3œ; t¨T°4¸¸tÑDÔDÑDÀsÑJØñØ#˜œ D¨$°°d¸DÀ$ÈØ$(¨$°ñ6ô 6ñ6à8<ñ=ð Ø�”˜t T¨4°°t¸TÑBÔBñCØEIñJàñà%˜œ d¨D°$¸¸dÀDØ&*¨D°$¸¸dñDô DñDð GKñKð	ð 	€Fð €FØ€Nà%Ÿ|š|™~œ~ð j
ñ j
Ñˆ	�8ð " HÑ,ð 0ñ Ø ñ!ð$ñð �˜* e e¨D¡k¤k°4´=À*Ø%ñ'ô 'ð(ð
 $ X X¨j¸$¼.Ñ%IÔ%IÐJØ˜jÐ)Ø˜h˜h t¨ZÑ8Ô8Ð9Ø˜Wœ^Ð,Ø Ô!2Ð3Ø˜
Ð#Ø  ( (¨6°:¸vÑ"FÔ"FØ#ð%à! 8 8¨F°JÀÑ#GÔ#GØ$ð&à˜Ð 2Ð3à (Ñ*¨UÑ2Ø�˜' :¨wÑ7Ô7ð9à˜'Ð"ð ˜Ñ! 4Ð(Ø˜h˜h t¨[Ñ9Ô9Ø(ð*ð /°Ð<Ø˜+Ð&Ø! 6Ð*Ø2°FÐ;Ø! 6¤;Ð/Ø*¨FÐ3Ø>ÀÐGðBà�˜'œ/¨:°w´ÑGÔGÈðTð -¨h¨h°wÀ
ÈGÑ.TÔ.TÐUð:ð <CðDð ! ( (¨7°KÑ"@Ô"@ÐAðIà”ðð   (Ñ*¨WÑ4Ø�˜+ z°7´<Ñ@Ô@ðBà6Ø�˜' :Ñ.Ô.°ð9à*¨H¨H°W¸jÑ,IÔ,IØðà˜4Ð ð{>ð@ ˜4œ: vÐ.ðð ˜œÐ)Ø˜JÐ'Ø˜
 FÐ+ðð ˜D &Ð)Ø�x‘ (Ñ*¨D¬N¸FÐCðð
 ˜FÐ#Ø˜Ñ! 4Ð(Ø˜h˜h t¨[Ñ9Ô9Ø(ð*à˜&Ð!Ø˜ Ð'ðð ˜fÐ%Ø˜Ñ! 4Ð(Ø˜h˜h t¨[Ñ9Ô9Ø(ð*à˜ Ð)Ø˜ Ð(ðð ˜VÐ$Ø˜ Ð)Ø˜ Ð(ð!ð ˜gÐ&Ø1°;Ð?Ø˜4Ð Ø˜Ð Ø˜ WÐ-Ø˜ VÐ,ð&ðCi
ð i
ˆˆyÑÑðV	-ð 	-ð 	-ðð ð ð ð rq   r   c                   ó@  — e Zd ZdZdZdZdgZdgZdgZde	fde
j        fd	e
j        d
fdefd eee	¦  «        fdefdej        fdej        fdej        fdefdefdefd eee	¦  «        dfd eee	¦  «        dfd eee	¦  «        d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fd!ej        fd"ej        fd#ej        j        fd$ej        fgd	e
j        d%fd&e
j        d'fd(e
j        fd)e
j        fgdej        d'fgdej        d'fgd*ej         d'fgd+œZ!d,S )-r   z
    For Boo source code.
    ÚBoozhttps://github.com/boo-lang/booÚbooz*.booz
text/x-booú\s+z	(#|//).*$z/[*]Úcommentz[]{}:(),.;[]r?   z\\z(in|is|and|or|not)\bz/(\\\\|\\[^\\]|[^/\\\s])/z@/(\\\\|\\[^\\]|[^/\\])*/rS   aO  (as|abstract|callable|constructor|destructor|do|import|enum|event|final|get|interface|internal|of|override|partial|private|protected|public|return|set|static|struct|transient|virtual|yield|super|and|break|cast|continue|elif|else|ensure|except|for|given|goto|if|in|is|isa|not|or|otherwise|pass|raise|ref|try|unless|when|while|from|as)\bzdef(?=\s+\(.*?\))z
(def)(\s+)Úfuncnamez(class)(\s+)Ú	classnamez(namespace)(\s+)r[   zã(?<!\.)(true|false|null|self|__eval__|__switch__|array|assert|checked|enumerate|filter|getter|len|lock|map|matrix|max|min|normalArrayIndexing|print|property|range|rawArrayIndexing|required|typeof|unchecked|using|yieldAll|zip)\bz"""(\\\\|\\"|.*?)"""z"(\\\\|\\[^\\]|[^"\\])*"z'(\\\\|\\[^\\]|[^'\\])*'z[a-zA-Z_]\w*z%(\d+\.\d*|\d*\.\d+)([fF][+-]?[0-9]+)?z[0-9][0-9.]*(ms?|d|h|s)z0\d+z0x[a-fA-F0-9]+z\d+Lr›   rš   z[*]/r\   z[^/*]z[*/]z[a-zA-Z_][\w.]*)r`   r¨   r©   rª   r[   N)"rr   rs   rt   ru   rv   rw   rx   ry   rz   r   r   r‰   rŠ   r   r   r   r   ÚWordr   ÚRegexr   r   ÚBuiltinÚDoubler   ÚFloatÚOctÚHexÚIntegerÚLongr‡   rŽ   r�   rf   r�   rq   rp   r   r   F  sø  € € € € € ðð ð €DØ
+€CØˆg€GØ�	€IØ�€Ið �ZÐ Ø˜7œ>Ð*Ø�gÔ'¨Ð3Ø˜kÐ*Ø˜(˜( 4¨Ñ4Ô4Ð5Ø�DˆMØ$ h¤mÐ4Ø)¨6¬<Ð8Ø)¨6¬<Ð8Ø,¨hÐ7ð!ð #*ð+ð " 7Ð+Ø˜H˜H W¨jÑ9Ô9¸:ÐFØ˜h˜h w°
Ñ;Ô;¸[ÐIØ  ( (¨7°JÑ"?Ô"?ÀÐMð ð "&¤ð	/ð
 % f¤mÐ4Ø(¨&¬-Ð8Ø(¨&¬-Ð8Ø˜dÐ#Ø5°v´|ÐDØ'¨Ð0Ø�f”jÐ!Ø ¤
Ð+Ø�f”nÔ)Ð*Ø�V”^Ð$ðI%
ðN �WÔ&¨Ð0Ø�WÔ&¨Ð/Ø�gÔ'Ð(Ø�WÔ&Ð'ð	
ð ˜dœm¨VÐ4ð
ð ˜dœj¨&Ð1ð
ð   ¤°Ð8ð
ðg6ð 6€F€F€Frq   r   c                   óX  — e Zd ZdZdZdZg d¢ZddgZddgZd	 e	j
        d
ddd¦  «        z   dz   dz    e	j
        d
dddddddd¦	  «	        z   dz   Zej        ej        z  Zdej        fdefdefd eee¦  «        fd eee¦  «        fdej        fdefd eej        eej        eej        ¦  «        f eddd ¬!¦  «        efd"ed#fd$ed%fd& eee¦  «        d'fd( eee¦  «        d)fd* eee¦  «        d+fd,ej        fd-ej        fd.efd/ed0fd1 eee¦  «        fed2z   efd3ej         fd4e!j"        fd5e!j#        fd6e!j#        fd7e!j#        fgd8efd9ed:fd;efgeej$        d:f e%d:¦  «        geej&        d:fgeej'        d:fgeej(        fd<ej(        f e%d:¦  «        gdefd=ed:f e%d:¦  «        gd>œZ)d?„ Z*d@S )Ar   zo
    For Visual Basic.NET source code.
    Also LibreOffice Basic, OpenOffice Basic, and StarOffice Basic.
    zVB.netz5https://docs.microsoft.com/en-us/dotnet/visual-basic/)zvb.netÚvbnetÚlobasÚoobasÚsobasz*.vbz*.basztext/x-vbnetz
text/x-vbaz[_r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   z	^\s*<.*?>r§   rB   z(rem\b.*?)(\n)z
('.*?)(\n)z�#If\s.*?\sThen|#ElseIf\s.*?\sThen|#Else|#End\s+If|#Const|#ExternalSource.*?\n|#End\s+ExternalSource|#Region.*?\n|#End\s+Region|#ExternalChecksumz[(){}!#,.:]z?(Option)(\s+)(Strict|Explicit|Compare)(\s+)(On|Off|Binary|Text))lÚ
AddHandlerÚAliasÚByRefÚByValÚCallÚCaseÚCatchÚCBoolÚCByteÚCCharÚCDateÚCDecÚCDblÚCIntÚCLngÚCObjÚContinueÚCSByteÚCShortÚCSngÚCStrÚCTypeÚCUIntÚCULngÚCUShortÚDeclareÚDefaultÚDelegateÚ
DirectCastÚDoÚEachÚElseÚElseIfÚEndIfÚEraseÚErrorÚEventÚExitÚFalseÚFinallyÚForÚFriendÚGetÚGlobalÚGoSubÚGoToÚHandlesÚIfÚ
ImplementsÚInheritsÚ	InterfaceÚLetÚLibÚLoopÚMeÚMustInheritÚMustOverrideÚMyBaseÚMyClassÚ	NarrowingÚNewÚNextÚNotÚNothingÚNotInheritableÚNotOverridableÚOfÚOnr   ÚOptionÚOptionalÚ	OverloadsÚOverridableÚ	OverridesÚ
ParamArrayÚPartialÚPrivateÚ	ProtectedÚPublicÚ
RaiseEventÚReadOnlyÚReDimÚRemoveHandlerÚResumeÚReturnÚSelectÚSetÚShadowsÚSharedr‰   ÚStaticÚStepÚStopÚSyncLockÚThenÚThrowÚToÚTrueÚTryÚTryCastÚWendÚUsingÚWhenÚWhileÚWideningÚWithÚ
WithEventsÚ	WriteOnlyz(?<!\.)z\b)ÚprefixÚsuffixz(?<!\.)End\bÚendz(?<!\.)(Dim|Const)\bÚdimz#(?<!\.)(Function|Sub|Property)(\s+)r©   z"(?<!\.)(Class|Structure|Enum)(\s+)rª   z&(?<!\.)(Module|Namespace|Imports)(\s+)r[   z|(?<!\.)(Boolean|Byte|Char|Date|Decimal|Double|Integer|Long|Object|SByte|Short|Single|String|Variant|UInteger|ULong|UShort)\bzU(?<!\.)(AddressOf|And|AndAlso|As|GetType|In|Is|IsNot|Like|Mod|Or|OrElse|TypeOf|Xor)\bzE&=|[*]=|/=|\\=|\^=|\+=|-=|<<=|>>=|<<|>>|:=|<=|>=|<>|[-&*/\\^+=<>\[\]]r™   Ústringz(_)(\n)z	[%&@!#$]?z#.*?#z"(\d+\.\d*|\d*\.\d+)(F[+-]?[0-9]+)?z\d+([SILDFR]|US|UI|UL)?z&H[0-9a-f]+([SILDFR]|US|UI|UL)?z&O[0-7]+([SILDFR]|US|UI|UL)?ú""z"C?r\   ú[^"]+ú\.z?(Function|Sub|Property|Class|Structure|Enum|Module|Namespace)\b)r`   r'  r&  r©   rª   r[   r%  c                 óJ   — t          j        d| t           j        ¦  «        rdS d S )Nz^\s*(#If|Module|Namespace)g      à?)r{   Úsearchr|   ©r¡   s    rp   r£   zVbNetLexer.analyse_textô  s*   € ÝŒ9Ð2°D½"¼,ÑGÔGð 	Ø�3ð	ð 	rq   N)+rr   rs   rt   ru   rv   rw   rx   ry   rz   r   r€   Úuni_namer{   r|   Ú
IGNORECASEr~   r   rˆ   r   r   r   rŒ   r   r   ÚDeclarationr
   r�   r   r«   r   r   r   ÚDater   r¯   r²   ÚVariabler	   r‡   rŽ   r�   rf   r£   r�   rq   rp   r   r   Š  s-  € € € € € ðð ð
 €DØ
A€CØ<Ð<Ð<€GØ˜Ð!€IØ Ð.€Ià�k�c”k $¨¨d°DÑ9Ô9Ñ9¸CÑ?ØñØ �S”[  t¨T°4¸¸tØ!% t¨Tñ3ô 3ñ3à59ñ:€Hð ŒL˜2œ=Ñ(€Eð ˜4œ>Ð*Ø�ZÐ Ø�JÐØ  ¨°*Ñ =Ô =Ð>Ø˜H˜H W¨jÑ9Ô9Ð:ð=ð Œ_ðð ˜[Ð)ð%àˆX�gÔ)¨:°wÔ7JØ  'Ô"5ñ7ô 7ð8ð ˆUð ?ð& %¨Uð'4ñ 4ô 4ð& 6=ð'>ð( ˜g uÐ-Ø$ g¨uÐ5Ø3ØˆX�g˜zÑ*Ô*¨Jð8à2ØˆX�g˜zÑ*Ô*¨Kð9à6ØˆX�g˜zÑ*Ô*¨Kð9ðà"œ<ð)ð(Ø)1¬ð8ð+àðð �&˜(Ð#Ø˜˜ $¨
Ñ3Ô3Ð4Ø˜Ñ# TÐ*Ø�g”lÐ#Ø2°F´LÐAØ'¨¬Ð8Ø/°´Ð@Ø,¨f¬nÐ=ðu;
ðz �FˆOØ�V˜VÐ$Ø�vÐð
ð �t”} fÐ-ØˆG�F‰OŒOð
ð
 �t”} fÐ-ð
ð �t”z 6Ð*ð
ð �t”~Ð&Ø�D”NÐ#ØˆG�F‰OŒOð
ð �ZÐ ØOØ�fðàˆG�F‰OŒOð	
ðcWð W€Fðrð ð ð ð rq   r   c            
       óÔ   — e Zd ZdZdZg Zg Zej        Z	dd e
ej        eej        ¦  «        fd e
 ee¦  «        e ee¦  «        ¦  «        fd ee¦  «        fd ee¦  «        fgiZdS )	ÚGenericAspxLexerz"
    Lexer for ASP.NET pages.
    zaspx-genr`   z(<%[@=#]?)(.*?)(%>)z(<script.*?>)(.*?)(</script>)z
(.+?)(?=<)z.+N)rr   rs   rt   ru   rv   ry   rz   r{   r}   r~   r   r   ÚTagr   r   r   rf   r�   rq   rp   r4  r4  ù  s®   € € € € € ðð ð €DØ€IØ€IàŒI€Eð 	Ø# X X¨d¬h¸¸t¼xÑ%HÔ%HÐIØ-¨x¨x¸¸¸h¹¼Ø8=Ø8=¸¸h¹¼ñ0Iô 0Ið Jð ˜E˜E (™OœOÐ,Ø�E�E˜(‘O”OÐ$ð
ð	€F€F€Frq   r4  c                   ó>   ‡ — e Zd ZdZdZdgZg d¢Zg Zˆ fd„Zd„ Z	ˆ xZ
S )r   z9
    Lexer for highlighting C# within ASP.NET pages.
    zaspx-cs©z*.aspxz*.asaxz*.ascxz*.ashxz*.asmxz*.axdc                 óR   •—  t          ¦   «         j        t          t          fi |¤Ž d S ©N)Úsuperrk   r   r4  ©rm   rn   rh   s     €rp   rk   zCSharpAspxLexer.__init__  s+   ø€ Ø�‰ŒÔ�Õ&6ÐBÐB¸'ÐBÐBÐBÐBÐBrq   c                 óŽ   — t          j        d| t           j        ¦  «        �dS t          j        d| t           j        ¦  «        �dS d S )NzPage\s*Language="C#"çš™™™™™É?zscript[^>]+language=["\']C#ç333333Ã?©r{   r,  ÚIr-  s    rp   r£   zCSharpAspxLexer.analyse_text  óC   € ÝŒ9Ð,¨dµB´DÑ9Ô9ÐEØ�3ÝŒYÐ5°t½R¼TÑBÔBÐNØ�4ð OÐNrq   ©rr   rs   rt   ru   rv   rx   ry   rz   rk   r£   Ú__classcell__©rh   s   @rp   r   r     st   ø€ € € € € ðð ð €DØˆk€GØKÐKÐK€IØ€IðCð Cð Cð Cð Cðð ð ð ð ð ð rq   r   c                   ó>   ‡ — e Zd ZdZdZdgZg d¢Zg Zˆ fd„Zd„ Z	ˆ xZ
S )r   zG
    Lexer for highlighting Visual Basic.net within ASP.NET pages.
    zaspx-vbr7  c                 óR   •—  t          ¦   «         j        t          t          fi |¤Ž d S r9  )r:  rk   r   r4  r;  s     €rp   rk   zVbNetAspxLexer.__init__/  s+   ø€ Ø�‰ŒÔ�Õ%5ÐAÐA¸ÐAÐAÐAÐAÐArq   c                 óŽ   — t          j        d| t           j        ¦  «        �dS t          j        d| t           j        ¦  «        �dS d S )NzPage\s*Language="Vb"r=  zscript[^>]+language=["\']vbr>  r?  r-  s    rp   r£   zVbNetAspxLexer.analyse_text2  rA  rq   rB  rD  s   @rp   r   r   %  st   ø€ € € € € ðð ð €DØˆk€GØKÐKÐK€IØ€IðBð Bð Bð Bð Bðð ð ð ð ð ð rq   r   c                   óì  — e Zd ZdZdZdZddgZg d¢ZdgZg d¢Z	e	g d	¢z  Z	g d
¢Z
dZg d¢ZdZdZg d¢Zdej        fdej        fdej        fdej        fgg def‘dej        j        f‘dej        df‘def‘d eej        e¦  «        f‘d eej        e¦  «        f‘dedf‘dedf‘ded f‘d!ed"f‘d# eeeej        ¦  «        f‘d$ eeeej        ¦  «        f‘d% eeeej        ¦  «        f‘d& eeeeeej        ¦  «        f‘d'd(                      e	¦  «        z  ef‘d)ef‘d*d(                      e
¦  «        z  e!f‘d+e›d(e›d,e›�e!f‘d'd(                      e¦  «        z  e!j"        f‘d'd(                      e¦  «        z  ej#        f‘d- eej$        eej$        ej$        e¦  «        f‘d.ef‘d/e%j&        f‘d0e%j'        f‘d1e%j(        f‘d2e%j)        f‘d3e%j*        f‘d4ej+        f‘d5ej+        f‘d6ef‘d7ej,        d"f‘d8ej        f‘defd9efd:ej        fd;ed<fd=ed<f e-d<¦  «        gd>efd?ed@fdAed<fdedfded fd!ed"fdBefgdCef e.dD¦  «        dEefdFefdGed<fgdHefdFefdIefdGed<fgdHefdFefdJed<fd!efgdKœZ/dL„ Z0dMS )Nr   zG
    For the F# language (version 3.0).

    .. versionadded:: 1.5
    zF#zhttps://fsharp.org/Úfsharpzf#)z*.fsz*.fsiz*.fsxztext/x-fsharp)BÚabstractÚasÚassertÚbaseÚbeginrY   r	   Údelegatezdo!ÚdoÚdoneÚdowncastÚdowntoÚelifÚelser%  Ú	exceptionÚexternÚfalseÚfinallyÚforÚfunctionÚfunÚglobalÚifÚinheritÚinlineÚ	interfaceÚinternalÚinÚlazyzlet!ÚletÚmatchÚmemberÚmoduleÚmutabler[   ÚnewÚnullÚofÚopenÚoverrideÚprivateÚpublicÚreczreturn!ÚreturnÚselectÚstaticÚstructÚthenÚtoÚtrueÚtryÚtypeÚupcastzuse!ÚuseÚvalÚvoidÚwhenÚwhileÚwithzyield!Úyield)ÚatomicÚbreakÚcheckedÚ	componentÚconstÚ
constraintÚconstructorÚcontinueÚeagerÚeventÚexternalÚfixedÚfunctorr   ÚmethodÚmixinÚobjectÚparallelÚprocessÚ	protectedÚpureÚsealedÚtailcallÚtraitÚvirtualÚvolatile)+rC   ú#rD   rJ   rœ   r�   z\*z\+ú,z-\.z->rF   z\.\.r*  z::z:=z:>ú:z;;ú;z<-z<\]rM   z>\]rN   z\?\?z\?z\[<z\[\|z\[z\]Ú_ú`z\{z\|\]z\|z\}rQ   z<@@z<@rR   z@>z@@>z[!$%&*+\./:<=>?@^|~-])ÚandÚorÚnotz[!?~]z[=<>@^|&+\*/$%-])ÚsbyteÚbyteÚcharÚ	nativeintÚ
unativeintÚfloat32ÚsingleÚfloatÚdoubleÚint8Úuint8Úint16Úuint16Úint32Úuint32Úint64Úuint64ÚdecimalÚunitÚboolr'  re   ÚexnÚobjÚenumz\\[\\"\'ntbrafv]z
\\[0-9]{3}z\\u[0-9a-fA-F]{4}z\\U[0-9a-fA-F]{8}r§   z	\(\)|\[\]z \b(?<!\.)([A-Z][\w\']*)(?=\s*\.)Údottedz\b([A-Z][\w\']*)z(///.*?)(\n)z(//.*?)(\n)z
\(\*(?!\))r¨   z@"Úlstringz"""Útqsr™   r'  z\b(open|module)(\s+)([\w.]+)z\b(let!?)(\s+)(\w+)z\b(type)(\s+)(\w+)z&\b(member|override)(\s+)(\w+)(\.)(\w+)z\b(%s)\brK   z``([^`\n\r\t]|`[^`\n\r\t])+``z(%s)r^   z)?z;(#)([ \t]*)(if|endif|else|line|nowarn|light|\d+)\b(.*?)(\n)z[^\W\d][\w']*z\d[\d_]*[uU]?[yslLnQRZINGmM]?z-0[xX][\da-fA-F][\da-fA-F_]*[uU]?[yslLn]?[fF]?z0[oO][0-7][0-7_]*[uU]?[yslLn]?z0[bB][01][01_]*[uU]?[yslLn]?z/-?\d[\d_]*(.[\d_]*)?([eE][+\-]?\d[\d_]*)[fFmM]?z9'(?:(\\[\\\"'ntbr ])|(\\[0-9]{3})|(\\x[0-9a-fA-F]{2}))'B?z'.'ú'z@?"z[~?][a-z][\w\']*:r*  z[A-Z][\w\']*(?=\s*\.)z[A-Z][\w\']*r\   z[a-z_][\w\']*z	[^(*)@"]+z\(\*rš   z\*\)z[(*)@]z[^\\"]+úescape-sequencez\\\nrB   z"B?r)  r(  z"""B?)rÀ  r`   r¼  r¨   r'  r½  r¾  c                 ó.   — d}d| v r|dz  }d| v r|dz  }|S )zSF# doesn't have that many unique features -- |> and <| are weak
        indicators.r   z|>gš™™™™™©?z<|r�   r    s     rp   r£   zFSharpLexer.analyse_textÐ  s2   € ð ˆØ�4ˆ<ˆ<Ø�d‰NˆFØ�4ˆ<ˆ<Ø�d‰NˆFàˆrq   N)1rr   rs   rt   ru   rv   rw   rx   ry   rz   ÚkeywordsÚkeyoptsÚ	operatorsÚword_operatorsÚprefix_symsÚ
infix_symsÚ
primitivesr   ÚEscaper   r   r­   ÚPseudor�   r   ÚDocr   r‰   r   r2  rŽ   r   r‡   Újoinr   r«   r�   rŒ   r   r²   r±   r°   ÚBinr¯   r‹   r®   r	   r   rf   r£   r�   rq   rp   r   r   :  s  € € € € € ðð ð €DØ
€CØ˜Ð€GØ*Ð*Ð*€IØ Ð!€Ið
ð 
ð 
€Hð ð ð ð ñ €Hðð ð €Gð )€IØ)Ð)Ð)€NØ€KØ$€Jðð ð €Jð ! &¤-Ð0Ø˜FœMÐ*Ø! 6¤=Ð1Ø! 6¤=Ð1ð	
ð1
Ø�ZÐ ð1
à˜4œ<Ô.Ð/ð1
ð 1ØŒ^˜Xð'ð1
ð
 ! $Ð'ð1
ð ˜h˜h v¤z°:Ñ>Ô>Ð?ð1
ð ˜X˜X g¤n°jÑAÔAÐBð1
ð ˜G YÐ/ð1
ð �F˜IÐ&ð1
ð �V˜UÐ#ð1
ð �6˜8Ð$ð1
ð -ØˆX�g˜z¨4¬>Ñ:Ô:ð<ð1
ð  $ØˆX�g˜z¨4¬=Ñ9Ô9ð;ð!1
ð$ #ØˆX�g˜z¨4¬:Ñ6Ô6ð8ð%1
ð( 7ØˆX�g˜z¨4°¸d¼mÑLÔLðNð)1
ð, ˜3Ÿ8š8 HÑ-Ô-Ñ-¨wÐ7ð-1
ð. .¨tÐ4ð/1
ð0 �s—x’x Ñ(Ô(Ñ(¨(Ð3ð11
ð 1
ð2 )˜j˜j¨+¨+¨+°y°yÐAÀ8ÐLð31
ð4 ˜3Ÿ8š8 NÑ3Ô3Ñ3°X´]ÐCð51
ð6 ˜3Ÿ8š8 JÑ/Ô/Ñ/°´Ð>ð71
ð8 LØˆX�g”o z°7´?Ø”o zñ3ô 3ð4ð91
ð@ ˜tÐ$ðA1
ðD .¨v¬~Ð>ðE1
ðF >¸v¼zÐJðG1
ðH /°´
Ð;ðI1
ðJ -¨f¬jÐ9ðK1
ðL @ØŒ\ððM1
ðR JØŒ[ððS1
ðV �V”[Ð!ðW1
ðX �7ˆOðY1
ð\ �V”] HÐ-ð]1
ð` " 4¤=Ð1ða1
ðf �ZÐ Ø�KÐ Ø% t¤~Ð6Ø˜d FÐ+Ø˜t VÐ,àˆG�F‰OŒOð
ð ˜7Ð#Ø�g˜wÐ'Ø�g˜vÐ&à�F˜IÐ&Ø�V˜UÐ#Ø�6˜8Ð$Ø˜Ð ð	
ð ˜Ð ØˆGÐ%Ñ&Ô&Ø�fÐØ�FˆOØ�V˜VÐ$ð
ð �vÐØ�FˆOØ�FˆOØ�V˜VÐ$ð	
ð �vÐØ�FˆOØ�v˜vÐ&Ø�6ˆNð	
ðs_ð _€FðB	ð 	ð 	ð 	ð 	rq   r   )'ru   r{   Úpygments.lexerr   r   r   r   r   r   r	   r
   Úpygments.tokenr   r   r   r   r   r   r   r   r   r   r   Úpygments.utilr   Úpygmentsr   r   Úpygments.lexers.htmlr   Ú__all__r   r   r   r   r4  r   r   r   r�   rq   rp   ú<module>rÔ     sÏ  ððð ð 
€	€	€	ð ð  ð  ð  ð  ð  ð  ð  ð  ð  ð  ð  ð  ð  ð  ð  ð  ð  ð  ð  ð5ð 5ð 5ð 5ð 5ð 5ð 5ð 5ð 5ð 5ð 5ð 5ð 5ð 5ð 5ð 5ð 5ð 5ð 5ð 5ð 5ð 5ð 5ð 5ð 5ð 5à (Ð (Ð (Ð (Ð (Ð (Ø %Ð %Ð %Ð %Ð %Ð %à )Ð )Ð )Ð )Ð )Ð )ð?ð ?ð ?€ðx-ð x-ð x-ð x-ð x-�*ñ x-ô x-ð x-ðvoð oð oð oð o�:ñ oô oð oðdAð Að Að Að Aˆzñ Aô Að AðHlð lð lð lð l�ñ lô lð lð^ð ð ð ð �zñ ô ð ð0ð ð ð ð �oñ ô ð ð(ð ð ð ð �_ñ ô ð ð*_ð _ð _ð _ð _�*ñ _ô _ð _ð _ð _rq   