o
    Ñ­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                   @   s`  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&j'fd.e(fd/ee!j)ee!j)e!j)eƒfd0ee*ee*ƒfe$d1d2d3�e*fd4ee*ee*ƒfd5ee*eƒfd6e*j+fd7ee*eƒd8fd9e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d?ƒed@ƒgeej0dAfe1dAƒgdBe dAfdCe dD ej2dAfgdEœee< qfdFdG„ Z3dHS )Ir   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[()\[\];:,.]ú[{}]ú@"(""|[^"])*"ú!\$?"(\\\\|\\[^\\]|[^"\\\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Ú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Úswitchr   ÚthrowÚtrueÚtryÚtypeofÚ	uncheckedÚunsafeÚvirtualÚvoidÚwhileÚgetÚsetrˆ   ÚpartialÚyieldÚaddÚremoveÚvalueÚaliasÚ	ascendingÚ
descendingÚfromÚgroupÚintoÚorderbyÚselectÚthenbyÚwhereÚjoinÚequalsÚrecordÚallowsÚandÚinitÚmanagedÚnameofÚnintÚnotÚnotnullÚnuintÚorÚscopedÚ	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)(\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   óP   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Úlevel© râ   úS/var/www/html/CropPilot/venv/lib/python3.10/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Ö    ÿÿÿþÿÿþ
ÿþýû
ÿÿÿýûÿÿþÿîî
ÿÿÂAýýÿþ
þþ¬Zr   c                !   @   s2  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 �](\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d<e$fd=ee$eƒfd>e$j(fd?e d@ eeee$j(ƒfdAee$eƒdBfdCee$eƒdDfeefgeej)dEfgdFe j'fdGefd%edEfgdHedEfdIe dJ ej*dEfgdKe#fd/e efd0eeeƒd1fdLe#fdMe#dEfgdNe#fd/e efd0eeeƒd1fd*e#dOfdPe#dEfgdQe#fd*e#dOfdPe#dEfgdRe$fdSefeefdTe&fdUedOfdVedEfgdWœee< qedXdY„ Z+dZd[„ 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   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)\brÈ   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   rÓ   rÔ   rÖ   rÞ   râ   râ   rã   rÝ   K  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_textV  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   °   s   ÿÿÿþÿÿþ
ÿþýû
ÿÿÿýÿÿ

ÿ

ÿþõþ
ÿ
ÿ
ÿÃ
@ÿýþ

ÿú	

ÿú	ýúŸkr   c                   @   sZ  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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-boor"   ú\s+z	(#|//).*$z/[*]Úcommentz[]{}:(),.;[]r@   z\\z(in|is|and|or|not)\bz/(\\\\|\\[^\\]|[^/\\\s])/z@/(\\\\|\\[^\\]|[^/\\])*/r`   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)#rä   rå   ræ   rç   rè   ré   rê   rë   rì   rí   r   r   rü   rý   r
   r   r   r   ÚWordr   ÚRegexr   r   ÚBuiltinÚDoubler   r  ÚOctr  r  ÚLongrú   r  r  rØ   râ   râ   râ   rã   r   a  sf    
