a
    ñ»j�  ã                   @   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&G dd„ deƒZ'dS )zÎ
    pygments.lexers.dotnet
    ~~~~~~~~~~~~~~~~~~~~~~

    Lexers for .net languages.

    :copyright: Copyright 2006-present 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                   @   sn  e Zd ZdZdZdZg d¢ZdgZdgZdZ	e
j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edƒ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e$d'ƒe%fd(e%fd)efd*efd+e&fd,e&fd-e&fd.e&fd/e&j'fd0e(fd1ee!j)ee!j)e!j)eƒfd2ee*ee*ƒfe$d3d4d5�e*fd6ee*ee*ƒfd7ee*eƒfd8e*j+fd9ee*eƒd:fd;ee*eƒd<feefgd=e(j,fd>e(j-fd?e(j.fgd@e(j/fgedAƒedBƒgeej0dCfe1dCƒgdDe dCfdEe dF ej2dCfgdGœee< qÌdHdI„ Z3dJS )Kr   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Únumbersú^([ \t]*)((?:ú(?:\[\])?\s+)+?)(ú
)(\s*)(\()ú^(\s*)(\[.*?\])ú[^\S\n]+ú(\\)(\n)ú//.*?\nú/[*].*?[*]/ú\n)(z>>>=z>>=z<<=ú<=ú>=ú+=ú-=ú*=ú/=z%=z&=z|=z^=z??=z=>z??z?.ú!=ú==ú&&ú||z>>>ú>>ú<<ú++ú--ú+ú-Ú*ú/ú%ú&ú|ú^ú<ú>ú?ú!ú~ú=ú=~|!=|==|<<|>>|[-+/*%=<>&^|]z[()\[\];:,.]ú[{}]z\$*"{3,}.*?"{3,}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)\b)aÚabstractÚasÚasyncÚawaitÚbaseÚbreakÚbyÚcaseÚcatchÚcheckedÚconstÚcontinuer   ÚdelegateÚdoÚelseÚenumÚeventÚexplicitÚexternÚfalseÚfinallyÚfixedÚforÚforeachÚgotoÚifZimplicitÚinÚ	interfaceÚinternalÚisÚletÚlockÚnewÚnullÚonÚoperatorÚoutÚoverrideÚparamsÚprivateÚ	protectedÚpublicÚreadonlyÚrefÚreturnÚsealedÚsizeofZ
stackallocÚstaticÚswitchr   ÚthrowÚtrueÚtryÚtypeofÚ	uncheckedÚunsafeÚvirtualÚvoidÚwhileÚgetÚsetr‡   ÚpartialÚyieldÚaddÚremoveÚvalueÚaliasZ	ascendingZ
descendingÚfromÚgroupZintoZorderbyÚselectZthenbyÚwhereÚjoinÚequalsÚrecordZallowsÚandÚinitZmanagedZnameofZnintÚnotZnotnullZnuintÚorZscopedZ	unmanagedÚwhenÚwithú\b©Úsuffixz;(file)(\s+)(record|class|abstract|enum|new|sealed|static)\bú(global)(::)zk(bool|byte|char|decimal|double|dynamic|float|int|long|object|sbyte|short|string|uint|ulong|ushort|var)\b\??z(class|struct|union)(\s+)Úclassú(namespace|using)(\s+)Ú	namespacez)0[xX][0-9a-fA-F]+(([uU][lL]?)|[lL][uU]?)?z"0[bB][01]+(([uU][lL]?)|[lL][uU]?)?z[0-9]+(([uU][lL]?)|[lL][uU]?)?z…([0-9]+\.[0-9]+([eE][+-]?[0-9]+)?[fFdDmM]?)|(\.[0-9]+([eE][+-]?[0-9]+)?[fFdDmM]?)|([0-9]+([eE][+-]?[0-9]+)[fFdDmM]?)|([0-9]+[fFdDmM])Únumbers_floatÚnumbers_intú#popú(?=\()ú(ú|\.)+)Úrootr¾   r½   r:   rº   r¼   c                 K   sP   t |dt| jƒdƒ}|| jvr.| j |¡| _n| j| | _tj| fi |¤Ž d S ©NZunicodelevelr8   ©	r   ÚlistÚtokensÚ_all_tokensÚ	__class__Úprocess_tokendefÚ_tokensr   Ú__init__©ÚselfÚoptionsÚlevel© rÑ   ú<E:\soccer\ml_env\Lib\site-packages\pygments/lexers/dotnet.pyrÌ   §   s
    
zCSharpLexer.__init__N)4Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚnameÚurlÚaliasesÚ	filenamesÚ	mimetypesÚversion_addedÚreÚ	MULTILINEÚDOTALLÚflagsÚuniÚcombineÚ	allexceptÚlevelsrÇ   Útoken_variantsÚitemsÚ	levelnameÚcs_identr   r   r   r   r   r   ÚFunctionr
   Ú	Attributer   r   ÚSingleÚ	Multiliner	   r   r   ÚCharr   ÚPreprocr   ÚTypeÚHexÚBinÚIntegerÚFloatÚClassr   Ú	NamespacerÌ   rÑ   rÑ   rÑ   rÒ   r      sØ   ÿÿÿþÿÿþ
ÿþýû
ÿÿÿýûÿÿþÿîî
ÿÿÀCýýÿþ
þþª\r   c                !   @   s:  e Zd ZdZdZdZdgZdgZdgZdZ	e
j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 �]X\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d0eeeƒd1fd2efd3efd4e#fd5e#fd6e#j%fd7e&fd8e&fd9ee j'ee j'ƒd:fd;ee$ee$ƒfe(d<d=d>�e$fd?ee$eƒfd@e$j)fdAe dB eeee$j)ƒfdCee$eƒdDfdEee$eƒdFfeefgeej*dGfgdHe j'fdIefd%edGfgdJedGfdKe dL ej+dGfgdMe#fd/e efd0eeeƒd1fdNe#fdOe#dGfgdPe#fd/e efd0eeeƒd1fd*e#dQfdRe#dGfgdSe#fd*e#dQfdRe#dGfgdTe$fdUefeefdVe&fdWedQfdXedGfgdYœee< qÊdZd[„ Z,d\d]„ Z-d^S )_r   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``.
    ÚNemerlezhttp://nemerle.orgÚnemerlez*.nztext/x-nemerleú1.5r#   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@   rA   rB   rC   z(\$)(\s*)(")úsplice-stringz(\$)(\s*)(<#)úsplice-string2z<#úrecursive-stringz(<\[)(\s*)(z:)?z\]\>z\$z(\$)(\()úsplice-string-contentz[~!%^&*()+=|\[\]:;,.<>/?-]ra   rb   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Úpreprocrf   )Irg   r°   rh   rk   ro   Údefrs   rv   rw   ry   rz   r{   ÚfunZ
implementsr‚   rƒ   r„   ÚmacroÚmatchÚmatchesÚmoduleÚmutabler‡   rˆ   r‹   rŒ   r�   r£   rŽ   r�   r�   r’   r”   r–   Úsyntaxr   r˜   r™   rš   Útyper›   rž   Úvolatiler´   r¬   rµ   ÚassertZassert2ri   rl   rp   rr   rt   ru   Zensuresr}   r~   r€   Zlater†   r‡   ZnolateÚ	otherwiseÚregexpÚrepeatÚrequiresr“   Zsurroundwithrœ   Úunlessr   r    r¤   r¶   r·   r¹   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+)rº   r»   r¼   r¿   z\w+z[ \t]+rÀ   rÁ   rÂ   z[^"$]z\\"ú"z[^#<>$]ú#pushz#>z[^#<>]zif|matchz[~!%^&*+=|\[\]:;,.<>/?-\\"$ ]ú\d+ú\(ú\))rÃ   rº   rý   r¼   rù   rú   rû   rü   c                 K   sP   t |dt| jƒdƒ}|| jvr.| j |¡| _n| j| | _tj| fi |¤Ž d S rÄ   rÅ   rÍ   rÑ   rÑ   rÒ   rÌ   R  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_text]  s    zNemerleLexer.analyse_textN).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   ²   s  ÿÿÿþÿÿþ
ÿþýû
ÿÿÿýÿÿ

