o
    Zh 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-2023 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                   @   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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/d0ejd1fd2ejfd3ejfgd4d5ej d1fd2ejfd3ej fgd6d7e ejfd8ejd1fgd9edee!jfd:e"d;fe#d1gd<edee!jfd=efd:e"d;fd>ejd.fe#d1gd;edd=ed1fee!jd1fgd?edee!jfd:e"d;fe#d1gd@d%efd0ejdAfd5ej dBfe#d1gdCd%efdDej$fdEej$dFfeej$d1fdGe%j&fdHe%j&fdIe%j&fdJe%j&fdKe dL e%j&fdMe%j'fdNe%j(fd0ejdAfd5ej dBfgdOd%efdPej$d1fe#dQgdRd%efeej$dSfe#d1gdQd%efdDej$fdEej$dTfeej$dUfdGe%j&dUfdHe%j&dUfdIe%j&dUfdJe%j&dUfdKe dL e%j&dUfdMe%j'dUfdNe%j(dUfd0ejdVfd5ej dWfgdede#dXgdYeddZe"d[fgi d\eddEe"d]fe#d1gd^edd_ejd`fdae"fe#d1gdeddbe!j)dcfgddeddee!j)d1fe#d1gdfedee!j)d1fgdgeddEe!j)dhfe#d1gdieddPe!j)d1fe#djgdkeddPe!j)d1fdae"dhfgd"ede#dlgdmeddne*dofgd ede#dpgdqededd8e"d1fee!drfgdseddEe"dtfe#dugdede#dvgdweddxejd`fdae"fe#d1gdyeddZe"d1fgdzedd8e"d1fgi d{ededd8e"d1fd|ejfe#d}gd}edd~ejdfdejdfgdedee!j+dfe#dgdedede#d1gdedee!j+dfgdeddPe"d1fde"fee!dfgdeddPe"d1fdae"dfgdeddEe"dfe#d1gdedded1feed1fgd$ede#dgdg eddbe!j)dfde*fdEe"dfdejfdejdfdZe"dfdej,dfdedfdedfdedfdejdfdedfdedfdedfdedfdedfdedfdefdedfdedfded1fde d e!dfee!dfdGe%j&dfdHe%j&dfdIe%j&dfdJe%j&dfdKe dL e%j&dfdMe%j'dfdNe%j(dfd0ejdfd5ej dfdej-dfde"dfdedde*fee*dfdedfde*dfde d e.e"e!fde"dfdEe"dfe#d1g	dededdee"dfdejfdejdfdejdfdejdfd!ejdfe#dg	ddZe"d[fedgdeddEe"dfe#dgdeddae"dfe#d1gdeddedfe#d1gi dede#dуgdeddedfgdeddEe"dfgdeddEe"dfgdeddEe"dfgdeddedfe#d1gdede#d܃gdeddedfd8e"d1fgdeddee"d1fe#dgdeddee"d1fdae"dfgdeddedfe#d1gdedded$fe#d1gdede#dgdedde"d1fe#dgdedde"d1fdae"dfgdede#dgdedde"d1fgi deddae"d1fgdeddee"d1fgdedde"d1fgdedde"d1fe#d1gd.edee!d1fgdeddZe"dfe#dgdede
e!d1fgdedd:e"d.fe#d1gd`edde"fee!dfdZe"dfdEe"dfgdede#d]gdedde"dfde"d fe#d1gdedd8e"d1fde"fde"dfee!dfed{gdedd8e"d1fdae"dfgddGe%j&d1fdHe%j&d1fdIe%j&d1fdJe%j&d1fdKe dL e%j&d1fdMe%j'd1fdNe%j(d1fd0ejdAfd5ej dBfdej-d1fde*dfed`gd ede#d	gd
edde"d1fdae"dfgdedde"dfe#d1gi dedde"d1fdae"dfgdeddee"dfe#d1gdeddEe"dfe#dăgdeddPe"d1fdae"d`fgdede#dgdeddEe"d1fgdeddPe"d1fgdedeedfgdeddae"dfe#d1gdeddne*dfe#d1gdeddee"dfe#d1gdeddee*d1fgdeddPe"d1fe#dgdeddPe"d1fdae"d fgd!edd"e d# e e!d$fd0ejd%fd5ej d&fe#d'gd(eddee"d)fe#d*gd+edd8e"d1fe#d$gedd8e"d1fe#d,gedee!d1fd0ejdAfd5ej dBfgedd8e"d1fdae"d-fgd.Z/d/d0 Z0d1S (2  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 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.   K/var/www/html/lang_env/lib/python3.10/site-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)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      sr
   







#
)
/
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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*.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   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