o
    ‡ÎÖaâq  ã                   @   s  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
„ d
eƒZG dd„ deƒZ G dd„ deƒZ!G dd„ deƒZ"G dd„ deƒZ#G dd„ deƒZ$G dd„ deƒZ%G dd„ deƒZ&dS )zË
    pygments.lexers.dotnet
    ~~~~~~~~~~~~~~~~~~~~~~

    Lexers for .net languages.

    :copyright: Copyright 2006-2021 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                   @   s   e Zd ZdZdZg d¢ZdgZdgZej	ej
B ejB Zdde dd	d
dd¡ d d e dd	d
ddddddd¡
 d de dd	d
ddd¡ d d e dd	d
dddddddd¡ d dœZi ZdZe ¡ D ]”\ZZde d e d 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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d-ee&eƒfd.e&j'fd/ee&eƒd0fd1ee&eƒd2feefgeej(d3fe)d3ƒgd4ed3fd5e d6 ej*d3fgd7œee< qed8d9„ Z+d:S );r   añ  
    For `C# <http://msdn2.microsoft.com/en-us/vcsharp/default.aspx>`_
    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#)Ú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!\$?"(\\\\|\\[^\\]|[^"\\\n])*["\n]ú'\\.'|'[^\\]'zA[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ú(?=\()ú(ú|\.)+)ÚrootrG   rI   c                 K   óP   t |dt| jƒdƒ}|| jvr| j |¡| _n| j| | _tj| fi |¤Ž d S ©NÚunicodelevelr6   ©	r   ÚlistÚtokensÚ_all_tokensÚ	__class__Úprocess_tokendefÚ_tokensr   Ú__init__©ÚselfÚoptionsÚlevel© r^   ú8/usr/lib/python3/dist-packages/pygments/lexers/dotnet.pyrY   ‚   s
   
zCSharpLexer.__init__N),Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚnameÚaliasesÚ	filenamesÚ	mimetypesÚreÚ	MULTILINEÚDOTALLÚUNICODEÚflagsÚuniÚcombineÚ	allexceptÚlevelsrT   Útoken_variantsÚitemsÚ	levelnameÚcs_identr   r   r   r   r   ÚFunctionr
   Ú	Attributer   r   ÚSingleÚ	Multiliner   ÚCharr   ÚPreprocr   ÚTypeÚClassr   Ú	NamespacerY   r^   r^   r^   r_   r      s¨    ÿÿÿþÿÿþ
ÿþýû
ÿÿÿýÿÿþÿõÿÕ
.þþÎ8r   c                !   @   s0  e Zd ZdZdZdgZdgZdgZej	ej
B ejB Zdde dd	d
dd¡ d d e dd	d
ddddddd¡
 d de dd	d
ddd¡ d d e dd	d
dddddddd¡ d dœZi ZdZe ¡ D �](\ZZde d e d 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 d+ ee#ee#ƒfd,e#fd-e efd.eeeƒd/fd0efd1efd2e"fd3e"fd4e"j$fd5e%fd6e%fd7eej&eej&ƒd8fd9ee#ee#ƒfd:e#fd;ee#eƒfd<e#j'fd=e d> eeee#j'ƒfd?ee#eƒd@fdAee#eƒdBfeefgeej(dCfgdDej&fdEefd#edCfgdFedCfdGe dH ej)dCfgdIe"fd-e efd.eeeƒd/fdJe"fdKe"dCfgdLe"fd-e efd.eeeƒd/fd(e"dMfdNe"dCfgdOe"fd(e"dMfdNe"dCfgdPe#fdQefeefdRe%fdSedMfdTedCfgdUœee< qddVdW„ Z*dXdY„ Z+dZS )[r   aÍ  
    For `Nemerle <http://nemerle.org>`_ 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
    ÚNemerleÚnemerlez*.nztext/x-nemerler!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   Tr8   r9   r:   r;   r<   r=   r>   r?   r@   z(\$)(\s*)(")úsplice-stringz(\$)(\s*)(<#)úsplice-string2z<#úrecursive-stringz(<\[)(\s*)(z:)?z\]\>z\$z(\$)(\()úsplice-string-contentrA   rB   rC   z"(\\\\|\\[^\\]|[^"\\\n])*["\n]rD   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ÚpreprocrE   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)\brF   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+)rG   rH   rI   rJ   z\w+z[ \t]+rK   rL   rM   z[^"$]z\\"ú"z[^#<>$]ú#pushz#>z[^#<>]zif|matchz[~!%^&*+=|\[\]:;,.<>/?-\\"$ ]ú\d+ú\(ú\))rN   rG   r„   rI   r€   r�   r‚   rƒ   c                 K   rO   rP   rR   rZ   r^   r^   r_   rY   (  s   ÿ
zNemerleLexer.__init__c                 C   s   d}d| v r
|d7 }|S )zUNemerle is quite similar to Python, but @if is relatively uncommon
        elsewhere.r   z@ifgš™™™™™¹?r^   ©ÚtextÚresultr^   r^   r_   Úanalyse_text3  s   zNemerleLexer.analyse_textN),r`   ra   rb   rc   rd   re   rf   rg   rh   ri   rj   rk   rl   rm   rn   ro   rp   rT   rq   rr   rs   rt   r   r   r   r   r   ru   r
   rv   r   r   rw   rx   r   r   ry   r   rz   r{   r|   r}   rY   r�   r^   r^   r^   r_   r   �   s   ÿÿÿþÿÿþ
ÿþýû
ÿÿÿýÿÿÿ

ÿþõþ
ÿ
ÿ
ÿÃ
@ÿýþ

ÿú	

ÿú	ýúŸkr   c                   @   sR  e 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 <http://boo.codehaus.org/>`_ source code.
    ÚBooÚbooz*.booz
