o
    ‡ÎÖaÛx  ã                   @   s„   d Z ddlZddlmZ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mZmZ ddgZG dd„ deƒZG dd„ deƒZdS )	zÏ
    pygments.lexers.haxe
    ~~~~~~~~~~~~~~~~~~~~

    Lexers for Haxe and related stuff.

    :copyright: Copyright 2006-2021 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                   @   s8  e Zd ZdZdZg d¢ZddgZg d¢ZdZdZ	d	e	 d
 Z
dZde d e
 ZejejB Zg Zdd„ Zi dedƒedƒdejdfdejdfdejdfdejfdejdfdejdfdejdfd ejd!fd"ed#fg“dd$efd%ejfd&ejfd'efg“d(d)ejd*fd+ejfd,e
 d ejd-fed.ƒg“d.d/ejd0fd1ejfd2ejfg“d3d4ejd0fd1ejfd2ejfg“d5d6e
 ejfd7ejd0fg“d8edƒe
e jfd9e!d:fe"d0ƒg“d;edƒe
e jfd<efd9e!d:fd=ejd-fe"d0ƒg“d:edƒd<ed0fe
e jd0fg“d>edƒe
e jfd9e!d:fe"d0ƒg“d?d$efd/ejd@fd4ejdAfe"d0ƒg“dBd$efdCej#fdDej#dEfe
ej#d0fdFe$j%fdGe$j%fdHe$j%fdIe$j%fdJe
 dK e$j%fdLe$j&fdMe$j'fd/ejd@fd4ejdAfg“dNd$efdOej#d0fe"dPƒg“dQd$efeej#dRfe"d0ƒg“dPd$efdCej#fdDej#dSfe
ej#dTfdFe$j%dTfdGe$j%dTfdHe$j%dTfdIe$j%dTfdJe
 dK e$j%dTfdLe$j&dTfdMe$j'dTfd/ejdUfd4ejdVfg“dedƒe"dWƒg“dXedƒdYe!dZfg“i d[edƒdDe!d\fe"d0ƒg“d]edƒd^ejd_fd`e!fe"d0ƒg“dedƒdae j(dbfg“dcedƒdde j(d0fe"d0ƒg“deedƒe
