3 ��X:% � @ sz d Z ddlmZmZmZ ddlmZmZmZm Z m Z mZmZ dddgZ G dd� de�ZG dd� de�ZG d d� de�Zd S )z� pygments.lexers.d ~~~~~~~~~~~~~~~~~ Lexers for D languages. :copyright: Copyright 2006-2017 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 T @ s` e Zd ZdZdZddgZdgZdgZdefdefd e j fd e jfde jdfed�d[d\�e fed�d[d\�e jfdue jfed�d[d\�e jfd�e jfd�ejfd�ejfd�ejfd�ejfd�ejfd�ejfd�ejfd�ejfd�ejfd�efd�efd�efd�efd�efd�ed�fd�ed�fd�ed�fd�ed�fd�efd�efd�ed�fd�ejfd�efd�efd�e jfg#d�e jfde jd�fd�e jd�fd�e jfgd�ed�fd�ed�fed��gd�ed�fd�ed�fed��gd�efd�ed�fd�ed�fgd�efd�ed�fd�ed�fgd�efd�ed�fd�ed�fgd�efd�ed�fd�ed�fgd�efd�ed�fd�ed�fgd�efd�ed�fd�ed�fgd�efd�ed�fd�ed�fgd�efd�ed�fd�ed�fgd��Z d�S )�r z2 For D source. .. versionadded:: 1.2 �Dz*.dz*.di�dztext/x-dsrcz\nz\s+z //(.*?)\nz/(\\\n)?[*](.|\n)*?[*](\\\n)?/z/\+�nested_comment�abstract�alias�align�asm�assert�auto�body�break�case�cast�catch�class�const�continue�debug�default�delegate�delete� deprecated�do�else�enum�export�extern�finally�final�foreach_reverse�foreach�for�function�goto�if� immutable�import� interface� invariant�inout�in�is�lazy�mixin�module�new�nothrow�out�override�package�pragma�private� protected�public�pure�ref�return�scope�shared�static�struct�super�switch�synchronized�template�this�throw�try�typedef�typeid�typeof�union�unittest�version�volatile�while�with� __gshared�__traits�__vector�__parametersz\b)�suffix�bool�byte�cdouble�cent�cfloat�char�creal�dchar�double�float�idouble�ifloat�int�ireal�long�real�short�ubyte�ucent�uint�ulong�ushort�void�wcharz(false|true|null)\b�__FILE__� __MODULE__�__LINE__�__FUNCTION__�__PRETTY_FUNCTION__�__DATE__�__EOF__�__TIME__� __TIMESTAMP__� __VENDOR__�__VERSION__zmacro\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]?z0[Bb][01_]+z0[0-7_]+z0[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+;|.)'zr"[^"]*"[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+;)zx"[0-9a-fA-F_\s]*"[cwd]?zq"\[�delimited_bracketzq"\(�delimited_parenthesiszq"<�delimited_anglezq"\{�delimited_curlyzq"([a-zA-Z_]\w*)\n.*?\n\1"zq"(.).*?\1"zq\{�token_stringz@([a-zA-Z_]\w*)?z�(~=|\^=|%=|\*=|==|!>=|!<=|!<>=|!<>|!<|!>|!=|>>>=|>>>|>>=|>>|>=|<>=|<>|<<=|<<|<=|\+\+|\+=|--|-=|\|\||\|=|&&|&=|\.\.\.|\.\.|/=)|[/.&|\-+<>!()\[\]{}?,;:$=*%^~]z[a-zA-Z_]\w*z#line\s.*\nz[^+/]+z#pushz\+/z#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\}")r� r r� r� r� r� r� r� r� r� r� r� N)Nr r r r r r r r r r r r r r r r! r"