text/x-booú\s+z	(#|//).*$z/[*]Úcommentz[]{}:(),.;[]r=   z\\z(in|is|and|or|not)\bz/(\\\\|\\[^\\]|[^/\\\s])/z@/(\\\\|\\[^\\]|[^/\\])*/z=~|!=|==|<<|>>|[-+/*%=<>&^|]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+)rI   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[*]/rJ   z[^/*]z[*/]z[a-zA-Z_][\w.]*)rN   r‘   r’   r“   rI   N)!r`   ra   rb   rc   rd   re   rf   rg   r   r   rw   rx   r
   r   r   r   ÚWordr   ÚRegexr   r   ÚBuiltinÚDoubler   ÚFloatÚOctÚHexÚIntegerÚLongru   r|   r}   rT   r^   r^   r^   r_   r   >  sb    
úü
Ü
'
ü
ÿ
ÿ
ÿ
Ír   c                   @   sè  e Zd ZdZdZddgZddgZddgZd	e 	d
ddd¡ d d e 	d
dddddddd¡	 d Z
ejejB 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 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d1eeeƒfe
d2 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?d@„ Z)dAS )Br   zm
    For
    `Visual Basic.NET <http://msdn2.microsoft.com/en-us/vbasic/default.aspx>`_
    source code.
    zVB.netzvb.netÚvbnetz*.vbz*.basztext/x-vbnetz
