a
    ñ»jÁ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-present 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
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d0fd1ej fd2ejfgd3ej!d0fd1ej fd2ej!fgd4e ejfd5ejd0fgedƒee"jfd6e#d7fe$d0ƒgedƒee"jfd8efd6e#d7fd9ejd-fe$d0ƒgedƒd8ed0fee"jd0fgedƒee"jfd6e#d7fe$d0ƒgd%efd/ejd:fd3ej!d;fe$d0ƒgd%efd<ej%fd=ej%d>feej%d0fd?e&j'fd@e&j'fdAe&j'fdBe&j'fdCe dD e&j'fdEe&j(fdFe&j)fd/ejd:fd3ej!d;fgd%efdGej%d0fe$dHƒgd%efeej%dIfe$d0ƒgd%efd<ej%fd=ej%dJfeej%dKfd?e&j'dKfd@e&j'dKfdAe&j'dKfdBe&j'dKfdCe dD e&j'dKfdEe&j(dKfdFe&j)dKfd/ejdLfd3ej!dMfgedƒe$dNƒgedƒdOe#dPfgedƒd=e#dQfe$d0ƒgedƒdRejdSfdTe#fe$d0ƒgedƒdUe"j*dVfgedƒdWe"j*d0fe$d0ƒgedƒee"j*d0fgedƒd=e"j*dXfe$d0ƒgedƒdGe"j*d0fe$dYƒgedƒdGe"j*d0fdTe#dXfgedƒe$dZƒgedƒd[e+d\fgedƒe$d]ƒgedƒedƒd5e#d0fee"d^fgedƒd=e#d_fe$d`ƒgedƒe$daƒgedƒdbejdSfdTe#fe$d0ƒgedƒdOe#d0fgedƒd5e#d0fgedƒedƒd5e#d0fdcejfe$ddƒgedƒdeejdffdgejdhfgedƒee"j,dife$diƒgedƒedjƒe$d0ƒgedƒee"j,difgedƒdGe#d0fdke#fee"dlfgedƒdGe#d0fdTe#dmfgedƒd=e#dnfe$d0ƒgedƒdoed0feed0fgedƒe$dpƒgedƒdUe"j*dqfdre+fd=e#dsfdtejfduejdvfdOe#dwfdxej-dyfdzedyf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"dyfd?e&j'dyfd@e&j'dyfdAe&j'dyfdBe&j'dyfdCe dD e&j'dyfdEe&j(dyfdFe&j)dyfd/ejd–fd3ej!d—fd˜ej.dyfd™e#dšfg#edƒd›e+fee+dœfd�edœfdke+džfdŸe d e/e#e"ƒfd™e#d fd=e#d¡fe$d0ƒg	edƒedƒdWe#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	dOe#dPfedƒgedƒd=e#d§fe$dœƒgedƒdTe#d¢fe$d0ƒgedƒd¨ed©fe$d0ƒgedƒe$dªƒgedƒd‰ed«fgedƒd=e#d¬fgedƒd=e#d¬fgedƒd=e#d­fgedƒd®edœfe$d0ƒgedƒe$d¯ƒgedƒd°ed±fd5e#d0fgedƒdWe#d0fe$d²ƒgedƒdWe#d0fdTe#d³fgedƒd…ed«fe$d0ƒgedƒd´ed$fe$d0ƒgedƒe$dµƒgedƒd¶e#d0fe$d·ƒgedƒd¶e#d0fdTe#d¸fgedƒe$d¹ƒgedƒd¶e#d0fgedƒdTe#d0fgedƒdWe#d0fgedƒdºe#d0fgedƒdºe#d0fe$d0ƒgedƒee"d0fgedƒdOe#d»fe$dyƒgedƒee"d0fgedƒd6e#d-fe$d0ƒgedƒdke#fee"d¼fdOe#d½fd=e#d¾fgedƒe$dQƒgedƒd¿e#d¢fdÀe#dÁfe$d0ƒgedƒd5e#d0fdke#fdÂe#dÃfee"dÄfedÅƒgedƒd5e#d0fdTe#dÆfgd?e&j'd0fd@e&j'd0fdAe&j'd0fdBe&j'd0fdCe dD e&j'd0fdEe&j(d0fdFe&j)d0fd/ejd:fd3ej!d;fdÇej.d0fd™e+d¸fedSƒgedƒe$dÈƒgedƒdÂe#d0fdTe#dÉfgedƒdÀe#dÊfe$d0ƒgedƒdÂe#d0fdTe#dÊfgedƒdWe#dËfe$d0ƒgedƒd=e#dÌfe$d¢ƒgedƒdGe#d0fdTe#dSfgedƒe$dÍƒgedƒd=e#d0fgedƒdGe#d0fgedƒeedÎfgedƒdTe#d€fe$d0ƒgedƒd[e+dœfe$d0ƒgedƒdWe#d¢fe$d0ƒgedƒdWe+d0fgedƒdGe#d0fe$dÏƒgedƒdGe#d0fdTe#dÐfgedƒdÑe dÒ e e"dÓfd/ejdÔfd3ej!dÕfe$dÖƒgedƒdWe#d×fe$dØƒgedƒd5e#d0fe$d$ƒgedƒd5e#d0fe$dÙƒgedƒee"d0fd/ejd:fd3ej!d;fgedƒd5e#d0fdTe#dÚfgdÛœiZ0dÜdÝ„ Z1dÞS )ßr   z
    For Haxe source code.
    ÚHaxezhttp://haxe.org/)ÚhaxeÚhxslÚhxz*.hxz*.hxsl)z	text/haxeztext/x-haxez	text/x-hxz1.3a  (?: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.   ú:E:\soccer\ml_env\Lib\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   sJ   d}t  d| ¡rt|dƒ}t  d| ¡r0t|dƒ}t  d| ¡rFt|dƒ}|S )Nr   z\bimport\s+haxe\.gš™™™™™É?z\bStd\.gš™™™™™¹?z\btrace\s*\(gš™™™™™©?)ÚreÚsearchÚmax)ÚtextÚrvr.   r.   r/   Úanalyse_text|  s    


zHaxeLexer.analyse_textN)2Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚnameÚurlÚaliasesÚ	filenamesÚ	mimetypesÚversion_addedÚ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      s8  






ðü
ü
ý
ý
þü
ú

ýü

ü



ì
ý
ýÿ






ÿÿêþþý
ü
þ
ý
þ
ý
ý
ýþþþüÿüþ
û	þþÿú
ÿÿü
ÿû
ý
þ	ÿü	ýüýü
ÿ











Ð4÷



õþü	ýü	þþþþþýþýýýýýþýýþþþþþýþýþýû	þüú
ý	








êþý	üý	ýüýþþþþýýýþýýÿ

ú
ýýý

ü	ý€ € € € € € â      .c                   @   s¸   e Zd ZdZdZdZddgZdgZd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.
    ÚHxmlz0https://haxe.org/manual/compiler-usage-hxml.htmlÚhaxemlÚhxmlz*.hxmlz1.6r    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   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      x