3

V'íctã@s"dZddlZddlmZmZmZmZmZmZm	Z	m
Z
ddlmZm
Z
mZmZmZmZmZmZmZmZmZddlmZddlmZddlmZdd	d
ddd
dgZGdd„deƒZGdd	„d	eƒZ Gdd
„d
eƒZ!Gdd„deƒZ"Gdd„deƒZ#Gdd„deƒZ$Gdd
„d
eƒZ%Gdd„deƒZ&dS)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ÚFSharpLexerc1@seZdZdZdZdZdddgZdgZdgZe	j
e	jBZd	d
e
jddd
ddƒdde
jddd
dddddddƒ
dde
jddd
dddƒdde
jddd
ddddddddƒddœZiZdZxFejƒD]8\ZZdeded eeeeƒejeeƒfd!eeejƒfd"efd#eeeƒfd$ej fd%ej!fd&efe"dgƒe#fdOe#fdPefdQefdRe$fdSe$fdTe$j%fdUe&fdVeej'eej'ej'eƒfdWee(ee(ƒfdXe(fdYee(eƒfdZe(j)fd[ee(eƒd\fd]ee(eƒd^feefgeej*d_fe+d_ƒgd`ed_fdaedbej,d_fgdcœee<qÎWddde„Z-dfS)hra²
    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
    zC#z/https://docs.microsoft.com/en-us/dotnet/csharp/Zcsharpzc#Úcsz*.csz
text/x-csharpz@?[_a-zA-Z]\w*z@?[_ÚLuÚLlÚLtÚLmÚNlú]ú[ÚNdÚPcÚCfÚMnÚMcz]*z	@?(?:_|[^ÚLoz])z[^)ÚnoneÚbasicÚfullTz
^([ \t]*)((?:z(?:\[\])?\s+)+?)(z
)(\s*)(\()z^(\s*)(\[.*?\])z[^\S\n]+z(\\)(\n)z//.*?\nz/[*].*?[*]/z\nú>>>=ú>>=ú<<=ú<=ú>=ú+=ú-=ú*=ú/=ú%=ú&=ú|=ú^=ú??=ú=>ú??ú?.ú!=ú==ú&&ú||ú>>>ú>>ú<<ú++ú--ú+ú-Ú*ú/ú%ú&ú|ú^ú<ú>ú?ú!ú~ú=z=~|!=|==|<<|>>|[-+/*%=<>&^|]z[()\[\];:,.]z[{}]z
@"(""|[^"])*"z!\$?"(\\\\|\\[^\\]|[^"\\\n])*["\n]z
'\\.'|'[^\\]'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)z\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)\bz(global)(::)zk(bool|byte|char|decimal|double|dynamic|float|int|long|object|sbyte|short|string|uint|ulong|ushort|var)\b\??z(class|struct)(\s+)Úclassz(namespace|using)(\s+)Ú	namespacez#popz(?=\()ú(z|\.)+)ÚrootrXrYcKsLt|dt|jƒdƒ}||jkr.|jj|ƒ|_n|j||_tj|f|ŽdS)NÚunicodelevelr.)	rÚlistÚtokensÚ_all_tokensÚ	__class__Úprocess_tokendefÚ_tokensrÚ__init__)ÚselfÚoptionsÚlevel©rgú:/tmp/pip-build-gk9425m9/Pygments/pygments/lexers/dotnet.pyrc‰s

zCSharpLexer.__init__N)(r0r1r2r3r4r5r6r7r8r9r:r;r<r=r>r?r@rArBrCrDrErFrGrHrIrJrKrLrMrNrOrPrQrRrSrTrUrVrW).Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚnameÚurlÚaliasesÚ	filenamesÚ	mimetypesÚreÚ	MULTILINEÚDOTALLÚflagsÚuniÚcombineÚ	allexceptÚlevelsr^Útoken_variantsÚitemsÚ	levelnameÚcs_identrrrrrÚFunctionr
Ú	AttributerrÚSingleÚ	Multiliner	r
rÚCharrÚPreprocrÚTypeÚClassrÚ	Namespacercrgrgrgrhrsl
<F

