3 ��X� � @ sZ d Z ddlmZmZmZ ddlmZmZmZm Z m Z mZmZm Z dgZG dd� de�ZdS )z� pygments.lexers.chapel ~~~~~~~~~~~~~~~~~~~~~~ Lexer for the Chapel language. :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS. :license: BSD, see LICENSE for details. � )� RegexLexer�bygroups�words)�Text�Comment�Operator�Keyword�Name�String�Number�Punctuation�ChapelLexerc ? @ s e Zd ZdZdZdgZddgZdefdefdefd ej fd ej fdejfdej fd ejfed]dDdE�efdFeee�dGfdHeee�dIfdJefdKefdLefdMefdNejfdOejfdPejfdQejfdRejfdSejfdTefdUefdVefdWefdXejfgdXejdYfgdZejdYfgd[�Zd\S )^r zT For `Chapel <http://chapel.cray.com/>`_ source. .. versionadded:: 2.0 ZChapelz*.chplZchapelZchplz\nz\s+z\\\nz //(.*?)\nz/(\\\n)?[*](.|\n)*?[*](\\\n)?/z0(config|const|in|inout|out|param|ref|type|var)\bz(false|nil|true)\bz7(bool|complex|imag|int|opaque|range|real|string|uint)\b�align�as�atomic�begin�break�by�cobegin�coforall�continue�delete�dmapped�do�domain�else�enum�except�export�extern�for�forall�if�index�inline�iter�label�lambda�let�local�new�noinit�on�only� otherwise�pragma�private�public�reduce�require�return�scan�select�serial�single�sparse� subdomain�sync�then�use�when�where�while�with�yield�zipz\b)�suffixz(proc)((?:\s)+)�procnamez (class|module|record|union)(\s+)� classnamez\d+iz\d+\.\d*([Ee][-+]\d+)?iz\.\d+([Ee][-+]\d+)?iz\d+[Ee][-+]\d+iz(\d*\.\d+)([eE][+-]?[0-9]+)?i?z\d+[eE][+-]?[0-9]+i?z 0[bB][01]+z0[xX][0-9a-fA-F]+z0[oO][0-7]+z[0-9]+z"(\\\\|\\"|[^"])*"z'(\\\\|\\'|[^'])*'z�(=|\+=|-=|\*=|/=|\*\*=|%=|&=|\|=|\^=|&&=|\|\|=|<<=|>>=|<=>|<~>|\.\.|by|#|\.\.\.|&&|\|\||!|&|\||\^|~|<<|>>|==|!=|<=|>=|<|>|[+\-*/%]|\*\*)z[:;,.?()\[\]{}]z[a-zA-Z_][\w$]*z#popz9([a-zA-Z_][\w$]+|\~[a-zA-Z_][\w$]+|[+*/!~%<>=&^|\-]{1,2}))�rootrF rE N)6r r r r r r r r r r r r r r r r r r r r! r"