a
    T_%                     @   sx   d Z ddlmZmZmZ ddl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-2020 by the Pygments team, see AUTHORS.
    :license: BSD, see LICENSE for details.
    )
RegexLexerincludewords)TextCommentKeywordNameStringNumberPunctuation)DLexer	CrocLexer
MiniDLexerc                %   @   sp  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	j
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	j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+	//(.*?)\nz/(\\\n)?[*](.|\n)*?[*](\\\n)?/z/\+nested_comment)MZabstractaliasZalignZasmassertautobodybreakcasecastcatchclassZ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staticZ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.*\nz[^+/]+#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\}")rR   r   rM   rQ   rI   rS   rJ   rT   rK   rV   rL   rX   N)"__name__
__module____qualname____doc__name	filenamesaliases	mimetypesr   r   Single	Multiliner   r   ZRemovedTypeConstantZPseudoZReservedr   ZBuiltinr
   FloatBinZOctHexIntegerr	   CharZ	Decoratorr   Specialr   tokens rl   rl   3/usr/lib/python3/dist-packages/pygments/lexers/d.pyr      s   
b

 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	j
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,   r-   Zlocalr.   r4   r5   r6   r7   r9   r:   r;   varargr>   r?   yieldr@   rA   rH   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(~=|\^=|%=|\*=|==|!=|>>>=|>>>|>>=|>>|>=|<=>|\?=|-\>|<<=|<<|<=|\+\+|\+=|--|-=|\|\||\|=|&&|&=|\.\.|/=)|[-/.&$@|\+<>!()\[\]{}?,;:=*%^~#\\]rN   z[^*/]+rO   z\*/rP   z[*/])rR   rn   N)rY   rZ   r[   r\   r]   r^   r_   r`   r   r   ra   rb   r   r   rd   r
   re   rf   rg   rh   r	   ri   r   r   rk   rl   rl   rl   rm   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)rY   rZ   r[   r\   r]   r^   r_   r`   rl   rl   rl   rm   r      s
   r   N)r\   Zpygments.lexerr   r   r   Zpygments.tokenr   r   r   r   r	   r
   r   __all__r   r   r   rl   rl   rl   rm   <module>   s   
$ )>