"c!@s4eZdZdZdZdZdgZdgZdgZe	j
e	jBZdde
jd	d
ddd
ƒdde
jd	d
ddd
dddddƒ
dde
jd	d
dddd
ƒdde
jd	d
dddd
dddddƒddœZiZdZx^ejƒD]P\ZZdededeeeeƒejeeƒfdeeejƒfd efd!eeeƒfd"ej fd#ej!fd$efd%ee"ee"ƒd&fd'ee"ee"ƒd(fd)e"d*fd+ed,ee#ee#ƒfd-e#fd.eefd/eeeƒd0fd1efd2efd3e"fd4e"fd5e"j$fd6e%fd7e%fd8eej&eej&ƒd9fd:ee#ee#ƒfd;e#fd<ee#eƒfd=e#j'fd>ed?eeee#j'ƒfd@ee#eƒdAfdBee#eƒdCfeefgeej(dDfgdEej&fdFefd$edDfgdGedDfdHedIej)dDfgdJe"fd.eefd/eeeƒd0fdKe"fdLe"dDfgdMe"fd.eefd/eeeƒd0fd)e"dNfdOe"dDfgdPe"fd)e"dNfdOe"dDfgdQe#fdRefeefdSe%fdTedNfdUedDfgdVœee<qÊWdWdX„Z*dYdZ„Z+d[S)\raµ
    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
    ZNemerlezhttp://nemerle.orgZnemerlez*.nztext/x-nemerlez@?[_a-zA-Z]\w*z@?[_r r!r"r#r$r%r&r'r(r)r*r+z]*z	@?(?:_|[^r,z])z[^)r-r.r/Tz