text/x-vbaz[_r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   z	^\s*<.*?>r�   r@   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ÚSharedrw   Ú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+)rI   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?rJ   ú[^"]+ú\.z?(Function|Sub|Property|Class|Structure|Enum|Module|Namespace)\b)rN   r  r  r’   r“   rI   r
  c                 C   s   t  d| t j¡r
dS d S )Nz^\s*(#If|Module|Namespace)g      à?)rh   Úsearchri   ©r‹   r^   r^   r_   r�   ê  s   ÿzVbNetLexer.analyse_textN)*r`   ra   rb   rc   rd   re   rf   rg   rm   rn   Úuni_namerh   ri   Ú
IGNORECASErl   r   rv   r   r   r   rz   r
   r   ÚDeclarationr	   r{   r   r”   r   r   r   ÚDater   r˜   r›   ÚVariabler   ru   r|   r}   rT   r�   r^   r^   r^   r_   r   �  s®    ÿÿÿþý
ÿÿíí
ÿ
ÿ
ÿþÿþ
Ç<ý
þ
ÿ
ÿýÿü°Xr   c                   @   sf   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-genrN   z(<%[@=#]?)(.*?)(%>)z(<script.*?>)(.*?)(</script>)z
(.+?)(?=<)z.+N)r`   ra   rb   rc   rd   rf   rg   rh   rj   rl   r   r   ÚTagr   r   r   rT   r^   r^   r^   r_   r  ï  s     
þ

úÿr  c                       ó>   e Zd ZdZdZdgZg d¢Zg Z‡ fdd„Zdd„ Z	‡  Z
S )r   z9
    Lexer for highlighting C# within ASP.NET pages.
    zaspx-cs©z*.aspxz*.asaxz*.ascxz*.ashxz*.asmxz*.axdc                    ó   t ƒ jttfi |¤Ž d S ©N)ÚsuperrY   r   r  ©r[   r\   ©rV   r^   r_   rY     ó   zCSharpAspxLexer.__init__c                 C   ó4   t  d| t j¡d urdS t  d| t j¡d urdS d S )NzPage\s*Language="C#"çš™™™™™É?zscript[^>]+language=["\']C#ç333333Ã?©rh   r  ÚIr  r^   r^   r_   r�     ó
   ÿzCSharpAspxLexer.analyse_text©r`   ra   rb   rc   rd   re   rf   rg   rY   r�   Ú__classcell__r^   r^   r  r_   r     ó    r   c                       r  )r   zG
    Lexer for highlighting Visual Basic.net within ASP.NET pages.
    zaspx-vbr  c                    r  r  )r  rY   r   r  r  r  r^   r_   rY   %  r   zVbNetAspxLexer.__init__c                 C   r!  )NzPage\s*Language="Vb"r"  zscript[^>]+language=["\']vbr#  r$  r  r^   r^   r_   r�   (  r&  zVbNetAspxLexer.analyse_textr'  r^   r^   r  r_   r     r)  r   c                   @   sø  e Zd ZdZdZddgZddgZdgZg d¢Zeg d	¢7 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¡ ef‘d)ef‘d*d( e	¡ e f‘d+eee
f e f‘d'd( e¡ e j!f‘d'd( e¡ ej"f‘d,eej#eej#ej#eƒf‘d-ef‘d.e$j%f‘d/e$j&f‘d0e$j'f‘d1e$j(f‘d2e$j)f‘d3ej*f‘d4ej*f‘d5ef‘d6ej+d"f‘d7ejf‘defd8efd9ejfd:ed;fd<ed;fe,d;ƒgd=efd>ed?fd@ed;fdedfded fd!ed"fdAefgdBefe-dCƒdDefdEefdFed;fgdGefdEefdHefdFed;fgdGefdEefdIed;fd!efgdJœZ.dKdL„ Z/dMS )Nr   z`
    For the `F# language <https://fsharp.org/>`_ (version 3.0).

    .. versionadded:: 1.5
    zF#Úfsharpzf#z*.fsz*.fsiztext/x-fsharp)BÚabstractÚasÚassertÚbaseÚbeginrG   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ÚmutablerI   Ú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)+z!=ú#z&&ú&rˆ   r‰   z\*z\+ú,z-\.z->ú-z\.\.r  z::z:=z:>ú:z;;ú;z<-z<\]ú<z>\]ú>z\?\?z\?z\[<z\[\|z\[z\]Ú_ú`z\{z\|\]z\|z\}ú~z<@@z<@ú=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  rS   Ú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)\bú|z``([^`\n\r\t]|`[^`\n\r\t])+``z(%s)z
(%s|%s)?%sz;(#)([ \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\']*rJ   z[a-z_][\w\']*z	[^(*)@"]+z\(\*r†   z\*\)z[(*)@]z[^\\"]+úescape-sequencez\\\nr@   z"B?r  r  z"""B?)r¨  rN   r£  r‘   r  r¤  r¥  c                 C   s(   d}d| v r
|d7 }d| v r|d7 }|S )zSF# doesn't have that many unique features -- |> and <| are weak
        indicators.r   z|>gš™™™™™©?z<|r^   rŠ   r^   r^   r_   r�   Å  s   zFSharpLexer.analyse_textN)0r`   ra   rb   rc   rd   re   rf   rg   ÚkeywordsÚkeyoptsÚ	operatorsÚword_operatorsÚprefix_symsÚ
infix_symsÚ
primitivesr   ÚEscaper   r   r–   ÚPseudor}   r   ÚDocr   rw   r   r  r|   r
   ru   Újoinr   r”   r{   rz   r   r›   rš   r™   ÚBinr˜   ry   r—   r   r   rT   r�   r^   r^   r^   r_   r   0  s   üÿ
þÿýûúùø
öõôÿòÿðÿîÿìêéèçæåÿÿä à"Þ#Ý$Ü%Û&ÿÚ)ÿ×+Õ,Ô
.Ò0Ð3ù
øûüü§ar   )'rc   rh   Úpygments.lexerr   r   r   r   r   r   r   r	   Úpygments.tokenr
   r   r   r   r   r   r   r   r   r   r   Úpygments.utilr   Úpygmentsr   rm   Úpygments.lexers.htmlr   Ú__all__r   r   r   r   r  r   r   r   r^   r^   r^   r_   Ú<module>   s"    	(4t 2Cn