a
    lc y                     @   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-2022 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 Zd 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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$efd%ejfd&ejfd'efgd(ejd)fd*ejfd+e d ejd,fed-gd.ejd/fd0ejfd1ejfgd2ej d/fd0ejfd1ej fgd3e ejfd4ejd/fgedee!jfd5e"d6fe#d/gedee!jfd7efd5e"d6fd8ejd,fe#d/gedd7ed/fee!jd/fgedee!jfd5e"d6fe#d/gd$efd.ejd9fd2ej d:fe#d/gd$efd;ej$fd<ej$d=feej$d/fd>e%j&fd?e%j&fd@e%j&fdAe%j&fdBe dC e%j&fdDe%j'fdEe%j(fd.ejd9fd2ej d:fgd$efdFej$d/fe#dGgd$efeej$dHfe#d/gd$efd;ej$fd<ej$dIfeej$dJfd>e%j&dJfd?e%j&dJfd@e%j&dJfdAe%j&dJfdBe dC e%j&dJfdDe%j'dJfdEe%j(dJfd.ejdKfd2ej dLfgede#dMgeddNe"dOfgedd<e"dPfe#d/geddQejdRfdSe"fe#d/geddTe!j)dUfgeddVe!j)d/fe#d/gedee!j)d/fgedd<e!j)dWfe#d/geddFe!j)d/fe#dXgeddFe!j)d/fdSe"dWfgede#dYgeddZe*d[fgede#d\gededd4e"d/fee!d]fgedd<e"d^fe#d_gede#d`geddaejdRfdSe"fe#d/geddNe"d/fgedd4e"d/fgededd4e"d/fdbejfe#dcgedddejdefdfejdgfgedee!j+dhfe#dhgededie#d/gedee!j+dhfgeddFe"d/fdje"fee!dkfgeddFe"d/fdSe"dlfgedd<e"dmfe#d/geddned/feed/fgede#dogeddTe!j)dpfdqe*fd<e"drfdsejfdtejdufdNe"dvfdwej,dxfdyedxfdzed{fd|ed}fd~ejdfdedfdedfdedfdedfdedfdedfdefdedfdedfded/fde d e!dfee!dxfd>e%j&dxfd?e%j&dxfd@e%j&dxfdAe%j&dxfdBe dC e%j&dxfdDe%j'dxfdEe%j(dxfd.ejdfd2ej dfdej-dxfde"dfg#edde*fee*dfdedfdje*dfde d e.e"e!fde"dfd<e"dfe#d/g	ededdVe"dfdejfdejdfdejdfdejdfd ejdfe#dg	dNe"dOfedgedd<e"dfe#dgeddSe"dfe#d/geddedfe#d/gede#dgeddedfgedd<e"dfgedd<e"dfgedd<e"dfgeddedfe#d/gede#dgeddedfd4e"d/fgeddVe"d/fe#dgeddVe"d/fdSe"dfgeddedfe#d/gedded#fe#d/gede#dgedde"d/fe#dgedde"d/fdSe"dfgede#dgedde"d/fgeddSe"d/fgeddVe"d/fgedde"d/fgedde"d/fe#d/gedee!d/fgeddNe"dfe#dxgede
e!d/fgedd5e"d,fe#d/geddje"fee!dfdNe"dfd<e"dfgede#dPgedde"dfde"dfe#d/gedd4e"d/fdje"fde"dfee!dfedăgedd4e"d/fdSe"dfgd>e%j&d/fd?e%j&d/fd@e%j&d/fdAe%j&d/fdBe dC e%j&d/fdDe%j'd/fdEe%j(d/fd.ejd9fd2ej d:fdej-d/fde*dfedRgede#dǃgedde"d/fdSe"dfgedde"dfe#d/gedde"d/fdSe"dfgeddVe"dfe#d/gedd<e"dfe#dgeddFe"d/fdSe"dRfgede#d̃gedd<e"d/fgeddFe"d/fgedeedfgeddSe"dfe#d/geddZe*dfe#d/geddVe"dfe#d/geddVe*d/fgeddFe"d/fe#d΃geddFe"d/fdSe"dfgedde d e e!dfd.ejdfd2ej dfe#dՃgeddVe"dfe#d׃gedd4e"d/fe#d#gedd4e"d/fe#d؃gedee!d/fd.ejd9fd2ej d:fgedd4e"d/fdSe"dfgdڜiZ/dd܄ Z0dS )r   z:
    For Haxe source code.

    .. versionadded:: 1.3
    Haxezhttp://haxe.org/)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 rN| jrf| jd d d  |_n|dkrf| jrf| j  |dv rz|jd |dv r|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.   P/var/www/html/django/DPS/env/lib/python3.9/site-packages/pygments/lexers/haxe.pypreproc_callback;   s    

zHaxeLexer.preproc_callbackspacesmetaz(?:package)\b)	semicolonpackagez(?:import)\b)r3   importz(?:using)\b)r3   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)rA   r?   )rA   string-doublez\!z\()rA   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]+z\)preproc-expr-in-parenthesis)rA   rH   )rA   preproc-expr-chainrG   )rA   rI   )rA   rI   r?   )rA   rI   rF   )rA   abstract-bodyabstract-relationabstract-opaquetype-param-constraint	type-namez\{)rA   
class-body)rA   parenthesis-closetypez(?:to|from)rQ   ,@)	meta-body
meta-ident
meta-colon:)rA   	meta-call)rA   meta-call-sepr=   )rA   typedef-bodyrM   rN   =)rA   optional-semicolonrQ   )rA   	enum-bodybracket-openrM   rN   )enum-memberrM   )rA   r3   flagfunction-param)rA   r3   r`   )rA   rO   r^   extendsrM   rN   z(?:extends|implements)\bz9(?:static|public|private|override|dynamic|inline|macro)\bclass-memberz(var)\b)rA   r\   varz(function)\b)rA   r\   class-method)rA   optional-exprr`   ra   parenthesis-openrM   r=   z\?)rA   function-param-sepassignr`   )rA   ra   )rA   rP   prop-get-set-optcommarj   z((?:default|null|never|dynamic|get|set)\b)rA   r\   r=   )rA   rf   rT   rU   rV   z(?:\+\+|\-\-|~(?!/)|!|\-))rA   
expr-chainparenthesisz3(?:static|public|private|override|dynamic|inline)\bz(?:function)\b)rA   rl   function-local)rA   rl   bracketz(?:true|false|null)\b)rA   rl   z
(?:this)\bz
(?:cast)\b)rA   rl   castz	(?:try)\b)rA   catchr=   z	(?:var)\b)rA   rd   z	(?:new)\b)rA   rl   newz(?:switch)\b)rA   switchz(?:if)\b)rA   r   z(?:do)\b)rA   doz(?:while)\b)rA   whilez	(?:for)\b)rA   forz(?:untyped|throw)\bz(?:return)\b)rA   rf   z(?:macro)\b)rA   macroz(?:continue|break)\bz(?:\$\s*[a-z]\b|\$(?!z)))rA   dollar)rA   rl   string-single-interpol)rA   rl   rF   z#~/(\\\\|\\[^\\]|[^/\\\n])*/[gimsu]*z\[)rA   rl   
array-declz(?:\+\+|\-\-))rA   r=   z(?:in)\b)rA   r=   ternaryr=   z(\.)(array-accesscall)rA   rQ   )rA   r\   r7   )rA   r\   macro-class)rA   r\   r9   )rA   r\   r:   )rA   rP   	cast-typer=   z(?:catch)\b)r=   ra   rg   )rA   do-whiler=   )rA   rm   rg   )rA   r=   rm   )rA   r   r\   r=   rm   z
(?:else)\b)rA   switch-bodyr^   r=   z(?:case|default)\b)
case-blockcase)rA   case-sep
case-guardr=   )rA   r   z(?!(?:case|default)\b|\}))rA   r}   rg   rQ   z\])rA   array-decl-sepr=   )rA   rz   )rA   array-access-closer=   ;)rA   rl   bracket-closer=   )rA   
type-checktype-full-name)rA   r   type-struct)rA   r   type-parenthesisz->z<(?!=)
type-param>)rk   rQ   )rA   type-struct-seprQ   colonrO   )rA   r   z!~/(\\\\|\\[^\\]|[^/\\\n])*/[gim]*)rA   type-param-septype-param-type)rA   r   )rA   type-param-constraint-septype-param-constraint-flagrN   )rA   type-param-constraint-flag-type)rA   #type-param-constraint-flag-type-seprQ   )rA   rP   r`   r=   )rA   var-sepri   r`   prop-get-set)rA   call-sepr=   )rA   r}   z(?!(?:\$\s*[a-z]\b|\$(?!z))))rA   bracket-check)rA   r   r?   )rA   r   rF   )rA   block)rA   
object-sepr=   )rA   r   r\   rl   )rA   r   r=   r   ident-or-string)rA   object)irootr1   ry   r?   rF   r<   r4   r5   rD   r6   r    r   rG   rI   rH   r7   rJ   rL   rK   r2   rV   rU   rT   rX   rY   r:   rZ   r9   r]   r_   r8   rb   r^   r   rO   rc   rn   rf   re   ra   rh   r   rj   r;   r=   rl   rw   r~   rp   r   rq   rt   r   ru   rv   r   r   rs   r   r   r   r   r   rr   rz   r   r|   r   rk   r   r3   r\   r>   rx   rN   r   rQ   r   r   r   r   r   r   r   rM   r   r   r   r   rm   rg   rP   rd   r   ri   r`   r{   r}   r   ro   r   r   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)1__name__
__module____qualname____doc__nameurlaliases	filenames	mimetypeskeywordZtypeidr>   binopZ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      s6  




































	



		












4



			
	








		




	            .c                   @   s   e Zd 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   z@
    Lexer for haXe build files.

    .. versionadded:: 1.6
    Hxmlz0https://haxe.org/manual/compiler-usage-hxml.htmlhaxemlhxmlz*.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   r   Headingr
   r   r   r   r   r   r   r   r   r.   r.   r.   r/   r     s:   )r   r   Zpygments.lexerr   r   r   r   r   Zpygments.tokenr   r   r	   r
   r   r   r   r   r   r   __all__r   r   r.   r.   r.   r/   <module>   s   
0      s