^([ \t]*)((?:z(?:\[\])?\s+)+?)(z
)(\s*)(\()z^(\s*)(\[.*?\])z[^\S\n]+z(\\)(\n)z//.*?\nz/[*].*?[*]/z\nz(\$)(\s*)(")z
splice-stringz
(\$)(\s*)(<#)zsplice-string2z<#zrecursive-stringz(<\[)(\s*)(z:)?z\]\>z\$z(\$)(\()zsplice-string-contentz[~!%^&*()+=|\[\]:;,.<>/?-]z[{}]z
@"(""|[^"])*"z"(\\\\|\\[^\\]|[^"\\\n])*["\n]z
'\\.'|'[^\\]'z0[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Úpreprocz\b(extern)(\s+)(alias)\baã(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)\bz(global)(::)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+)rXz(namespace|using)(\s+)rYz#popz\w+z[ \t]+z(?=\()rZz|\.)+z[^"$]z\\"ú"z[^#<>$]z#pushz#>z[^#<>]zif|matchz[~!%^&*+=|\[\]:;,.<>/?-\\"$ ]z\d+z\(z\))r[rXr‡rYz
splice-stringzsplice-string2zrecursive-stringzsplice-string-contentcKsLt|dt|jƒdƒ}||jkr.|jj|ƒ|_n|j||_tj|f|ŽdS)Nr\r.)	rr]r^r_r`rarbrrc)rdrerfrgrgrhrc0s
zNemerleLexer.__init__cCsd}d|kr|d7}|S)zUNemerle is quite similar to Python, but @if is relatively uncommon
        elsewhere.rz@ifgš™™™™™¹?rg)ÚtextÚresultrgrgrhÚanalyse_text;szNemerleLexer.analyse_textN),rirjrkrlrmrnrorprqrrrsrtrurvrwrxryr^rzr{r|r}rrrrrr~r
rrrr€rrrr‚rrƒr„r…r†rcr‹rgrgrgrhr”s¨<F












c@sVeZdZdZdZdZdgZdgZdgZde	fde
jfd	e
jd
fde
fdeee	ƒfd
efdejfdejfdejfdefdefdefdeee	ƒdfdeee	ƒdfdeee	ƒdfdejfdejfdejfdejfdefdejfd efd!ejfd"ejfd#ejjfd$ejfgd	e
jd%fd&e
jd'fd(e
jfd)e
jfgdejd'fgdejd'fgd*ej d'fgd+œZ!d,S)-rz
    For Boo source code.
    ZBoozhttps://github.com/boo-lang/booZbooz*.booz
text/x-booz\s+z	(#|//).*$z/[*]Úcommentz[]{}:(),.;[]z(\\)(\n)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)\bzdef(?=\s+\(.*?\))z
(def)(\s+)Úfuncnamez(class)(\s+)Ú	classnamez(namespace)(\s+)rYzã(?<!\.)(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)z0\d+z0x[a-fA-F0-9]+z\d+Lz\d+z#pushz[*]/z#popz[^/*]z[*/]z[a-zA-Z_][\w.]*)r[rŒrrŽrYN)"rirjrkrlrmrnrorprqrrr€rr
rrr
ÚWordrÚRegexrrÚBuiltinÚDoublerÚFloatÚOctÚHexÚIntegerZLongr~r…r†r^rgrgrgrhrFsR





cu@sòeZdZdZdZdZdddddgZd	d
gZddgZd
e	j
ddddƒdde	j
dddddddddƒ	dZej
ejBZdejfdefdefdeeeƒfdeeeƒfdejfd efd!eejeejeejƒfed±dŽddefd‘ed’fd“ed”fd•eeeƒd–fd—eeeƒd˜fd™eeeƒdšfd›ejfdœejfdefdžedŸfd eeeƒfed¡efd¢ej fd£e!j"fd¤e!j#fd¥e!j#fd¦e!j#fgd§efd¨ed©fdªefgeej$d©fe%d©ƒgeej&d©fgeej'd©fgeej(fd«ej(fe%d©ƒgdefd¬ed©fe%d©ƒgd­œZ)d®d¯„Z*d°S)²rzo
    For Visual Basic.NET source code.
    Also LibreOffice Basic, OpenOffice Basic, and StarOffice Basic.
    zVB.netz5https://docs.microsoft.com/en-us/dotnet/visual-basic/zvb.netZvbnetZlobasZoobasZsobasz*.vbz*.basztext/x-vbnetz
text/x-vbaz[_r!r"r#r$r%r&r'r(r)r*r+z]*z	^\s*<.*?>z\s+z\nz(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)Ú
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+)rYz|(?<!\.)(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""z"C?z#popz[^"]+z\.z?(Function|Sub|Property|Class|Structure|Enum|Module|Namespace)\b)r[rrrrŽrYrcCstjd|tjƒrdSdS)Nz^\s*(#If|Module|Namespace)gà?)rrÚsearchrs)r‰rgrgrhr‹ôszVbNetLexer.analyse_textN)lr—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Ä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ïrðrñròrórôrõrör÷rørùrúrûrürýrþrÿr)+rirjrkrlrmrnrorprqrvrwZuni_namerrrsÚ
IGNORECASErurrrrrrƒr
rZDeclarationr	r„r
rrrrÚDaterr“r–ÚVariablerr~r…r†r^r‹rgrgrgrhrŠs˜:



c@sfeZdZdZdZgZgZejZ	dde
eje
ejƒfde
eeƒe
eeƒƒfdeeƒfdeeƒfgiZdS)	ÚGenericAspxLexerz"
    Lexer for ASP.NET pages.
    zaspx-genr[z(<%[@=#]?)(.*?)(%>)z(<script.*?>)(.*?)(</script>)z
(.+?)(?=<)z.+N)rirjrkrlrmrprqrrrtrurrZTagrrrr^rgrgrgrhr
ùs


r
csFeZdZdZdZdgZddddddgZgZ‡fd	d
„Zdd„Z	‡Z
S)
rz9
    Lexer for highlighting C# within ASP.NET pages.
    zaspx-csz*.aspxz*.asaxz*.ascxz*.ashxz*.asmxz*.axdcstƒjttf|ŽdS)N)Úsuperrcrr
)rdre)r`rgrhrcszCSharpAspxLexer.__init__cCs4tjd|tjƒdk	rdStjd|tjƒdk	r0dSdS)NzPage\s*Language="C#"gš™™™™™É?zscript[^>]+language=["\']C#g333333Ã?)rrrÚI)r‰rgrgrhr‹szCSharpAspxLexer.analyse_text)rirjrkrlrmrorprqrcr‹Ú
__classcell__rgrg)r`rhrscsFeZdZdZdZdgZddddddgZgZ‡fd	d
„Zdd„Z	‡Z
S)
rzG
    Lexer for highlighting Visual Basic.net within ASP.NET pages.
    zaspx-vbz*.aspxz*.asaxz*.ascxz*.ashxz*.asmxz*.axdcstƒjttf|ŽdS)N)rrcrr
)rdre)r`rgrhrc/szVbNetAspxLexer.__init__cCs4tjd|tjƒdk	rdStjd|tjƒdk	r0dSdS)NzPage\s*Language="Vb"gš™™™™™É?zscript[^>]+language=["\']vbg333333Ã?)rrrr)r‰rgrgrhr‹2szVbNetAspxLexer.analyse_text)rirjrkrlrmrorprqrcr‹r
rgrg)r`rhr%scB@sðeZdZdZdZdZddgZdddgZd	gZd
ddd
ddddddddddddddddddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1d2d3d4d5d6d7d8d9d:d;d<d=d>d?d@dAdBdCdDdEdFdGdHdIdJdKgBZ	e	dLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd[d\d]d^d_d`dadbdcdddeg7Z	dfdgdhdidjdkdldmdndodpdqdrdsdtdudvdwdxdydzd{d|d}d~dd€dd‚dƒd„d…d†d‡dˆd‰dŠd‹dŒddŽddg+Z
d‘Zd’d“d”gZd•Z
d–Zd—d˜d™dšd›dœddždŸd d¡d¢d£d¤d¥d¦d§d¨d©dªd«d¬d­d®d¯gZd°ejfd±ejfd²ejfd³ejfgd´efdµejjfd¶ejd·fd¸efd¹eejeƒfdºeejeƒfd»ed¼fd½ed¾fd¿edÀfdÁed«fdÂeeeejƒfdÃeeeejƒfdÄeeeejƒfdÅeeeeeejƒfdÆdÇj e	ƒefdÈefdÉdÇj e
ƒe!fdÊee
efe!fdÆdÇj eƒe!j"fdÆdÇj eƒej#fdËeej$eej$ej$eƒfdÌefdÍe%j&fdÎe%j'fdÏe%j(fdÐe%j)fdÑe%j*fdÒej+fdÓej+fdÔefdÕej,d«fdÖejfg d´efdsefd×ejfdØedÙfdÚedÙfe-dكgdÛefdÜedÝfdÞedÙfd½ed¾fd¿edÀfdÁed«fdßefgdàefe.dáƒdâefdãefdäedÙfgdåefdãefdæefdäedÙfgdåefdãefdçedÙfdÁefgdèœZ/dédê„Z0dëS)ìrzG
    For the F# language (version 3.0).

    .. versionadded:: 1.5
    zF#zhttps://fsharp.org/Zfsharpzf#z*.fsz*.fsiz*.fsxz