e j(d0fg“dfedƒdDe j(dgfe"d0ƒg“dhedƒdOe j(d0fe"diƒg“djedƒdOe j(d0fd`e!dgfg“d!edƒe"dkƒg“dledƒdme)dnfg“dedƒe"doƒg“dpedƒedƒd7e!d0fee dqfg“dredƒdDe!dsfe"dtƒg“dedƒe"duƒg“dvedƒdwejd_fd`e!fe"d0ƒg“dxedƒdYe!d0fg“dyedƒd7e!d0fg“¥i dzedƒedƒd7e!d0fd{ejfe"d|ƒg“d|edƒd}ejd~fdejd€fg“d�edƒee j*d‚fe"d‚ƒg“dƒedƒed„ƒe"d0ƒg“d…edƒe
e j*d‚fg“d†edƒdOe!d0fd‡e!fee dˆfg“d‰edƒdOe!d0fd`e!dŠfg“d‹edƒdDe!dŒfe"d0ƒg“d�edƒdŽed0feed0fg“d#edƒe"d�ƒg“d„g edƒ‘dae j(d�f‘d‘e)f‘dDe!d’f‘d“ejf‘d”ejd•f‘dYe!d–f‘d—ej+d˜f‘d™ed˜f‘dšed›f‘dœed�f‘džejdŸf‘d ed¡f‘d¢ed£f‘d¤ed¥f‘d¦ed§f‘d¨ed©f‘dªed«f‘d¬ef‘d­ed®f‘d¯ed°f‘d±ed0f‘d²e
 d³ e d´f‘ee d˜f‘dFe$j%d˜f‘dGe$j%d˜f‘dHe$j%d˜f‘dIe$j%d˜f‘dJe
 dK e$j%d˜f‘dLe$j&d˜f‘dMe$j'd˜f‘d/ejdµf‘d4ejd¶f‘d·ej,d˜f‘d¸e!d¹f‘“dºedƒd»e)fee)d¼fd½ed¼fd‡e)d¾fd¿e d e-e!e ƒfd¸e!dÀfdDe!dÁfe"d0ƒg	“dÂedƒedƒdde!dÃfdejfdejdÄfdejdÅfdejdÆfd ejdÇfe"d¼ƒg	“dÈdYe!dZfedƒg“dÉedƒdDe!dÊfe"d¼ƒg“dËedƒd`e!dÃfe"d0ƒg“dÌedƒdÍedÎfe"d0ƒg“¥i dÏedƒe"dÐƒg“dÑedƒd¨edÒfg“dÓedƒdDe!dÔfg“dÕedƒdDe!dÔfg“dÖedƒdDe!d×fg“dØedƒdÙed¼fe"d0ƒg“dÚedƒe"dÛƒg“dÜedƒdÝedÞfd7e!d0fg“dßedƒdde!d0fe"dàƒg“dáedƒdde!d0fd`e!dâfg“dãedƒd¤edÒfe"d0ƒg“däedƒdåed#fe"d0ƒg“dæedƒe"dçƒg“dèedƒdée!d0fe"dêƒg“dëedƒdée!d0fd`e!dìfg“dÀedƒe"díƒg“dîedƒdée!d0fg“¥i dïedƒd`e!d0fg“dðedƒdde!d0fg“dñedƒdòe!d0fg“dóedƒdòe!d0fe"d0ƒg“d-edƒe
e d0fg“dôedƒdYe!dõfe"d˜ƒg“döedƒe	e d0fg“d÷edƒd9e!d-fe"d0ƒg“d_edƒd‡e!fe
e døfdYe!dùfdDe!dúfg“dûedƒe"d\ƒg“düedƒdýe!dÃfdþe!dÿfe"d0ƒg“�d edƒd7e!d0fd‡e!f�de!�dfee �dfedzƒg“�dedƒd7e!d0fd`e!�dfg“�ddFe$j%d0fdGe$j%d0fdHe$j%d0fdIe$j%d0fdJe
 dK e$j%d0fdLe$j&d0fdMe$j'd0fd/ejd@fd4ejdAf�dej,d0fd¸e)dìfed_ƒg“dÿedƒe"�dƒg“�d	edƒ�de!d0fd`e!�d
fg“�dedƒdþe!�dfe"d0ƒg“¥i �dedƒ�de!d0fd`e!�dfg“�dedƒdde!�dfe"d0ƒg“�dedƒdDe!�dfe"dÃƒg“�dedƒdOe!d0fd`e!d_fg“�dedƒe"�dƒg“�dedƒdDe!d0fg“�dedƒdOe!d0fg“�dedƒee�dfg“�dedƒd`e!dŸfe"d0ƒg“�dedƒdme)d¼fe"d0ƒg“�dedƒdde!dÃfe"d0ƒg“�dedƒdde)d0fg“dÁedƒdOe!d0fe"�dƒg“�dedƒdOe!d0fd`e!�dfg“�d edƒ�d!e
 �d" e e �d#fd/ej�d$fd4ej�d%fe"�d&ƒg“�d'edƒdde!�d(fe"�d)ƒg“�d*edƒd7e!d0fe"d#ƒg“¥edƒd7e!d0fe"�d+ƒgedƒee d0fd/ejd@fd4ejdAfgedƒd7e!d0fd`e!�d,fg�d-œ¥Z.�d.�d/„ Z/�d0S (1  r   zM
    For Haxe source code (http://haxe.org/).

    .. versionadded:: 1.3
    ÚHaxe)ÚhaxeÚhxslÚhxz*.hxz*.hxsl)z	text/haxeztext/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¡}|dkr| j |jd d … ¡ n|dv r(| jr'| jd d d … |_n|dkr4| jr4| j ¡  |dv r>|j d¡ |dv rH|j d	¡ | ¡ tjd
| fV  | ¡ |_	d S )Né   Úif)ÚelseÚelseiféÿÿÿÿÚend)r   r   úpreproc-expr)Úerrorúpreproc-errorú#)
ÚgroupÚpreproc_stackÚappendÚstackÚpopÚstartr   ÚPreprocr   Úpos)ÚselfÚmatchÚctxÚproc© r.   ú6/usr/lib/python3/dist-packages/pygments/lexers/haxe.pyÚpreproc_callback:   s"   €
€
zHaxeLexer.preproc_callbackÚrootÚspacesÚmetaz(?:package)\b)Ú	semicolonÚpackagez(?:import)\b)r4   Úimportz(?:using)\b)r4   Úusingz(?:extern|private)\bz(?:abstract)\bÚabstractz(?:class|interface)\bÚclassz
(?:enum)\bÚenumz(?:typedef)\bÚtypedefz(?=.)zexpr-statementz\s+z
//[^\n\r]*z	/\*.*?\*/z(#)(if|elseif|else|end|error)\bústring-single-interpolz\$\{)ústring-interpol-closeÚexprz\$\$z\$(?=Úidentústring-singleú'ú#popz\\.Ú.ústring-doubleú"r=   z\$z\}r5   z\.zimport-identr6   z\*Úinr7   r    )rB   r@   )rB   rD   r   z\!z\()rB   ú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|\.\.)z0x[0-9a-fA-F]+z[0-9]+rG   z\)úpreproc-expr-in-parenthesisúpreproc-expr-chain)rB   rH   )rB   rI   rG   )rB   rI   )rB   rI   r@   )rB   rI   rD   )rB   úabstract-bodyúabstract-relationúabstract-opaqueútype-param-constraintú	type-namerJ   z\{)rB   ú
class-bodyrL   )rB   úparenthesis-closeÚtyperK   z(?:to|from)rQ   ú,ú@)ú	meta-bodyú
meta-identú
meta-colonrV   ú:rU   rT   )rB   ú	meta-callrX   )rB   úmeta-call-sepr>   rY   )rB   útypedef-bodyrM   rN   rZ   ú=)rB   úoptional-semicolonrQ   )rB   ú	enum-bodyúbracket-openrM   rN   r]   )úenum-memberrM   r_   )rB   r4   Úflagúfunction-param)rB   r4   r`   )rB   rO   r^   ÚextendsrM   rN   rb   z(?:extends|implements)\br^   úbracket-closerO   z9(?:static|public|private|override|dynamic|inline|macro)\bzclass-memberz(var)\b)rB   r\   Úvarz(function)\b)rB   r\   úclass-methodúfunction-local)rB   úoptional-exprr`   ra   úparenthesis-openrM   rg   r>   re   ra   z\?)rB   úfunction-param-sepÚassignr`   ri   )rB   ra   úprop-get-set)rB   rP   úprop-get-set-optÚcommarl   rl   z((?:default|null|never|dynamic|get|set)\b)rB   r\   r>   )rB   rg   rT   rU   rV   z(?:\+\+|\-\-|~(?!/)|!|\-))rB   ú
expr-chainÚparenthesisz3(?:static|public|private|override|dynamic|inline)\bz(?:function)\b)rB   rn   rf   )rB   rn   Úbracketz(?:true|false|null)\b)rB   rn   z
(?:this)\bz
(?:cast)\b)rB   rn   Úcastz	(?:try)\b)rB   Úcatchr>   z	(?:var)\b)rB   rd   z	(?:new)\b)rB   rn   Únewz(?:switch)\b)rB   Úswitchz(?:if)\b)rB   r   z(?:do)\b)rB   Údoz(?:while)\b)rB   Úwhilez	(?:for)\b)rB   Úforz(?:untyped|throw)\bz(?:return)\b)rB   rg   z(?:macro)\b)rB   Úmacroz(?:continue|break)\bz(?:\$\s*[a-z]\b|\$(?!z)))rB   Údollar)rB   rn   r<   )rB   rn   rD   z#~/(\\\\|\\[^\\]|[^/\\\n])*/[gimsu]*z\[)rB   rn   ú
array-declrn   z(?:\+\+|\-\-))rB   r>   z(?:in)\b)rB   r>   Úternaryr>   z(\.)(zarray-accessÚcallrx   )rB   rQ   )rB   r\   r8   )rB   r\   úmacro-class)rB   r\   r:   )rB   r\   r;   r}   rq   )rB   rP   ú	cast-typer>   r~   rr   z(?:catch)\b)r>   ra   rh   ru   )rB   údo-whiler>   r   )rB   ro   rh   rv   )rB   r>   ro   rw   r   )rB   r   r\   r>   ro   r   z
(?:else)\brt   )rB   úswitch-bodyr^   r>   r€   z(?:case|default)\b)ú
case-blockÚcaser‚   )rB   úcase-sepú
case-guardr>   rƒ   )rB   r‚   r„   r�   z(?!(?:case|default)\b|\})rs   )rB   r|   rh   rQ   rz   z\])rB   úarray-decl-sepr>   r…   )rB   rz   )rB   úarray-access-closer>   r†   rm   Úcolonr4   ú;r\   ry   )rB   rn   rc   r>   rN   útype-full-name)rB   ú
type-checkr‰   )rB   rŠ   útype-struct)rB   rŠ   útype-parenthesisrŒ   rŠ   z->z<(?!=)ú
type-paramr‹   ú>)rm   rQ   )rB   útype-struct-seprQ   r‡   r�   )rB   r‹   útype-param-typez!~/(\\\\|\\[^\\]|[^/\\\n])*/[gim]*)rB   útype-param-sepr�   r‘   )rB   r�   rM   )rB   útype-param-constraint-sepútype-param-constraint-flagrN   r’   r“   )rB   útype-param-constraint-flag-typer”   )rB   ú#type-param-constraint-flag-type-seprQ   r•   ro   )rB   rP   r`   r>   rh   rP   rd   )rB   úvar-seprj   r`   rk   r–   rj   r`   r{   )rB   úcall-sepr>   r—   )rB   r|   rp   z(?!(?:\$\s*[a-z]\b|\$(?!z))))rB   úbracket-check)rB   r˜   r@   )rB   r˜   rD   )rB   Úblockr˜   )rB   ú
object-sepr>   )rB   r™   r\   rn   r™   )rB   rš   r>   r‡   úident-or-string)rB   Úobject)rœ   r›   rš   c                 C   s   t  d| ¡rdS d S )Nz\w+\s*:\s*\wg333333Ó?)Úrer+   )Útextr.   r.   r/   Úanalyse_text|  s   ÿzHaxeLexer.analyse_textN)0Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚnameÚaliasesÚ	filenamesÚ	mimetypesÚkeywordÚtypeidr?   ÚbinopÚident_no_keywordr�   ÚDOTALLÚ	MULTILINEÚflagsr#   r0   r   r
   Ú	NamespaceÚDeclarationr   r   r   ÚSingleÚ	Multiliner   ÚInterpolÚEscapeÚDoubler   r   r   r(   r   ÚFloatÚHexÚIntegerÚ	Decoratorr	   ÚFunctionÚConstantÚRegexr   ÚtokensrŸ   r.   r.   r.   r/   r      sp
   






ðÿüë
üä#
ýÝ)
ý×/
þÑ4üÌ;
úÅD
ý¼Jü¶Q

