
                         ^   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Jr  SSKJr  SSK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'g)z
pygments.lexers.dotnet
~~~~~~~~~~~~~~~~~~~~~~

Lexers for .net languages.

:copyright: Copyright 2006-2023 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FSharpLexerXppLexerc                      \ rS rSrSrSrSr/ SQrS/rS/r	\
R                  \
R                  -  rSS	\R                  " S
SSSS5      -   S-   S-   \R                  " S
SSSSSSSSS5
      -   S-   S\R                   " S
SSSSS5      -   S-   S-   \R                   " S
SSSSSSSSSS5      -   S-   S.r0 rSr\R)                  5        GH5  u  rrS\-   S-   \-   S-   \" \\" \5      \R8                  \\5      4S \" \\R<                  5      4S!\4S"\" \\5      4S#\ RB                  4S$\ RD                  4S%\4\#" S&5      \$4S'\$4S(\4S)\4S*\%4S+\%4S,\%RL                  4S-\'4S.\" \ RP                  \\ RP                  \ RP                  \5      4S/\" \)\\)5      4S0\)4S1\" \)\5      4S2\)RT                  4S3\" \)\5      S44S5\" \)\5      S64\\4/\\RV                  S74\," S75      /S8\S74S9\-   S:-   \RZ                  S74/S;.\\'   GM8     S< r.S=r/g>)?r      av  
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[()\[\];:,.][{}]@"(""|[^"])*"!\$?"(\\\\|\\[^\\]|[^"\\\n])*["\n]'\\.'|'[^\\]'B[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(?=\()(|\.)+rootri   rk   c                     [        US[        U R                  5      S5      nX R                  ;  a!  U R                  R                  U5      U l        OU R                  U   U l        [        R                  " U 40 UD6  g Nunicodelevelr:   	r   listtokens_all_tokens	__class__process_tokendef_tokensr   __init__selfoptionslevels      )lib/third_party/pygments/lexers/dotnet.pyr|   CSharpLexer.__init__   sb    wT[[8I7S(((>>::5ADL++E2DLD,G,    r{   N)0__name__
__module____qualname____firstlineno____doc__nameurlaliases	filenames	mimetypesre	MULTILINEDOTALLflagsunicombine	allexceptlevelsrw   token_variantsitems	levelnamecs_identr   r   r   r   r   Functionr   	Attributer   r   Single	Multiliner
   r   r   Charr   Preprocr   TypeClassr	   	Namespacer|   __static_attributes__ r   r   r   r      s   , D
;C$GI !ILL299$E "3;;tT4tDDsJD$dD$$($668<= tT4tTBCEIJdD$dD&*D$dDD GKK	F FN%||~	8 "H, 0  !$ *eDk4==*%'(
 $Xj$..%IJj)htZ89W^^,!2!23
#  
  1(; +.+&!6*5v>!6;;/56<>K'//:w!//:78 -hw
/ # %,- !(7K"@ACDKLLR'':)FP*HWj,I;W4 e3j 4::v.
 D&)x(*DNNFCs=
y  .@-r   r   c            "       l   \ rS rSrSrSrSrS/rS/rS/r	\
R                  \
R                  -  rSS	\R                  " S
SSSS5      -   S-   S-   \R                  " S
SSSSSSSSS5
      -   S-   S\R                   " S
SSSSS5      -   S-   S-   \R                   " S
SSSSSSSSSS5      -   S-   S.r0 rSr\R)                  5        GH  u  rrS\-   S-   \-   S-   \" \\" \5      \R8                  \\5      4S \" \\R<                  5      4S!\4S"\" \\5      4S#\ RB                  4S$\ RD                  4S%\4S&\" \#\\#5      S'4S(\" \#\\#5      S)4S*\#S+4S,\-   S--   \" \$\\$5      4S.\$4S/\-   \4S0\" \\5      S14S2\4S3\4S4\#4S5\#4S6\#RJ                  4S7\&4S8\&4S9\" \ RN                  \\ RN                  5      S:4S;\" \$\\$5      4S<\$4S=\" \$\5      4S>\$RP                  4S?\-   S@-   \" \\\$RP                  5      4SA\" \$\5      SB4SC\" \$\5      SD4\\4/\\RR                  SE4/SF\ RN                  4SG\4S%\SE4/SH\SE4SI\-   SJ-   \RT                  SE4/SK\#4S/\-   \4S0\" \\5      S14SL\#4SM\#SE4/SN\#4S/\-   \4S0\" \\5      S14S*\#SO4SP\#SE4/SQ\#4S*\#SO4SP\#SE4/SR\$4SS\4\\4ST\&4SU\SO4SV\SE4/SW.\\'   GM     SX r+SY r,SZr-g[)\r      ay  
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/   r0   r1   r2   r3   r4   r5   r6   r7   r8   Tr<   r=   r>   r?   r@   rA   rB   rC   rD   z(\$)(\s*)(")splice-stringz(\$)(\s*)(<#)splice-string2z<#recursive-stringz(<\[)(\s*)(z:)?z\]\>z\$z(\$)(\()splice-string-contentz[~!%^&*()+=|\[\]:;,.<>/?-]rb   rc   z"(\\\\|\\[^\\]|[^"\\\n])*["\n]re   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preprocrg   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)\brh   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+)ri   rj   rk   rl   z\w+z[ \t]+rm   rn   ro   z[^"$]z\\""z[^#<>$]#pushz#>z[^#<>]zif|matchz[~!%^&*+=|\[\]:;,.<>/?-\\"$ ]\d+\(\))rq   ri   r   rk   r   r   r   r   c                     [        US[        U R                  5      S5      nX R                  ;  a!  U R                  R                  U5      U l        OU R                  U   U l        [        R                  " U 40 UD6  g rs   ru   r}   s      r   r|   NemerleLexer.__init__0  se    wT[[8I&((((>>::5ADL++E2DLD,G,r   c                      SnSU ;   a  US-  nU$ )zMNemerle is quite similar to Python, but @if is relatively uncommon
elsewhere.r   z@ifg?r   textresults     r   analyse_textNemerleLexer.analyse_text;  s     D=cMFr   r   N).r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rw   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      s   , D
CkGI!"ILL299$E "3;;tT4tDDsJD$dD$$($668<= tT4tTBCEIJdD$dD&*D$dDD GKK	F FN%||~	8 "H, 0  !$ *eDk4==*%'(
 $Xj$..%IJj)htZ89W^^,!2!23
# (6:v"F#%!8FJ#G$& 23(*U2':w79'" !4(ht[9(* /<+&!6*2F;!6;;/*F3>GB'//:wGT -hw
G.TU: <CD !(7K"@AI  (*W4+z7<<@B6':.9*HWj,I4 {>@ 4::v. )J'
F+ D&)x(*DNNFC
 F#!4(ht[9(*&!' f%!4(ht[9(*)( V$)(! g&1;?4  W-V,&Ci
y  .X	-r   r   c                   
   \ rS rSrSrSrSrS/rS/rS/r	S\
4S	\R                  4S
\R                  S4S\4S\" \\
5      4S\4S\R$                  4S\R(                  4S\R(                  4S\4S\4S\4S\" \\
5      S4S\" \\
5      S4S\" \\
5      S4S\R.                  4S\R0                  4S\R0                  4S\R                  4S\4S \R4                  4S!\4S"\R6                  4S#\R8                  4S$\R:                  R<                  4S%\R:                  4/S
\R                  S&4S'\R                  S(4S)\R                  4S*\R                  4/S\R>                  S(4/S\R@                  S(4/S+\RB                  S(4/S,.r"S-r#g.)/r   iF  z
For Boo source code.
Boozhttps://github.com/boo-lang/boobooz*.booz
text/x-boo\s+z	(#|//).*$z/[*]commentz[]{}:(),.;[]rA   z\\z(in|is|and|or|not)\bz/(\\\\|\\[^\\]|[^/\\\s])/z@/(\\\\|\\[^\\]|[^/\\])*/ra   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+)rk   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[*]/rl   z[^/*]z[*/]z[a-zA-Z_][\w.]*)rq   r   r   r   rk   r   N)$r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   Wordr   Regexr   r   BuiltinDoubler   FloatOctHexIntegerLongr   r   r   rw   r   r   r   r   r   r   F  s     D
+CgG	II Z 7>>*g''3k*(445DM$hmm4)6<<8)6<<8,h7! #*+ "7+HWj9:Fhw
;[I (7J"?M  "&	/
 %fmm4(&--8(&--8d#5v||D'0fjj!

+fnn))*V^^$I%
N W&&0W&&/g''(W&&'	
 dmmV4
 djj&1
  8
g6Fr   r   c                      \ rS rSrSrSrSr/ SQrSS/rSS	/r	S
\
R                  " SSSS5      -   S-   S-   \
R                  " SSSSSSSSS5	      -   S-   r\R                  \R                  -  rS\R$                  4S\4S\4S\" \\5      4S\" \\5      4S\R,                  4S\4S\" \R2                  \\R2                  \\R2                  5      4\" SS S!S"9\4S#\S$4S%\S&4S'\" \\5      S(4S)\" \\5      S*4S+\" \\5      S,4S-\R6                  4S.\R:                  4S/\4S0\S14S2\" \\5      4\S3-   \4S4\ RB                  4S5\"RF                  4S6\"RH                  4S7\"RH                  4S8\"RH                  4/S9\4S:\S;4S<\4/\\RJ                  S;4\&" S;5      /\\RN                  S;4/\\RP                  S;4/\\RR                  4S=\RR                  4\&" S;5      /S\4S>\S;4\&" S;5      /S?.r*S@ r+SAr,gB)Cr   i  zc
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/   r0   r1   r2   r3   z	^\s*<.*?>r   rD   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(?<!\.)\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+)rk   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?rl   [^"]+\.z?(Function|Sub|Property|Class|Structure|Enum|Module|Namespace)\b)rq   r@  r?  r   r   rk   r>  c                 \    [         R                  " SU [         R                  5      (       a  gg )Nz^\s*(#If|Module|Namespace)g      ?)r   searchr   r   s    r   r   VbNetLexer.analyse_text  s#    992D",,GG Hr   r   N)-r   r   r   r   r   r   r   r   r   r   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   rw   r   r   r   r   r   r   r     s   
 D
AC<G!I.Ickk$dD99C?[[tT4t!%tT3359:H LL2==(E 4>>*Z J* =>HWj9:= __ [)%g)):w7J7J '"5"578  ?& %U'4& 6='>( gu-$gu53gz*J82gz*K96gz*K9"<<)()18+ &(#$
34#T*gll#2FLLA'8/@,fnn=u;
z FOVV$v
 t}}f-FO

 t}}f-
 tzz6*
 t~~&DNN#FO
 Z OfFO	
cWFrr   r   c            
           \ rS rSrSrSr/ r/ r\R                  r
SS\" \R                  \\R                  5      4S\" \" \5      \\" \5      5      4S\" \5      4S\" \5      4/0rS	rg
)GenericAspxLexeri  z
Lexer for ASP.NET pages.
zaspx-genrq   z(<%[@=#]?)(.*?)(%>)z(<script.*?>)(.*?)(</script>)z
(.+?)(?=<)z.+r   N)r   r   r   r   r   r   r   r   r   r   r   r   r   Tagr   r   r   rw   r   r   r   r   rN  rN    s     DIIIIE 	#Xdhhtxx%HI-xh8=8=h0I J E(O,E(O$
	Fr   rN  c                   H   ^  \ rS rSrSrSrS/r/ SQr/ rU 4S jr	S r
SrU =r$ )r   i  z1
Lexer for highlighting C# within ASP.NET pages.
zaspx-csz*.aspxz*.asaxz*.ascxz*.ashxz*.asmxz*.axdc                 :   > [         TU ]  " [        [        40 UD6  g N)superr|   r   rN  r~   r   ry   s     r   r|   CSharpAspxLexer.__init__  s    &6B'Br   c                     [         R                  " SU [         R                  5      b  g[         R                  " SU [         R                  5      b  gg )NzPage\s*Language="C#"皙?zscript[^>]+language=["\']C#333333?r   rE  IrF  s    r   r   CSharpAspxLexer.analyse_text  >    99,dBDD9EYY5tRTTBN Or   r   r   r   r   r   r   r   r   r   r   r|   r   r   __classcell__ry   s   @r   r   r     s0     DkGKIIC r   r   c                   H   ^  \ rS rSrSrSrS/r/ SQr/ rU 4S jr	S r
SrU =r$ )r   i%  z?
Lexer for highlighting Visual Basic.net within ASP.NET pages.
zaspx-vbrQ  c                 :   > [         TU ]  " [        [        40 UD6  g rS  )rT  r|   r   rN  rU  s     r   r|   VbNetAspxLexer.__init__/  s    %5AAr   c                     [         R                  " SU [         R                  5      b  g[         R                  " SU [         R                  5      b  gg )NzPage\s*Language="Vb"rX  zscript[^>]+language=["\']vbrY  rZ  rF  s    r   r   VbNetAspxLexer.analyse_text2  r]  r   r   r^  r`  s   @r   r   r   %  s0     DkGKIIB r   r   c                      \ rS rSrSrSrSrSS/r/ SQrS/r	/ S	Qr
\
/ S
Q-  r
/ SQrSr/ SQrSrSr/ SQrS\R$                  4S\R$                  4S\R$                  4S\R$                  4// S\4PS\R*                  R,                  4PS\R.                  S4PS\4PS\" \R2                  \5      4PS\" \R6                  \5      4PS\S4PS\S4PS \S!4PS"\S#4PS$\" \\\R.                  5      4PS%\" \\\R:                  5      4PS&\" \\\R<                  5      4PS'\" \\\\\R@                  5      4PS(S)RC                  \
5      -  \4PS*\4PS+S)RC                  \5      -  \"4PS,\< S)\< S-\< 3\"4PS(S)RC                  \5      -  \"RF                  4PS(S)RC                  \5      -  \RH                  4PS.\" \RJ                  \\RJ                  \RJ                  \5      4PS/\4PS0\&RN                  4PS1\&RP                  4PS2\&RR                  4PS3\&RT                  4PS4\&RV                  4PS5\RX                  4PS6\RX                  4PS7\4PS8\RZ                  S#4PS9\R:                  4PS\4S:\4S;\R.                  4S<\S=4S>\S=4\." S=5      /S?\4S@\SA4SB\S=4S\S4S \S!4S"\S#4SC\4/SD\4\/" SE5      SF\4SG\4SH\S=4/SI\4SG\4SJ\4SH\S=4/SI\4SG\4SK\S=4S"\4/SL.r0SM r1SNr2gO)Pr   i:  z;
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beginri   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mutablerk   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)+rK   #rM   rX   r   r   z\*z\+,z-\.z->rT   z\.\.rC  z::z:=z:>:z;;;z<-z<\]r[   z>\]r\   z\?\?z\?z\[<z\[\|z\[z\]_`z\{z\|\]z\|z\}r_   z<@@z<@r`   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@  rv   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)\brY   z``([^`\n\r\t]|`[^`\n\r\t])+``z(%s)rn   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\']*:rC  z[A-Z][\w\']*(?=\s*\.)z[A-Z][\w\']*rl   z[a-z_][\w\']*z	[^(*)@"]+z\(\*r   z\*\)z[(*)@]z[^\\"]+escape-sequencez\\\nrD   z"B?rB  rA  z"""B?)r  rq   r  r   r@  r  r  c                 6    SnSU ;   a  US-  nSU ;   a  US-  nU$ )zKF# doesn't have that many unique features -- |> and <| are weak
indicators.r   z|>g?z<|r   r   s     r   r   FSharpLexer.analyse_text  s.     4<dNF4<dNFr   r   N)3r   r   r   r   r   r   r   r   r   r   keywordskeyopts	operatorsword_operatorsprefix_syms
infix_syms
primitivesr   Escaper   r   r   Pseudor   r   Docr   r   r   rL  r   r   r   joinr   r   r   r   r   r   r   r   Binr   r   r   r	   r   rw   r   r   r   r   r   r   r   :  s    D
CG*I !I
H   HG )I)NK$JJ !&--0FMM*!6==1!6==1	
1
Z 1
4<<../1
 1^^X'1

 !$'1
 hvzz:>?1
 XgnnjAB1
 GY/1
 FI&1
 VU#1
 68$1
 -gz4>>:<1
  $gz4==9;!1
$ #gz4::68%1
( 7gz4dmmLN)1
, 388H--w7-1
. .t4/1
0 sxx(((311
2 )+yA8L31
4 388N33X]]C51
6 388J//>71
8 Lgooz7??ooz3491
@ t$A1
D .v~~>E1
F >vzzJG1
H /

;I1
J -fjj9K1
L @\\M1
R J[[S1
V V[[!W1
X 7OY1
\ V]]H-]1
` "4==1a1
f Z K %t~~6dF+tV,FO
 7#gw'gv&FI&VU#68$ 	
  %&fFOVV$
 vFOFOVV$	
 vFOvv&6N	
s_FB	r   r   c                       \ rS rSrSrSrSrSS/rS/r\	R                  rS\R                  " S	S
SSSS5      -   S-   S-   \R                  " S	S
SSSSSSSSS5      -   S-   r\R                  SS5      rSrSrSrSr0 rS\" \\\" \5      5      4S\-   S-   \-   S -   \" \\" \5      \R6                  \\5      4S!\" \\R:                  \R<                  R>                  \R:                  5      4S"\4S#\" \ \5      4S$\!RD                  4S%\!RF                  4S&\4\$" \5      \%4S'\%4S(\4S)\4S*\&4S+\&4S,\&RN                  4S-\(4\$" \S.S/9\4S0\RR                  4S1\" \\5      S24S3\-   S4-   \" \R<                  R>                  \5      4S5\" \\R<                  R>                  \" \5      5      4S6\-   S7-   \-   S8-   \" \" \5      \R<                  R>                  \" \5      \RT                  \" \5      5      4S9\-   S8-   \" \" \5      \R<                  R>                  \" \5      5      4\$" \S:S/9\R6                  RV                  4\$" \S:S/9\R6                  RV                  4\\4/\\R>                  S;4\," S;5      /S:\ S;4S3\-   S<-   \RZ                  S;4/S=.rS>r.g?)@r    i  zW
For X++ source code. This is based loosely on the CSharpLexer

.. versionadded:: 2.15
zX++zchttps://learn.microsoft.com/en-us/dynamics365/fin-ops-core/dev-itpro/dev-ref/xpp-language-referencexppzx++z*.xppr4   r'   r(   r)   r*   r5   r+   r6   r7   r.   r/   r0   r1   r2   r3    )rE   rF   rG   rH   rI   rJ   rK   rL   rM   rN   rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rY   rZ   r[   r\   r]   r^   r_   r`   )_rh  anytyperi  asyncascatavgr  
breakpointbybyrefcasecatchchangecompanyclient	containerr  countcrosscompanyr	   rm  delete_fromdescdisplaydivrn  editrs  elementeventhandlerexistsrv  final	firstfast	firstonlyfirstonly10firstonly100firstonly1000flushrx  forceliteralsforcenestedloopforceplaceholdersforceselectorder	forupdatefromgroupr|  insert_recordsetr  isr  likemaxofminofmodr  nextnofetch	notexistsr  optimisticlockorderouterpausepessimisticlockprintr  r  r  repeatablereadretryr  reverser  serversettingr  sumrT  switch	tablelockr   throwr  r  ttsabortttsbegin	ttscommitupdate_recordsetvalidtimestater  wherer  window)	_durationabsacosany2Dateany2Enumany2Guidany2Int	any2Int64any2Realany2Str	anytodate	anytoenum	anytoguidanytoint
anytoint64	anytorealanytostrasinatanbeepcTermchar2Num
classIdGetcorrFlagGetcorrFlagSetcoscoshcurExt	curUserIddate2Numdate2Strdatetime2StrdayNamedayOfMthdayOfWkdayOfYrddbdecRounddgdimOfendMthenum2strexpexp10fVfieldId2NamefieldId2PNamefieldName2IdfracfuncNamegetCurrentPartitiongetCurrentPartitionRecId	getPrefixguid2StridgindexId2NameindexName2Idint2Str	int642StrintvMaxintvNameintvNointvNormlog10logNr  maxminmkDatemthNamemthOfYrnewGuidnextMthnextQtrnextYrnum2Charnum2Datenum2StrpmtpowerprevMthprevQtrprevYrprmIsDefaultptpvraterefPrintAllroundrunAs	sessionId	setPrefixsinsinhsleepslnstr2Datestr2Datetimestr2Enumstr2Guidstr2Int	str2Int64str2Numstr2TimestrAlphastrCmp	strColSeqstrDelstrFindstrFmtstrInsstrKeepstrLTrimstrLenstrLinestrLwrstrNFindstrPoke	strPromptstrRTrimstrRemstrRepstrScanstrUprsubStrsydsystemDateGetsystemDateSettableId2NametableId2PNametableName2Idtantanhtermtime2StrtimeNowtodaytrunctypeOfuint2StrwkOfYryear)MattributeStrclassNumclassStrconfigurationKeyNumconfigurationKeyStrdataEntityDataSourceStrdelegateStrdimensionHierarchyLevelStrdimensionHierarchyStrdimensionReferenceStrdutyStrenumCntenumLiteralStrenumNumenumStrextendedTypeNumextendedTypeStrfieldNum
fieldPNamefieldStrformControlStrformDataFieldStrformDataSourceStrformMethodStrformStridentifierStrindexNumindexStrlicenseCodeNumlicenseCodeStr
literalStrmaxDatemaxInt
measureStrmeasurementStrmenuItemActionStrmenuItemDisplayStrmenuItemOutputStrmenuStr	methodStrminIntprivilegeStrqueryDatasourceStrqueryMethodStrqueryStr	reportStrresourceStrroleStrssrsReportStrstaticDelegateStrstaticMethodStrtableCollectionStrtableFieldGroupStrtableMethodStrtableNum
tablePNametableStaticMethodStrtableStrtileStrvarStrwebActionItemStrwebDisplayContentItemStr
webFormStr
webMenuStrwebOutputContentItemStrwebReportStrwebSiteTempStrwebStaticFileStrwebUrlItemStrwebWebPartStrwebletItemStrwebpageDefStrwebsiteDefStrworkflowApprovalStrworkflowCategoryStrworkflowTaskStrworkflowTypeStrz(\s*)\b(else|if)\b([^\n])r<   r=   r>   z^(\s*)(\[)([^\n]*?)(\])r@   rA   z//[^\n]*?\nz/[*][^\n]*?[*]/rD   ra   z[()\[\];:,.#@]rb   rc   rd   re   rf   r;  )r=  z+(boolean|int|int64|str|real|guid|date)\b\??z&(class|struct|extends|implements)(\s+)ri   rn   z)(::)z(\s*)(\w+)(\s+\w+(,|=)?[^\n]*;)z(fieldNum\()(z)(\s*,\s*)(z)(\s*\))z(tableNum\()(rm   rl   ro   rp   r   N)/r   r   r   r   r   r   r   r   r   r   r   r   r   r   	XPP_CHARSreplace	OPERATORSKEYWORDSRUNTIME_FUNCTIONSCOMPILE_FUNCTIONSrw   r   r   r   r   r   r   r   r   r   rL  r   r   r   r   r   r
   r   r   r   r   r   PropertyMagicr	   r   r   r   r   r   r    r      s\    D
oCenG	ILLEtT4tTBCEIJdD$dD&*D$dDD GKKI !!&&1II
bHN	L F
 *8Jt+UV	) -  !$ U4[$--#%&
 (*dnndmmNaNacgcqcq)rs*%(445W^^,!2!23J9x(,h7,k"v&16:v{{+45;=8E*G4;W\\J6*8UW^_)^G#Xdmm.A.A;%OP/*dmmFYFY[`ae[f1ghi'6y@Ltdmm&9&95;W\]aWbce i'3tdmm&9&95;GI$Y79L9LM$Y79L9LMI%
N 

F+FO

 f%9_x'@
W/Fr   r    )(r   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   rN  r   r   r   r    r   r   r   <module>r     s    
     5 5 5 5 ( % )Kx-* x-vo: odAz AHl l^z 0o (_ *_* _Dmz mr   