a
    ;@bs&                     @   s   d Z ddl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 g dZG dd deZG dd deZG d	d
 d
eZdS )z
    pygments.lexers.d
    ~~~~~~~~~~~~~~~~~

    Lexers for D languages.

    :copyright: Copyright 2006-2021 by the Pygments team, see AUTHORS.
    :license: BSD, see LICENSE for details.
    )
RegexLexerincludewordsbygroups)TextCommentKeywordNameStringNumberPunctuation
Whitespace)DLexer	CrocLexer
MiniDLexerc                )   @   s  e Zd ZdZdZddgZdgZdgZdefdefd	e	e
jefd
e
jfde
jdfedddefedddejfedddejfdejfedddejfdejfdejfdejfdejfdejfdejfdejfdejfdejfdejfdefdefd efd!efd"efd#ed$fd%ed&fd'ed(fd)ed*fd+efd,efd-ed.fd/ejfd0efd1efd2e	e
j ee
j efg$d3e
jfde
jd4fd5e
jd6fd7e
jfgd8ed9fd:ed6fe!d;gd8ed4fd:ed6fe!d;gd<efd=ed>fd?ed6fgd<efd=ed4fd@ed6fgdAefdBedCfdDed6fgdAefdBed4fdEed6fgdFefdGedHfdIed6fgdFefdGed4fdJed6fgdKefd8edLfdMed6fgdKefd8ed4fd:ed6fgdNZ"dOS )Pr   z2
    For D source.

    .. versionadded:: 1.2
    Dz*.dz*.didztext/x-dsrc\n\s+(//.*?)(\n)z/(\\\n)?[*](.|\n)*?[*](\\\n)?/z/\+nested_comment)MZabstractaliasZalignZasmassertautobodybreakcasecastcatchclassconstcontinuedebugdefaultZdelegatedeleteZ
deprecateddoelseenumZexportZexternfinallyfinalZforeach_reverseforeachforfunctionZgotoifZ	immutableimportZ	interfaceZ	invariantZinoutinisZlazyZmixinmodulenewZnothrowoutoverridepackageZpragmaZprivateZ	protectedZpublicZpurerefreturnscopeZsharedZstaticstructsuperswitchZsynchronizedtemplatethisthrowtryZtypeidZtypeofunionZunittestversionZvolatilewhilewithZ	__gsharedZ__traitsZ__vectorZ__parameters\bsuffix)Ztypedef)boolZbyteZcdoubleZcentZcfloatcharZcrealZdcharZdoublefloatZidoubleZifloatintZirealZlongrealZshortZubyteZucentZuintZulongZushortZvoidZwchar(false|true|null)\b)Z__FILE__Z__FILE_FULL_PATH__Z
__MODULE__Z__LINE__Z__FUNCTION__Z__PRETTY_FUNCTION__Z__DATE__Z__EOF__Z__TIME__Z__TIMESTAMP__Z
__VENDOR__Z__VERSION__zmacro\bz+(string|wstring|dstring|size_t|ptrdiff_t)\bzL0[xX]([0-9a-fA-F_]*\.[0-9a-fA-F_]+|[0-9a-fA-F_]+)[pP][+\-]?[0-9_]+[fFL]?[i]?zI[0-9_]+(\.[0-9_]+[eE][+\-]?[0-9_]+|\.[0-9_]*|[eE][+\-]?[0-9_]+)[fFL]?[i]?z0\.(0|[1-9][0-9_]*)([eE][+\-]?[0-9_]+)?[fFL]?[i]?z0[Bb][01_]+z0[0-7_]+z0[xX][0-9a-fA-F_]+z$(0|[1-9][0-9_]*)([LUu]|Lu|LU|uL|UL)?za'(\\['"?\\abfnrtv]|\\x[0-9a-fA-F]{2}|\\[0-7]{1,3}|\\u[0-9a-fA-F]{4}|\\U[0-9a-fA-F]{8}|\\&\w+;|.)'zr"[^"]*"[cwd]?z`[^`]*`[cwd]?z"(\\\\|\\[^\\]|[^"\\])*"[cwd]?zT\\(['\"?\\abfnrtv]|x[0-9a-fA-F]{2}|[0-7]{1,3}|u[0-9a-fA-F]{4}|U[0-9a-fA-F]{8}|&\w+;)zx"[0-9a-fA-F_\s]*"[cwd]?zq"\[delimited_bracketzq"\(delimited_parenthesiszq"<delimited_anglezq"\{delimited_curlyzq"([a-zA-Z_]\w*)\n.*?\n\1"zq"(.).*?\1"zq\{token_stringz@([a-zA-Z_]\w*)?z(~=|\^=|%=|\*=|==|!>=|!<=|!<>=|!<>|!<|!>|!=|>>>=|>>>|>>=|>>|>=|<>=|<>|<<=|<<|<=|\+\+|\+=|--|-=|\|\||\|=|&&|&=|\.\.\.|\.\.|/=)|[/.&|\-+<>!()\[\]{}?,;:$=*%^~][a-zA-Z_]\w*z(#line)(\s)(.*)(\n)z[^+/]+#pushz\+/#popz[+/]z\{token_string_nestz\}rootz[^\[\]]+z\[delimited_inside_bracketz\]"z\]z[^()]+z\(delimited_inside_parenthesisz\)"z\)z[^<>]+<delimited_inside_anglez>">z[^{}]+delimited_inside_curlyz\}")rV   r   rQ   rU   rM   rW   rN   rX   rO   rZ   rP   r\   N)#__name__
__module____qualname____doc__name	filenamesaliases	mimetypesr   r   r   Single	Multiliner   r   ZRemovedTypeConstantZPseudoZReservedr	   ZBuiltinr   FloatBinZOctHexIntegerr
   CharZ	Decoratorr   Specialr   tokens rp   rp   0lib/python3.9/site-packages/pygments/lexers/d.pyr      s   

c

 r   c                   @   s   e Zd ZdZdZdgZdgZdgZdefdefde	e
jefd	e
jd
fedddefdejfdejfdejfdejfdejfdejfdefdefdefdefdefdefgde
jfd	e
jdfde
jdfde
jfgdZd S )!r   z=
    For `Croc <http://jfbillingsley.com/croc>`_ source.
    ZCrocz*.crocZcrocztext/x-crocsrcr   r   r   z/\*nestedcomment)!asr   r   r   r   r   r!   r#   r%   r&   r(   r+   r*   r,   global	namespacer-   r.   r/   r0   localr1   r7   r8   r:   r;   r=   r>   r?   varargrB   rC   yieldrD   rE   rL   z<([0-9][0-9_]*)(?=[.eE])(\.[0-9][0-9_]*)?([eE][+\-]?[0-9_]+)?z0[bB][01][01_]*z0[xX][0-9a-fA-F][0-9a-fA-F_]*z([0-9][0-9_]*)(?![.eE])zT'(\\['"\\nrt]|\\x[0-9a-fA-F]{2}|\\[0-9]{1,3}|\\u[0-9a-fA-F]{4}|\\U[0-9a-fA-F]{8}|.)'z@"(""|[^"])*"z@`(``|[^`])*`z@'(''|[^'])*'z"(\\\\|\\[^\\]|[^"\\])*"z(~=|\^=|%=|\*=|==|!=|>>>=|>>>|>>=|>>|>=|<=>|\?=|-\>|<<=|<<|<=|\+\+|\+=|--|-=|\|\||\|=|&&|&=|\.\.|/=)|[-/.&$@|\+<>!()\[\]{}?,;:=*%^~#\\]rR   z[^*/]+rS   z\*/rT   z[*/])rV   rr   N)r]   r^   r_   r`   ra   rb   rc   rd   r   r   r   re   rf   r   r   rh   r   ri   rj   rk   rl   r
   rm   r   r	   ro   rp   rp   rp   rq   r      sN   
,

r   c                   @   s$   e Zd ZdZdZg ZdgZdgZdS )r   z7
    For MiniD source. MiniD is now known as Croc.
    ZMiniDZminidztext/x-minidsrcN)r]   r^   r_   r`   ra   rb   rc   rd   rp   rp   rp   rq   r      s
   r   N)r`   Zpygments.lexerr   r   r   r   Zpygments.tokenr   r   r   r	   r
   r   r   r   __all__r   r   r   rp   rp   rp   rq   <module>   s   
( *>