ÿ

ÿþððþ
ÿ
ÿ
ÿ¾E
ÿýþ

ÿú	

ÿú	ýúšpr   c                   @   sb  e Zd ZdZdZdZdgZdgZdgZd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edd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 )0r   z
    For Boo source code.
    ÚBoozhttps://github.com/boo-lang/booÚbooz*.booz
text/x-boor"   ú\s+z	(#|//).*$z/[*]Úcommentz[]{}:(),.;[]r@   z\\z(in|is|and|or|not)\bz/(\\\\|\\[^\\]|[^/\\\s])/z@/(\\\\|\\[^\\]|[^/\\])*/r`   )5rh   rg   ÚcallableÚconstructorZ
destructorrt   Úimportrv   rw   Úfinalr¡   r‚   rƒ   ÚofrŒ   r£   rŽ   r�   r�   r“   r¢   r–   ÚstructÚ	transientrž   r¤   Úsuperr°   rl   Úcastrr   Úelifru   ZensureÚexceptr}   Úgivenr   r€   r�   r„   Zisar²   r³   r	  ÚpassÚraiser’   rš   r  r´   r    r©   r¶   r·   z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)$rÓ   rÔ   rÕ   rÖ   r×   rØ   rÙ   rÚ   rÛ   rÜ   r   r   rë   rì   r
   r   r   r   ÚWordr   ÚRegexr	   r   r   ÚBuiltinÚDoubler   ró   ÚOctrð   rò   ÚLongré   rô   rõ   rÇ   rÑ   rÑ   rÑ   rÒ   r   h  sh   
