File: //usr/lib/python3/dist-packages/pygments/lexers/__pycache__/haxe.cpython-38.pyc
U
G�
\�x � @ s� d Z ddlZddlmZmZmZmZmZ ddlm Z m
Z
mZmZm
Z
mZmZmZmZmZ ddgZG dd� de�ZG dd� de�ZdS ) z�
pygments.lexers.haxe
~~~~~~~~~~~~~~~~~~~~
Lexers for Haxe and related stuff.
:copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
:license: BSD, see LICENSE for details.
� N)�ExtendedRegexLexer�
RegexLexer�include�bygroups�default)
�Text�Comment�Operator�Keyword�Name�String�Number�Punctuation�Generic�
Whitespace� HaxeLexer� HxmlLexerc m @ s� e Zd ZdZdZdddgZddgZdd d
gZdZdZ d
e d Z
dZde d e
Ze
je
jB Zg Zdd� Zed�ed�dejdfdejdfdejdfdejfdejdfdejd fd!ejd"fd#ejd$fd%ed&fgd'efd(ejfd)ejfd*efgd+ejd,fd-ejfd.e
d ejd/fed0�gd1ejd2fd3ejfd4ejfgd5ejd2fd3ejfd4ejfgd6e
ejfd7ejd2fged�e
ejfd8e d9fe!d2�ged�e
ejfd:efd8e d9fd;ejd/fe!d2�ged�d:ed2fe
ejd2fged�e
ejfd8e d9fe!d2�gd'ej"fd1ejd<fd5ejd=fe!d2�gd'ej"fd>ej"fd?ej"d@fe
ej"d2fdAe#j$fdBe#j$fdCe#j$fdDe#j$fdEe
dF e#j$fdGe#j%fdHe#j&fd1ejd<fd5ejd=fg
d'ej"fdIej"d2fe!dJ�gd'ej"feej"dKfe!d2�gd'ej"fd>ej"fd?ej"dLfe
ej"dMfdAe#j$dMfdBe#j$dMfdCe#j$dMfdDe#j$dMfdEe
dF e#j$dMfdGe#j%dMfdHe#j&dMfd1ejdNfd5ejdOfg
ed�e!dP�ged�dQe dRfged�d?e dSfe!d2�ged�dTejdUfdVe fe!d2�ged�dWej'dXfged�dYej'd2fe!d2�ged�e
ej'd2fged�d?ej'dZfe!d2�ged�dIej'd2fe!d[�ged�dIej'd2fdVe dZfged�e!d\�ged�d]e(d^fged�e!d_�ged�ed�d7e d2feed`fged�d?e dafe!db�ged�e!dc�ged�ddejdUfdVe fe!d2�ged�dQe d2fged�d7e d2fged�ed�d7e d2fdeejfe!df�ged�dgejdhfdiejdjfged�eej)dkfe!dk�ged�edl�e!d2�ged�e
ej)dkfged�dIe d2fdme feednfged�dIe d2fdVe dofged�d?e dpfe!d2�ged�dqed2feed2fged�e!dr�ged�dWej'dsfdte(fd?e dufdvejfdwejdxfdQe dyfdzej*d{fd|ed{fd}ed~fded�fd�ejd�fd�ed�fd�ed�fd�ed�fd�ed�fd�ed�fd�ed�fd�efd�ed�fd�ed�fd�ed2fd�e
d� ed�feed{fdAe#j$d{fdBe#j$d{fdCe#j$d{fdDe#j$d{fdEe
dF e#j$d{fdGe#j%d{fdHe#j&d{fd1ejd�fd5ejd�fd�ej+d{fd�e d�fg#ed�d�e(fee(d�fd�ed�fdme(d�fd�e d e,e e�fd�e d�fd?e d�fe!d2�g ed�ed�dYe d�fdejfdejd�fdejd�fd!ejd�fd#ejd�fe!d��g dQe dRfed �ged�d?e d�fe!d��ged�dVe d�fe!d2�ged�d�ed�fe!d2�ged�e!d��ged�d�ed�fged�d?e d�fged�d?e d�fged�d?e d�fged�d�ed�fe!d2�ged�e!d��ged�d�ed�fd7e d2fged�dYe d2fe!d��ged�dYe d2fdVe d�fged�d�ed�fe!d2�ged�d�ed&fe!d2�ged�e!d��ged�d�e d2fe!d��ged�d�e d2fdVe d�fged�e!d��ged�d�e d2fged�dVe d2fged�dYe d2fged�d�e d2fged�d�e d2fe!d2�ged�e
ed2fged�dQe d�fe!d{�ged�e ed2fged�d8e d/fe!d2�ged�dme fe
ed�fdQe d�fd?e d�fged�e!dS�ged�d�e d�fd�e d�fe!d2�ged�d7e d2fdme fd�e d�feed�fedǃged�d7e d2fdVe d�fgdAe#j$d2fdBe#j$d2fdCe#j$d2fdDe#j$d2fdEe
dF e#j$d2fdGe#j%d2fdHe#j&d2fd1ejd<fd5ejd=fd�ej+d2fd�e(d�fedU�ged�e!dʃged�d�e d2fdVe d�fged�d�e d�fe!d2�ged�d�e d2fdVe d�fged�dYe d�fe!d2�ged�d?e d�fe!d��ged�dIe d2fdVe dUfged�e!dσged�d?e d2fged�dIe d2fged�eed�fged�dVe d�fe!d2�ged�d]e(d�fe!d2�ged�dYe d�fe!d2�ged�dYe(d2fged�dIe d2fe!dуged�dIe d2fdVe d�fged�d�e
d� e ed�fd1ejd�fd5ejd�fe!dged�dYe d�fe!dڃged�d7e d2fe!d&�ged�d7e d2fe!dۃged�eed2fd1ejd<fd5ejd=fged�d7e d2fdVe d�fgdݜiZ-d�d߄ Z.d�S )�r zM
For Haxe source code (http://haxe.org/).
.. versionadded:: 1.3
ZHaxe�hxZhaxeZhxslz*.hxz*.hxslz text/haxeztext/x-haxez text/x-hxa
(?:function|class|static|var|if|else|while|do|for|break|return|continue|extends|implements|import|switch|case|default|public|private|try|untyped|catch|new|this|throw|extern|enum|in|interface|cast|override|dynamic|typedef|package|inline|using|null|true|false|abstract)\bz
_*[A-Z]\w*z(?:_*[a-z]\w*|_+[0-9]\w*|z
|_+|\$\w+)z�(?:%=|&=|\|=|\^=|\+=|\-=|\*=|/=|<<=|>\s*>\s*=|>\s*>\s*>\s*=|==|!=|<=|>\s*=|&&|\|\||<<|>>>|>\s*>|\.\.\.|<|>|%|&|\||\^|\+|\*|/|\-|=>|=)z(?!�)c c s� |� d�}|dkr*| j�|jd d � � n<|dkrN| jrf| jd d d � |_n|dkrf| jrf| j�� |dkrz|j�d� |dkr�|j�d � |�� tjd
| fV |�� |_ d S )N� �if)�else�elseif����end)r r �preproc-expr)�error�
preproc-error�#)
�group�
preproc_stack�append�stack�pop�startr �Preprocr �pos)�self�matchZctx�proc� r* �6/usr/lib/python3/dist-packages/pygments/lexers/haxe.py�preproc_callback; s
zHaxeLexer.preproc_callback�spaces�metaz
(?:package)\b)� semicolon�packagez(?:import)\b)r/ �importz(?:using)\b)r/ �usingz(?:extern|private)\bz(?:abstract)\b�abstractz(?:class|interface)\b�classz
(?:enum)\b�enumz
(?:typedef)\b�typedefz(?=.)�expr-statementz\s+z
//[^\n\r]*z /\*.*?\*/z(#)(if|elseif|else|end|error)\bz\$\{)�string-interpol-close�exprz\$\$z\$(?=�ident�
string-single�'�#popz\\.�.�"z\$z\}z\.�import-identz\*�in)r= r; )r= �
string-doublez\!z\()r= �preproc-parenthesisz\.[0-9]+z[0-9]+[eE][+\-]?[0-9]+z[0-9]+\.[0-9]*[eE][+\-]?[0-9]+z[0-9]+\.[0-9]+z[0-9]+\.(?!z|\.\.)z0x[0-9a-fA-F]+z[0-9]+z\)�preproc-expr-in-parenthesis)r= rD )r= �preproc-expr-chainrC )r= rE )r= rE r; )r= rE rB )r= �
abstract-body�abstract-relation�abstract-opaque�type-param-constraint� type-namez\{)r= �
class-body)r= �parenthesis-close�typez(?:to|from)rM �,�@)� meta-body�
meta-ident�
meta-colon�:)r= � meta-call)r= �
meta-call-sepr9 )r= �typedef-bodyrI rJ �=)r= �optional-semicolonrM )r= � enum-body�bracket-openrI rJ )�enum-memberrI )r= r/ �flag�function-param)r= r/ r\ )r= rK rZ �extendsrI rJ z(?:extends|implements)\bz9(?:static|public|private|override|dynamic|inline|macro)\b�class-memberz(var)\b)r= rX �varz(function)\b)r= rX �class-method)r= �
optional-exprr\ r] �parenthesis-openrI r9 z\?)r= �function-param-sep�assignr\ )r= r] )r= rL �prop-get-set-opt�commarf z((?:default|null|never|dynamic|get|set)\b)r= rX r9 )r= rb rP rQ rR z(?:\+\+|\-\-|~(?!/)|!|\-))r= �
expr-chain�parenthesisz3(?:static|public|private|override|dynamic|inline)\bz(?:function)\b)r= rh �function-local)r= rh �bracketz(?:true|false|null)\b)r= rh z
(?:this)\bz
(?:cast)\b)r= rh �castz (?:try)\b)r= �catchr9 z (?:var)\b)r= r` z (?:new)\b)r= rh �newz(?:switch)\b)r= �switchz(?:if)\b)r= r z(?:do)\b)r= �doz(?:while)\b)r= �whilez (?:for)\b)r= �forz(?:untyped|throw)\bz(?:return)\b)r= rb z(?:macro)\b)r= �macroz(?:continue|break)\bz(?:\$\s*[a-z]\b|\$(?!z)))r= �dollar)r= rh �string-single-interpol)r= rh rB z~/(\\\\|\\/|[^/\n])*/[gimsu]*z\[)r= rh �
array-declz
(?:\+\+|\-\-))r= r9 z(?:in)\b)r= r9 �ternaryr9 z(\.)(�array-access�call)r= rM )r= rX r3 )r= rX �macro-class)r= rX r5 )r= rX r6 )r= rL � cast-typer9 z(?:catch)\b)r9 r] rc )r= �do-whiler9 )r= ri rc )r= r9 ri )r= r rX r9 ri z
(?:else)\b)r= �switch-bodyrZ r9 z(?:case|default)\b)�
case-block�case)r= �case-sep�
case-guardr9 )r= r z(?!(?:case|default)\b|\}))r= ry rc rM z\])r= �array-decl-sepr9 )r= rv )r= �array-access-closer9 �;)r= rh �
bracket-closer9 )r= �
type-check�type-full-name)r= r� �type-struct)r= r� �type-parenthesisz->z<(?!=)�
type-param�>)rg rM )r= �type-struct-seprM �colonrK )r= r� z~/(\\\\|\\/|[^/\n])*/[gim]*)r= �type-param-sep�type-param-type)r= r� )r= �type-param-constraint-sep�type-param-constraint-flagrJ )r= �type-param-constraint-flag-type)r= �#type-param-constraint-flag-type-seprM )r= rL r\ r9 )r= �var-sepre r\ �prop-get-set)r= �call-sepr9 )r= ry z(?!(?:\$\s*[a-z]\b|\$(?!z))))r= �
bracket-check)r= r� r; )r= r� rB )r= �block)r= �
object-sepr9 )r= r� rX rh )r= r� r9 r� �ident-or-string)r= �object)i�rootr- ru r; rB r8 r0 r1 r@ r2 r r rC rE rD r3 rF rH rG r. rR rQ rP rT rU r6 rV r5 rY r[ r4 r^ rZ r� rK r_ rj rb ra r] rd r� rf r7 r9 rh rs rz rl r{ rm rp r| rq rr r r ro r} r r� r� r~ rn rv r� rx r� rg r� r/ rX r: rt rJ r� rM r� r� r� r� r� r� r� rI r� r� r� r� ri rc rL r` r� re r\ rw ry r� rk r� r� r� r� r� c C s t �d| �rdS d S )Nz\w+\s*:\s*\wg333333�?)�rer( )�textr* r* r+ �analyse_text} s zHaxeLexer.analyse_textN)/�__name__�
__module__�__qualname__�__doc__�name�aliases� filenamesZ mimetypes�keywordZtypeidr: ZbinopZident_no_keywordr� �DOTALL� MULTILINE�flagsr r, r r
Z NamespaceZDeclarationr r �SingleZ Multiliner ZInterpolZEscape�Doubler r r r% r
ZFloat�Hex�IntegerZ Decoratorr ZFunctionZConstantZRegexr �tokensr� r* r* r* r+ r s4
��
�
�
�
��
�
��
�
�
�
��
������
�
�
�
�
�
�
��������
� ����
���
��
�
� �� ����
�
�4�
��� �� �������������������������� ���
�
��� �� ��������������
�
���
� �� � � � � � � .c @ s� e Zd ZdZdZddgZdgZddeee j
�fdeeej�fd eee�fd
eeeee
�fdeeeej�fdeeeeejeejeejeej�
fd
eeeee
�fdejfgiZdS )r zb
Lexer for `haXe build <http://haxe.org/doc/compiler>`_ files.
.. versionadded:: 1.6
ZHxmlZhaxemlZhxmlz*.hxmlr� z
(--)(next)z(-)(prompt|debug|v)zY(--)(neko-source|flash-strict|flash-use-stage|no-opt|no-traces|no-inline|times|no-output)zO(-)(cpp|js|neko|x|as3|swf9?|swf-lib|php|xml|main|lib|D|resource|cp|cmd)( +)(.+)z(-)(swf-version)( +)(\d+)z;(-)(swf-header)( +)(\d+)(:)(\d+)(:)(\d+)(:)([A-Fa-f0-9]{6})zA(--)(js-namespace|php-front|php-lib|remap|gen-hx-classes)( +)(.+)z#.*N)r� r� r� r� r� r� r� r r r ZHeadingr
r r r
r� r� r r� r� r* r* r* r+ r � s@ ��� �����)r� r� Zpygments.lexerr r r r r Zpygments.tokenr r r r
r r r
r r r �__all__r r r* r* r* r+ �<module> s
0 r