
    L&i t                     z   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
e          Z G d de          Z  G d de          Z! G d de          Z" G d de          Z# G d de          Z$ G d de          Z% G d de          Z&dS )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FSharpLexerc                      e Zd ZdZdZdZg dZdgZdgZe	j
        e	j        z  Zdd ej        d	d
ddd          z   dz   dz    ej        d	d
dddddddd
  
        z   dz   d ej        d	d
dddd          z   dz   dz    ej        d	d
ddddddddd          z   dz   dZi ZdZe                                D ]\  ZZdez   dz   ez   dz    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d. ee(ee(          fd/e(fd0 ee(e          fd1e(j)        fd2 ee(e          d3fd4 ee(e          d5feefgeej*        d6f e+d6          gd7ed6fd8ez   d9z   ej,        d6fgd:ee<    d; Z-d<S )=r   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^([ \t]*)((?:(?:\[\])?\s+)+?)(
)(\s*)(\()^(\s*)(\[.*?\])[^\S\n]+(\\)(\n)//.*?\n/[*].*?[*]/\n)(z>>>=z>>=z<<=z<=z>=z+=z-=z*=z/=z%=z&=z|=z^=z??=z=>z??z?.!=z==&&z||z>>>z>>z<<z++z--+-*/%&|^<>?!~==~|!=|==|<<|>>|[-+/*%=<>&^|]z[()\[\];:,.][{}]@"(""|[^"])*"z!\$?"(\\\\|\\[^\\]|[^"\\\n])*["\n]'\\.'|'[^\\]'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)\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(?=\()(|\.)+)rootrY   r[   c                     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levels      c/home/geonatureadmin/si_en_reseau/tutos/venv/lib/python3.11/site-packages/pygments/lexers/dotnet.pyrk   zCSharpLexer.__init__   st    wT[8I8I7SS(((>::5AADLL+E2DLD,,G,,,,,    N).__name__
__module____qualname____doc__nameurlaliases	filenames	mimetypesre	MULTILINEDOTALLflagsunicombine	allexceptlevelsrf   token_variantsitems	levelnamecs_identr   r   r   r   r   Functionr   	Attributer   r   Single	Multiliner
   r   r   Charr   Preprocr   TypeClassr	   	Namespacerk    rq   rp   r   r      s~        , D
;C$$$GI !IL29$E ";3;tT4tDDDsJ#D$dD$$($6 668<= tT4tTBBCEIJ%dD$dD&*D$dD DD GKK	 	F FN%||~~ >
 >
	8 "H, 0  !$ *eeDkk4=*%' '(
 $XXj$.%I%IJj)hhtZ889W^,!23
#   
  1(; +.+&!6*5v>!6;/56<>K'/:w!/:7 78 -hhw
/ / # %,- !((7K"@"@ACDKLR'':)F)FP*HHWj,I,I;W4 e3j 4:v.
 D&)x(*DNFCs=
 =
y~- - - - -rq   r   c            "       *   e Zd ZdZdZdZdgZdgZdgZe	j
        e	j        z  Zdd ej        d	d
ddd          z   dz   dz    ej        d	d
dddddddd
  
        z   dz   d ej        d	d
dddd          z   dz   dz    ej        d	d
ddddddddd          z   dz   dZi ZdZe                                D ]\  ZZdez   dz   ez   dz    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z   d,z    ee#ee#          fd-e#fd.ez   efd/ eee          d0fd1efd2efd3e"fd4e"fd5e"j$        fd6e%fd7e%fd8 eej&        eej&                  d9fd: ee#ee#          fd;e#fd< ee#e          fd=e#j'        fd>ez   d?z    eeee#j'                  fd@ ee#e          dAfdB ee#e          dCfeefgeej(        dDfgdEej&        fdFefd$edDfgdGedDfdHez   dIz   ej)        dDfgdJe"fd.ez   efd/ eee          d0fdKe"fdLe"dDfgdMe"fd.ez   efd/ eee          d0fd)e"dNfdOe"dDfgdPe"fd)e"dNfdOe"dDfgdQe#fdRefeefdSe%fdTedNfdUedDfgdVee<   dW Z*dX Z+dYS )Zr   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``.

    .. versionadded:: 1.5
    Nemerlezhttp://nemerle.orgnemerlez*.nztext/x-nemerler#   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?   r@   rA   rB   z(\$)(\s*)(")splice-stringz(\$)(\s*)(<#)splice-string2z<#recursive-stringz(<\[)(\s*)(z:)?z\]\>z\$z(\$)(\()splice-string-contentz[~!%^&*()+=|\[\]:;,.<>/?-]rT   rU   z"(\\\\|\\[^\\]|[^"\\\n])*["\n]rV   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preprocrW   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)\brX   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+)rY   rZ   r[   r\   z\w+z[ \t]+r]   r^   r_   z[^"$]z\\""z[^#<>$]#pushz#>z[^#<>]zif|matchz[~!%^&*+=|\[\]:;,.<>/?-\\"$ ]\d+\(\))r`   rY   r   r[   r   r   r   r   c                     t          |dt          | j                  d          }|| j        vr | j                            |          | _        n| j        |         | _        t          j        | fi | d S rb   rd   rl   s      rp   rk   zNemerleLexer.__init__0  sy    wT[8I8I&( ((((>::5AADLL+E2DLD,,G,,,,,rq   c                     d}d| v r|dz  }|S )zUNemerle is quite similar to Python, but @if is relatively uncommon
        elsewhere.r   z@ifg?r   textresults     rp   analyse_textzNemerleLexer.analyse_text;  s      D==cMFrq   N),rr   rs   rt   ru   rv   rw   rx   ry   rz   r{   r|   r}   r~   r   r   r   r   rf   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rk   r   r   rq   rp   r   r      s$        , D
CkGI!"IL29$E ";3;tT4tDDDsJ#D$dD$$($6 668<= tT4tTBBCEIJ%dD$dD&*D$dD DD GKK	 	F FN%||~~ j
 j
	8 "H, 0  !$ *eeDkk4=*%' '(
 $XXj$.%I%IJj)hhtZ889W^,!23
# ((6:v"F"F#%!88FJ#G#G$& 23(*U2':w779'" !4(hht[99(* /<+&!6*2F;!6;/*F3>GB'/:wGGT -hhw
G.T.TU: <CD !((7K"@"@AI  (*W4+z7<@@B6':..9*HHWj,I,I4 {>@ 4:v. )J'
F+ D&)x(*DNFC
 F#!4(hht[99(*&!' f%!4(hht[99(*)( V$)(! g&1;?4  W-V,&Ci
 i
yV	- 	- 	-    rq   r   c                   @   e Zd ZdZdZdZdgZdgZdgZde	fde
j        fd	e
j        d
fdefd eee	          fdefdej        fdej        fdej        fdefdefdefd eee	          dfd eee	          dfd eee	          dfdej        fdej        fdej        fdej        fdefdej        fd efd!ej        fd"ej        fd#ej        j        fd$ej        fgd	e
j        d%fd&e
j        d'fd(e
j        fd)e
j        fgdej        d'fgdej        d'fgd*ej         d'fgd+Z!d,S )-r   z
    For Boo source code.
    Boozhttps://github.com/boo-lang/boobooz*.booz
text/x-boo\s+z	(#|//).*$z/[*]commentz[]{}:(),.;[]r?   z\\z(in|is|and|or|not)\bz/(\\\\|\\[^\\]|[^/\\\s])/z@/(\\\\|\\[^\\]|[^/\\])*/rS   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)"rr   rs   rt   ru   rv   rw   rx   ry   rz   r   r   r   r   r   r   r   r   Wordr   Regexr   r   BuiltinDoubler   FloatOctHexIntegerLongr   r   r   rf   r   rq   rp   r   r   F  s         D
+CgG	II Z 7>*g'3k*((4445DM$hm4)6<8)6<8,h7! #*+ "7+HHWj99:Fhhw
;;[I ((7J"?"?M  "&	/
 %fm4(&-8(&-8d#5v|D'0fj!
+fn)*V^$I%
N W&0W&/g'(W&'	
 dmV4
 dj&1
  8
g6 6FFFrq   r   c                   X   e Zd ZdZdZdZg dZddgZddgZd	 e	j
        d
ddd          z   dz   dz    e	j
        d
dddddddd	  	        z   dz   Zej        ej        z  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 !          efd"ed#fd$ed%fd& eee          d'fd( eee          d)fd* eee          d+fd,ej        fd-ej        fd.efd/ed0fd1 eee          fed2z   efd3ej         fd4e!j"        fd5e!j#        fd6e!j#        fd7e!j#        fgd8efd9ed:fd;efgeej$        d:f e%d:          geej&        d:fgeej'        d:fgeej(        fd<ej(        f e%d:          gdefd=ed:f e%d:          gd>Z)d? Z*d@S )Ar   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*.vbz*.basztext/x-vbnetz
text/x-vbaz[_r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   z	^\s*<.*?>r   rB   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(?<!\.)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+)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                 J    t          j        d| t           j                  rdS d S )Nz^\s*(#If|Module|Namespace)g      ?)r{   searchr|   r   s    rp   r   zVbNetLexer.analyse_text  s*    92D",GG 	3	 	rq   N)+rr   rs   rt   ru   rv   rw   rx   ry   rz   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   rf   r   r   rq   rp   r   r     s-        
 D
AC<<<G!I.Ikck$dD999C? S[tT4t!%tT3 3359:H L2=(E 4>*Z J* = =>HHWj99:= _ [)%Xg):w7J '"57 78 U ?& %U'4 4 4& 6='>( gu-$gu53Xgz**J82Xgz**K96Xgz**K9"<)()18+ &(#$
334#T*gl#2FLA'8/@,fn=u;
z FOVV$v
 t}f-GFOO

 t}f-
 tz6*
 t~&DN#GFOO
 Z OfGFOO	
cW WFr    rq   r   c            
           e Zd ZdZdZg Zg Zej        Z	dd e
ej        eej                  fd e
 ee          e ee                    fd ee          fd ee          fgiZdS )	GenericAspxLexerz"
    Lexer for ASP.NET pages.
    zaspx-genr`   z(<%[@=#]?)(.*?)(%>)z(<script.*?>)(.*?)(</script>)z
(.+?)(?=<)z.+N)rr   rs   rt   ru   rv   ry   rz   r{   r}   r~   r   r   Tagr   r   r   rf   r   rq   rp   r4  r4    s          DIIIE 	#XXdhtx%H%HI-xxh8=8=h0I 0I J EE(OO,EE(OO$
	FFFrq   r4  c                   >     e Zd ZdZdZdgZg dZg Z fdZd Z	 xZ
S )r   z9
    Lexer for highlighting C# within ASP.NET pages.
    zaspx-csz*.aspxz*.asaxz*.ascxz*.ashxz*.asmxz*.axdc                 R     t                      j        t          t          fi | d S N)superrk   r   r4  rm   rn   rh   s     rp   rk   zCSharpAspxLexer.__init__  s+    &6BB'BBBBBrq   c                     t          j        d| t           j                  dS t          j        d| t           j                  dS d S )NzPage\s*Language="C#"皙?zscript[^>]+language=["\']C#333333?r{   r,  Ir-  s    rp   r   zCSharpAspxLexer.analyse_text  C    9,dBD99E3Y5tRTBBN4 ONrq   rr   rs   rt   ru   rv   rx   ry   rz   rk   r   __classcell__rh   s   @rp   r   r     st          DkGKKKIIC C C C C      rq   r   c                   >     e Zd ZdZdZdgZg dZg Z fdZd Z	 xZ
S )r   zG
    Lexer for highlighting Visual Basic.net within ASP.NET pages.
    zaspx-vbr7  c                 R     t                      j        t          t          fi | d S r9  )r:  rk   r   r4  r;  s     rp   rk   zVbNetAspxLexer.__init__/  s+    %5AAAAAAArq   c                     t          j        d| t           j                  dS t          j        d| t           j                  dS d S )NzPage\s*Language="Vb"r=  zscript[^>]+language=["\']vbr>  r?  r-  s    rp   r   zVbNetAspxLexer.analyse_text2  rA  rq   rB  rD  s   @rp   r   r   %  st          DkGKKKIIB B B B B      rq   r   c                      e Zd ZdZdZdZddgZg dZdgZg dZ	e	g d	z  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	          z  efd)efd*d(                     e
          z  e!fd+ed(ed,ee!fd'd(                     e          z  e!j"        fd'd(                     e          z  ej#        fd- eej$        eej$        ej$        e          fd.efd/e%j&        fd0e%j'        fd1e%j(        fd2e%j)        fd3e%j*        fd4ej+        fd5ej+        fd6efd7ej,        d"fd8ej        fdefd9efd:ej        fd;ed<fd=ed<f e-d<          gd>efd?ed@fdAed<fdedfded fd!ed"fdBefgdCef e.dD          dEefdFefdGed<fgdHefdFefdIefdGed<fgdHefdFefdJed<fd!efgdKZ/dL Z0dMS )Nr   zG
    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beginrY   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mutabler[   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)+rC   #rD   rJ   r   r   z\*z\+,z-\.z->rF   z\.\.r*  z::z:=z:>:z;;;z<-z<\]rM   z>\]rN   z\?\?z\?z\[<z\[\|z\[z\]_`z\{z\|\]z\|z\}rQ   z<@@z<@rR   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'  re   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)\brK   z``([^`\n\r\t]|`[^`\n\r\t])+``z(%s)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\\\nrB   z"B?r)  r(  z"""B?)r  r`   r  r   r'  r  r  c                 .    d}d| v r|dz  }d| v r|dz  }|S )zSF# doesn't have that many unique features -- |> and <| are weak
        indicators.r   z|>g?z<|r   r   s     rp   r   zFSharpLexer.analyse_text  s2     4<<dNF4<<dNFrq   N)1rr   rs   rt   ru   rv   rw   rx   ry   rz   keywordskeyopts	operatorsword_operatorsprefix_syms
infix_syms
primitivesr   Escaper   r   r   Pseudor   r   Docr   r   r   r2  r   r   r   joinr   r   r   r   r   r   r   r   Binr   r   r   r	   r   rf   r   r   rq   rp   r   r   :  s         D
CG***I !I
 
 
H     H  G )I)))NK$J  J !&-0FM*!6=1!6=1	
1
Z 1
4<./1
 1^X'1

 !$'1
 hhvz:>>?1
 XXgnjAAB1
 GY/1
 FI&1
 VU#1
 68$1
 -Xgz4>::<1
  $Xgz4=99;!1
$ #Xgz4:668%1
( 7Xgz4dmLLN)1
, 388H---w7-1
. .t4/1
0 sxx((((311
 1
2 )jj+++yyA8L31
4 388N333X]C51
6 388J///>71
8 LXgoz7?oz3 3491
@ t$A1
D .v~>E1
F >vzJG1
H /
;I1
J -fj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,GFOO
 7#gw'gv&FI&VU#68$ 	
  G%&&fFOVV$
 vFOFOVV$	
 vFOvv&6N	
s_ _FB	 	 	 	 	rq   r   )'ru   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   r4  r   r   r   r   rq   rp   <module>r     s    
			                                       5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 ( ( ( ( ( ( % % % % % % ) ) ) ) ) )? ? ?x- x- x- x- x-* x- x- x-vo o o o o: o o odA A A A Az A A AHl l l l l l l l^    z   0    o   (    _   *_ _ _ _ _* _ _ _ _ _rq   