text/x-fsharpZabstractÚasÚassertÚbaseÚbeginrXrZdelegatezdo!ZdoÚdoneZdowncastZdowntoÚelifÚelserÚ	exceptionÚexternÚfalseÚfinallyÚforÚfunctionZfunÚglobalÚifZinheritÚinlineZ	interfaceZinternalÚinZlazyzlet!ZletÚmatchÚmemberÚmoduleZmutablerYÚnewÚnullZofÚopenÚoverrideZprivateÚpublicZreczreturn!ÚreturnÚselectZstaticÚstructZthenZtoÚtrueÚtryÚtypeZupcastzuse!ZuseÚvalÚvoidÚwhenÚwhileÚwithzyield!ÚyieldZatomicÚbreakÚcheckedÚ	componentÚconstÚ
constraintÚconstructorÚcontinueÚeagerÚeventZexternalZfixedZfunctorrÚmethodZmixinÚobjectÚparallelÚprocessZ	protectedZpureZsealedZtailcallZtraitZvirtualZvolatilez!=ú#z&&rOz\(z\)z\*z\+ú,z-\.z->rKz\.\.z\.z::z:=z:>ú:z;;ú;z<-z<\]rRz>\]rSz\?\?z\?z\[<z\[\|z\[z\]Ú_ú`z\{z\|\]z\|z\}rVz<@@z<@rWz@>z@@>z[!$%&*+\./:<=>?@^|~-]ÚandÚorÚnotz[!?~]z[=<>@^|&+\*/$%-]ZsbyteZbyteÚcharZ	nativeintZ
unativeintZfloat32ZsingleÚfloatÚdoubleZint8Zuint8Zint16Zuint16Zint32Zuint32Zint64Zuint64ÚdecimalÚunitÚboolrr]ZexnÚobjÚenumz\\[\\"\'ntbrafv]z
\\[0-9]{3}z\\u[0-9a-fA-F]{4}z\\U[0-9a-fA-F]{8}z\s+z	\(\)|\[\]z \b(?<!\.)([A-Z][\w\']*)(?=\s*\.)Údottedz\b([A-Z][\w\']*)z(///.*?)(\n)z(//.*?)(\n)z
\(\*(?!\))rŒz@"Úlstringz"""Útqsrˆ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)\brPz``([^`\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]?z0[oO][0-7][0-7_]*[uU]?[yslLn]?z0[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\']*:z[A-Z][\w\']*(?=\s*\.)z[A-Z][\w\']*z#popz
[a-z_][\w\']*z	[^(*)@"]+z\(\*z#pushz\*\)z[(*)@]z[^\\"]+zescape-sequencez\\\nz\nz"B?z[^"]+z""z"""B?)zescape-sequencer[rQrŒrrRrScCs(d}d|kr|d7}d|kr$|d7}|S)zSF# doesn't have that many unique features -- |> and <| are weak
        indicators.rz|>gš™™™™™©?z<|rg)r‰rŠrgrgrhr‹ÐszFSharpLexer.analyse_textN)1rirjrkrlrmrnrorprqÚkeywordsZkeyoptsÚ	operatorsZword_operatorsZprefix_symsZ
infix_symsZ
primitivesrZEscaperrr‘ZPseudor†rZDocrr€rr	r…r
r~Újoinr
rr„rƒrr–r•r”ZBinr“r‚r’rrr^r‹rgrgrgrhr:sÒ









)'rlrrZpygments.lexerrrrrrrrr	Zpygments.tokenr
rrr
rrrrrrrZ
pygments.utilrZpygmentsrrvZpygments.lexers.htmlrÚ__all__rrrrr
rrrrgrgrgrhÚ<module>	s"(4
{3Do