õõü
×,

ü
ÿ
ÿ
ÿÈr   c                   @   sø  e Zd ZdZdZdZg d¢ZddgZddgZd	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d0ed1fd2eeeƒfed3 efd4e j!fd5e"j#fd6e"j$fd7e"j$fd8e"j$fgd9efd:e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ed>d!d?�ed;fe&d;ƒgd@œZ*dAdB„ Z+dCS )Dr   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visual-basicÚvisualbasicz*.vbz*.basztext/x-vbnetz
text/x-vbar"   z[_r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   z	^\s*<.*?>r  rC   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))lZ
AddHandlerZAliasZByRefZByValÚCallZCaseZCatchZCBoolZCByteZCCharZCDateZCDecZCDblZCIntZCLngZCObjÚContinueZCSByteZCShortZCSngZCStrZCTypeZCUIntZCULngZCUShortZDeclareZDefaultZDelegateZ
DirectCastZDoZEachZElseZElseIfZEndIfZEraseÚErrorÚEventZExitÚFalseZFinallyÚForZFriendZGetÚGlobalZGoSubZGoToZHandlesÚIfZ
ImplementsZInheritsZ	InterfaceZLetÚLibZLoopZMeZMustInheritZMustOverrideZMyBaseZMyClassZ	NarrowingZNewZNextÚNotZNothingZNotInheritableZNotOverridableZOfZOnr   ÚOptionÚOptionalZ	OverloadsZOverridableZ	OverridesZ
ParamArrayZPartialZPrivateZ	ProtectedZPublicZ
RaiseEventZReadOnlyZReDimZRemoveHandlerZResumeÚReturnZSelectÚSetZShadowsZSharedrë   ZStaticZStepZStopZSyncLockZThenZThrowÚToÚTrueÚTryZTryCastZWendZUsingZWhenÚWhileZWideningÚWithZ
WithEventsZ	WriteOnlyz(?<!\.)r¶   )Úprefixr¸   z(?<!\.)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¿   ú[^"]+ú\.)ré   ÚSubÚPropertyrô   Ú	StructureÚEnumÚModulerõ   r·   )rÃ   rL  rK  r)  r*  r¼   rJ  c                 C   s   t  d| t j¡rdS d S )Nz^\s*(#If|Module|Namespace)g      à?)rÝ   ÚsearchrÞ   ©r  rÑ   rÑ   rÒ   r    s    zVbNetLexer.analyse_textN),rÓ   rÔ   rÕ   rÖ   r×   rØ   rÙ   rÚ   rÛ   rÜ   rá   râ   Z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õ   rÇ   r  rÑ   rÑ   rÑ   rÒ   r   ²  s´   ÿÿÿþýÿþíí
ÿ
ÿ
ÿþÿþ
Æ=ý
þ
ÿ
ÿýÿþû¯Zr   c                   @   sj   e Zd ZdZdZg Zg Zd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-genú.https://dotnet.microsoft.com/en-us/apps/aspnetrÃ   z(<%[@=#]?)(.*?)(%>)z(<script.*?>)(.*?)(</script>)z
(.+?)(?=<)z.+N)rÓ   rÔ   rÕ   rÖ   r×   rÚ   rÛ   rØ   rÝ   rß   rà   r   r   ÚTagr   r   r   rÇ   rÑ   rÑ   rÑ   rÒ   r[  #  s    
þ

úÿr[  c                       sF   e Zd ZdZdZdgZg d¢Zg ZdZd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*.axdr\  r"   c                    s   t ƒ jttfi |¤Ž d S ©N)r"  rÌ   r   r[  ©rÎ   rÏ   ©rÉ   rÑ   rÒ   rÌ   H  s    zCSharpAspxLexer.__init__c                 C   s4   t  d| t j¡d urdS t  d| t j¡d ur0dS d S )NzPage\s*Language="C#"çš™™™™™É?zscript[^>]+language=["\']C#ç333333Ã?©rÝ   rU  ÚIrV  rÑ   rÑ   rÒ   r  K  s    zCSharpAspxLexer.analyse_text©rÓ   rÔ   rÕ   rÖ   r×   rÙ   rÚ   rÛ   rØ   rÜ   rÌ   r  Ú__classcell__rÑ   rÑ   ra  rÒ   r   <  s   r   c                       sF   e Zd ZdZdZdgZg d¢Zg ZdZdZ	‡ fdd„Z
dd	„ Z‡  ZS )
r   zG
    Lexer for highlighting Visual Basic.net within ASP.NET pages.
    zaspx-vbr^  r\  r"   c                    s   t ƒ jttfi |¤Ž d S r_  )r"  rÌ   r   r[  r`  ra  rÑ   rÒ   rÌ   ^  s    zVbNetAspxLexer.__init__c                 C   s4   t  d| t j¡d urdS t  d| t j¡d ur0dS d S )NzPage\s*Language="Vb"rb  zscript[^>]+language=["\']vbrc  rd  rV  rÑ   rÑ   rÒ   r  a  s    zVbNetAspxLexer.analyse_textrf  rÑ   rÑ   ra  rÒ   r   R  s   r   c                "   @   sÐ  e Zd ZdZdZdZddgZg d¢ZdgZd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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› d)e› d-e› �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d0e'j(fd1e'j)fd2e'j*fd3e'j+fd4e'j,fd5ej-fd6ej-fd7efd8ej.d#fd9ejfg defd:efd;ejfd<ed=fd>ed=fe/d=ƒgd?efd@edAfdBed=fdedfd ed!fd"ed#fdCefgdDefe0dEƒdFefdGefdHed=fgdIefdGefdJefdHed=fgdIefdGefdKed=fd"efgdLœZ1dMdN„ Z2dOS )Pr   z,
    For the F# language (version 3.0).
    zF#zhttps://fsharp.org/Úfsharpzf#)z*.fsz*.fsiz*.fsxztext/x-fsharprø   )Brg   rh   r  rk   Úbeginrº   r   rs   zdo!rt   ÚdoneZdowncastZdowntor$  ru   rJ  Ú	exceptionry   rz   r{   r}   Úfunctionrÿ   Úglobalr€   ÚinheritÚinliner‚   rƒ   r�   Zlazyzlet!r…   r  Úmemberr  r  r¼   r‡   rˆ   r  ÚopenrŒ   rŽ   r�   Zreczreturn!r“   r«   r–   r   ZthenÚtor™   rš   r  Zupcastzuse!ZuseÚvalrŸ   r´   r    rµ   zyield!r¤   )Zatomicrl   rp   Ú	componentrq   Ú
constraintr  rr   Úeagerrw   Zexternalr|   Zfunctorr   ÚmethodZmixinÚobjectÚparallelÚprocessr�   Zpurer”   ZtailcallZtraitrž   r  )+rJ   ú#rL   rW   r  r  z\*z\+ú,z-\.z->rS   z\.\.rO  z::z:=z:>ú:z;;ú;z<-z<\]rZ   z>\]r[   z\?\?z\?z\[<z\[\|z\[z\]Ú_ú`z\{z\|\]z\|z\}r^   z<@@z<@r_   z@>z@@>z[!$%&*+\./:<=>?@^|~-])r°   r³   r²   z[!?~]z[=<>@^|&+\*/$%-])ZsbyteÚbyteÚcharZ	nativeintZ
unativeintZfloat32ÚsingleÚfloatÚdoubleZint8Zuint8Zint16Zuint16Zint32Zuint32Zint64Zuint64ÚdecimalÚunitÚboolrL  rÆ   ZexnÚobjrv   z\\[\\"\'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  rL  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({})\brX   z``([^`\n\r\t]|`[^`\n\r\t])+``z({})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\']*:rO  z[A-Z][\w\']*(?=\s*\.)z[A-Z][\w\']*r¿   z[a-z_][\w\']*z	[^(*)@"]+z\(\*r  z\*\)z[(*)@]z[^\\"]+úescape-sequencez\\\nrC   z"B?rN  rM  z"""B?)rŽ  rÃ   rŠ  r  rL  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)3rÓ   rÔ   rÕ   rÖ   r×   rØ   rÙ   rÚ   rÛ   rÜ   ÚkeywordsZkeyoptsÚ	operatorsZword_operatorsZprefix_symsZ
infix_symsZ
primitivesr   ÚEscaper   r   r-  ÚPseudorõ   r   ÚDocr   rë   r   rZ  rô   r
   ré   Úformatr­   r   r+  rï   rî   r   rò   rð   r/  rñ   ró   rí   r.  r   r   rÇ   r  rÑ   rÑ   rÑ   rÒ   r   i  sÐ   ü
ÿÿÿÿÿÿÿÿÿ
Ð3ù
øûüü§ar   c                   @   sJ  e Zd ZdZdZdZddgZdgZdZe	j
Zde d	d
dddd¡ d d e d	d
ddddddddd¡ d Ze dd¡ZdZdZdZdZi Zdeeeeeƒƒfde d e d  eeeeƒejeeƒfd!eeejejjejƒfd"efd#ee eƒfd$e!j"fd%e!j#fd&efe$eƒe%fd'e%fd(efd)efd*e&fd+e&fd,e&j'fd-e(fe$ed.d/�efd0ej)fd1eeeƒd2fd3e d4 eejjeƒfd5eeejjeeƒƒfd6e d7 e d8 eeeƒejjeeƒej*eeƒƒfd9e d8 eeeƒejjeeƒƒfe$ed:d/�ejj+fe$ed:d/�ejj+feefgeejd;fe,d;ƒgd:e d;fd3e d< ej-d;fgd=œZd>S )?r   zG
    For X++ source code. This is based loosely on the CSharpLexer
    zX++zchttps://learn.microsoft.com/en-us/dynamics365/fin-ops-core/dev-itpro/dev-ref/xpp-language-referenceÚxppzx++z*.xppz2.15r2   r%   r&   r'   r(   r3   r)   r4   r5   r,   r-   r.   r/   r0   r1   ú ú)rD   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_   )_rg   Zanytyperh   ri   ÚascÚatZavgrl   Ú
breakpointrm   Úbyrefrn   ro   ZchangecompanyÚclientÚ	containerrr   ÚcountZcrosscompanyr   rs   Zdelete_fromÚdescÚdisplayÚdivrt   Zeditru   ÚelementZeventhandlerÚexistsrz   r  Z	firstfastZ	firstonlyZfirstonly10Zfirstonly100Zfirstonly1000Úflushr}   ZforceliteralsZforcenestedloopZforceplaceholdersZforceselectorderZ	forupdater©   rª   r€   Zinsert_recordsetr‚   r„   r­   ZlikeZmaxofZminofÚmodr‡   ÚnextZnofetchZ	notexistsrˆ   ZoptimisticlockÚorderÚouterZpauseZpessimisticlockÚprintrŽ   r�   r�   ZrepeatablereadÚretryr“   Úreverser«   ÚserverZsettingr–   Úsumr"  r—   Z	tablelockr   r˜   r™   rš   ZttsabortZttsbeginZ	ttscommitZupdate_recordsetZvalidtimestaterŸ   r¬   r    Zwindow)ŽZ	_durationÚabsÚacosZany2DateZany2EnumZany2GuidZany2IntZ	any2Int64Zany2RealZany2StrZ	anytodateZ	anytoenumZ	anytoguidZanytointZ
anytoint64Z	anytorealZanytostrÚasinÚatanZbeepZcTermZchar2NumZ
classIdGetZcorrFlagGetZcorrFlagSetÚcosÚcoshZcurExtZ	curUserIdZdate2NumZdate2StrZdatetime2StrZdayNameZdayOfMthZdayOfWkZdayOfYrZddbZdecRoundÚdgZdimOfZendMthZenum2strÚexpZexp10ZfVZfieldId2NameZfieldId2PNameZfieldName2IdÚfracÚfuncNameZgetCurrentPartitionZgetCurrentPartitionRecIdZ	getPrefixZguid2StrZidgZindexId2NameZindexName2IdZint2StrZ	int642StrZintvMaxZintvNameZintvNoZintvNormÚlog10ZlogNr  ÚmaxÚminZmkDateZmthNameZmthOfYrZnewGuidZnextMthZnextQtrZnextYrZnum2CharZnum2DateZnum2StrZpmtÚpowerZprevMthZprevQtrZprevYrZprmIsDefaultÚptÚpvZrateZrefPrintAllÚroundZrunAsZ	sessionIdZ	setPrefixÚsinÚsinhÚsleepZslnZstr2DateZstr2DatetimeZstr2EnumZstr2GuidZstr2IntZ	str2Int64Zstr2NumZstr2TimeZstrAlphaZstrCmpZ	strColSeqZstrDelZstrFindZstrFmtZstrInsZstrKeepZstrLTrimZstrLenZstrLineZstrLwrZstrNFindZstrPokeZ	strPromptZstrRTrimZstrRemZstrRepZstrScanZstrUprZsubStrZsydZsystemDateGetZsystemDateSetZtableId2NameZtableId2PNameZtableName2IdÚtanÚtanhÚtermZtime2StrZtimeNowÚtodayÚtruncZtypeOfZuint2StrZwkOfYrÚyear)MZattributeStrZclassNumZclassStrZconfigurationKeyNumZconfigurationKeyStrZdataEntityDataSourceStrZdelegateStrZdimensionHierarchyLevelStrZdimensionHierarchyStrZdimensionReferenceStrZdutyStrZenumCntZenumLiteralStrZenumNumZenumStrZextendedTypeNumZextendedTypeStrZfieldNumZ
fieldPNameZfieldStrZformControlStrZformDataFieldStrZformDataSourceStrZformMethodStrZformStrZidentifierStrZindexNumZindexStrZlicenseCodeNumZlicenseCodeStrZ
literalStrZmaxDateZmaxIntZ
measureStrZmeasurementStrZmenuItemActionStrZmenuItemDisplayStrZmenuItemOutputStrZmenuStrZ	methodStrZminIntZprivilegeStrZqueryDatasourceStrZqueryMethodStrZqueryStrZ	reportStrZresourceStrZroleStrZssrsReportStrZstaticDelegateStrZstaticMethodStrZtableCollectionStrZtableFieldGroupStrZtableMethodStrZtableNumZ
tablePNameZtableStaticMethodStrZtableStrZtileStrZvarStrZwebActionItemStrZwebDisplayContentItemStrZ
webFormStrZ
webMenuStrZwebOutputContentItemStrZwebReportStrZwebSiteTempStrZwebStaticFileStrZwebUrlItemStrZwebWebPartStrZwebletItemStrZwebpageDefStrZwebsiteDefStrZworkflowApprovalStrZworkflowCategoryStrZworkflowTaskStrZworkflowTypeStrz(\s*)\b(else|if)\b([^\n])r;   r<   r=   z^(\s*)(\[)([^\n]*?)(\])r?   r@   z//[^\n]*?\nz/[*][^\n]*?[*]/rC   r`   z[()\[\];:,.#@]ra   rb   rc   rd   re   r¶   r·   z+(boolean|int|int64|str|real|guid|date)\b\??z&(class|struct|extends|implements)(\s+)rº   rÁ   z)(::)z(\s*)(\w+)(\s+\w+(,|=)?[^\n]*;)z(fieldNum\()(z)(\s*,\s*)(z)(\s*\))z(tableNum\()(rÀ   r¿   rÂ   )rÃ   rº   r¼   N).rÓ   rÔ   rÕ   rÖ   r×   rØ   rÙ   rÚ   rÜ   rÝ   rÞ   rà   rá   rã   Z	XPP_CHARSÚreplaceZ	OPERATORSÚKEYWORDSZRUNTIME_FUNCTIONSZCOMPILE_FUNCTIONSrÇ   r   r   r   r   r   r   ré   r
   rê   rZ  rô   r   r   rë   rì   r	   r   r   rí   r   rï   rQ  ÚMagicr   rõ   rÑ   rÑ   rÑ   rÒ   r   
  s”   ÿÿþ
ÿþý	
ÿÿÿý
ÿ ÿ
ÿÜ'
þþÕr   )(rÖ   rÝ   Zpygments.lexerr   r   r   r   r   r   r   r	   Zpygments.tokenr
   r   r   r   r   r   r   r   r   r   r   Zpygments.utilr   Úpygmentsr   rá   Zpygments.lexers.htmlr   Ú__all__r   r   r   r   r[  r   r   r   r   rÑ   rÑ   rÑ   rÒ   Ú<module>   s&   	(4  7Jq "