úü
Ü
'
ü
ÿ
ÿ
ÿ
Í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d>ed;fe&d;ƒgd?œZ*d@dA„ Z+dBS )Cr   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))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(?<!\.)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Î   ú[^"]+ú\.z?(Function|Sub|Property|Class|Structure|Enum|Module|Namespace)\b)rÒ   r–  r•  r  r  rË   r”  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ó   Ú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²    ÿÿÿþýÿþíí
ÿ
ÿ
ÿþÿþ
Æ=ý
þ
ÿ
ÿýÿü¯Yr   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                       óF   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                    ó   t ƒ jttfi |¤Ž d S ©N)ÚsuperrÝ   r   r¡  ©rß   rà   ©rÚ   râ   rã   rÝ   ;  ó   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Ã?©rî   rš  ÚIr›  râ   râ   rã   r  >  ó
   ÿzCSharpAspxLexer.analyse_text©rä   rå   ræ   rç   rè   rê   rë   rì   ré   rí   rÝ   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¥  r¢  r"   c                    r¦  r§  )r¨  rÝ   r   r¡  r©  rª  râ   rã   rÝ   Q  r«  zVbNetAspxLexer.__init__c                 C   r¬  )NzPage\s*Language="Vb"r­  zscript[^>]+language=["\']vbr®  r¯  r›  râ   râ   rã   r  T  r±  zVbNetAspxLexer.analyse_textr²  râ   râ   rª  rã   r   E  r´  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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‘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   Úassertrk   ÚbeginrÉ   r   rs   zdo!rt   ÚdoneÚdowncastÚdowntoÚelifru   r”  Ú	exceptionry   rz   r{   r}   ÚfunctionÚfunÚglobalr€   ÚinheritÚinlinerƒ   r„   r‚   Úlazyzlet!r†   ÚmatchÚmemberÚmoduleÚmutablerË   rˆ   r‰   ÚofÚopenr�   r�   r‘   Úreczreturn!r”   r±   r˜   ÚstructÚthenÚtor›   rœ   ÚtypeÚupcastzuse!ÚuseÚvalr¡   rÃ   r¢   rÄ   zyield!r¦   )Úatomicrl   rp   Ú	componentrq   Ú
constraintÚconstructorrr   Úeagerrw   Úexternalr|   Úfunctorr   ÚmethodÚmixinÚobjectÚparallelÚprocessr�   Úpurer•   ÚtailcallÚtraitr    Úvolatile)+rJ   ú#rL   rW   r  r  z\*z\+ú,z-\.z->rS   z\.\.r™  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[=<>@^|&+\*/$%-])ÚsbyteÚbyteÚcharÚ	nativeintÚ
unativeintÚfloat32ÚsingleÚfloatÚdoubleÚint8Úuint8Úint16Úuint16Úint32Úuint32Úint64Úuint64ÚdecimalÚunitÚboolr–  r×   Ú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  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({})\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\']*:r™  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?r˜  r—  z"""B?)r  rÒ   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)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   r   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   \  s   üÿ
þÿýûúùø
öõôÿòÿðÿîÿìêéèçæåÿÿä à"Þ#Ý$Ü%Û&ÿÚ)ÿ×+Õ,Ô
.Ò0Ð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   Úanytyperh   ri   ÚascÚatÚavgrl   Ú
breakpointrm   Úbyrefrn   ro   ÚchangecompanyÚclientÚ	containerrr   ÚcountÚcrosscompanyr   rs   Údelete_fromÚdescÚdisplayÚdivrt   Úeditru   ÚelementÚeventhandlerÚexistsrz   ÚfinalÚ	firstfastÚ	firstonlyÚfirstonly10Úfirstonly100Úfirstonly1000Úflushr}   ÚforceliteralsÚforcenestedloopÚforceplaceholdersÚforceselectorderÚ	forupdater­   r®   r€   Úinsert_recordsetrƒ   r…   r´   ÚlikeÚmaxofÚminofÚmodrˆ   ÚnextÚnofetchÚ	notexistsr‰   ÚoptimisticlockÚorderÚouterÚpauseÚpessimisticlockÚprintr�   r�   r‘   ÚrepeatablereadÚretryr”   Úreverser±   ÚserverÚsettingr˜   Úsumr¨  r™   Ú	tablelockr   rš   r›   rœ   ÚttsabortÚttsbeginÚ	ttscommitÚupdate_recordsetÚvalidtimestater¡   r³   r¢   Ú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?   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ô   Ú	XPP_CHARSÚreplaceÚ	OPERATORSÚKEYWORDSÚRUNTIME_FUNCTIONSÚCOMPILE_FUNCTIONSrØ   r   r   r   r   r   r   rú   r
   rû   r   r  r   r   rü   rý   r	   r   r   rþ   r   r   ÚPropertyÚMagicr   r  râ   râ   râ   rã   r   ý  s–    ÿÿþ
ÿþý	
ÿÿÿý
ÿ ÿ
ÿÜ
'þþ
Õ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   r¡  r   r   r   r   râ   râ   râ   rã   Ú<module>   s(    	(4  2Ep "