ü¯X



ì¨o
ý‘u
ý‹|ÿ






ÿÿê„ þ �é þ �ã "ý �Þ (
ü �Ø /
þ �Ñ 5
ý �Ë <
þ �Ä A
ý �¿ G
ý �¹ M
ý �³ Sþ �­ Yþ �§ ^þ �¢ dü �œ kÿü �• rþ �Ž x
û �ˆ  þ � �ÿ  þ � �ú  ÿú � �õ  ÿÿü � �ì  ÿû � �ã  &ý � �Ú  ,
þ � �Ô  4ÿü � �Ì  <ý � �Ä  Bü � �¾  Iý � �·  Oü � �±  Vÿ
þüûÿú
ø
ö
õôóò
ñðïîíìëêéèçæå
â
á
 à
!ß"Þ
%Û
&Ú
)×
*Ö
-Ó0Ð � �ª   
÷ � � �ö   



õ � � �é   %þ � � �Û   +ü � � �Õ   3ý � � �Í   9ü � � �Ç   Aþ � � �¿   Gþ � � �¹   Mþ � � �³   Rþ � � �®   Wþ � � �©   ]ý � � �£   cþ � � ��   hý � � �˜   ný � � �’   tý � � �Œ   zý � � �†    ý � � � �þ    þ � � � �ø    ý � � � �ó    ý � � � �í    þ � � � �ç    þ � � � �â    #þ � � � �Ý    (þ � � � �Ø    -þ � � � �Ó    2ý � � � �Î    9þ � � � �Ç    >ý � � � �Â    Dþ � � � �¼    Iý � � � �·    Oû � � � �±    Wþ � � � �©    \ü � � � �¤    c
ú � � � ��    l
ý � � � �”    s







ê � � � ��     þ � � � � �ñ     

ý � � � � �ì     
ü � � � � �ä     #

ý � � � � �Ý     +
ý � � � � �Õ     1
ü � � � � �Ï     8ý � � � � �È     ?þ � � � � �Á     Dþ � � � � �¼     Iþ � � � � �·     N
þ � � � � �²     Tý � � � � �¬     [ý � � � � �¥     bý � � � � �ž     iþ � � � � �—     oý � � � � �‘     v
ý � � � � �Š     }ÿú � � � � �ƒ      
ý � � � � � �ù      ý � � � � � �ò      ý

ü	
ý � � � � � �
Ü      .c                   @   s°   e Zd ZdZdZddgZdgZddeee	j
ƒfdeeejƒfd	eeeƒfd
eeeeeƒfdeeeeejƒfdeeeeejeejeejeejƒ
fdeeeeeƒfdejfgiZdS )r   zb
    Lexer for `haXe build <http://haxe.org/doc/compiler>`_ files.

    .. versionadded:: 1.6
    ÚHxmlÚhaxemlÚhxmlz*.hxmlr1   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   ÚHeadingr
   r   r   r   r¸   r·   r   r±   r½   r.   r.   r.   r/   r   �  s:    ÿþÿþÿÿçÿ)r£   r�   Úpygments.lexerr   r   r   r   r   Úpygments.tokenr   r   r	   r
   r   r   r   r   r   r   Ú__all__r   r   r.   r.   r.   r/   Ú<module>   s    
0      r