
    |e y                         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e      Z G d de      Zy)	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                      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
z   dz   ZdZde	z   dz   ez   Zej                  ej                   z  Zg Z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j6                  fd&ej8                  fd'efgd(d)ej<                  d*fd+ej>                  fd,ez   dz   ej<                  d-f ed.      gd.d/ej6                  d0fd1ej>                  fd2ej6                  fgd3d4ej@                  d0fd1ej>                  fd2ej@                  fgd5d6ez   ej<                  fd7ej<                  d0fgd8 e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j6                  d@fd4ej@                  dAf e#d0      gdBd$efdCejH                  fdDejH                  dEfeejH                  d0fdFe%jL                  fdGe%jL                  fdHe%jL                  fdIe%jL                  fdJez   dKz   e%jL                  fdLe%jN                  fdMe%jP                  fd/ej6                  d@fd4ej@                  dAfgdNd$efdOejH                  d0f e#dP      gdQd$efeejH                  dRf e#d0      gdPd$efdCejH                  fdDejH                  dSfeejH                  dTfdFe%jL                  dTfdGe%jL                  dTfdHe%jL                  dTfdIe%jL                  dTfdJez   dKz   e%jL                  dTfdLe%jN                  dTfdMe%jP                  dTfd/ej6                  dUfd4ej@                  dVfgd ed       e#dW      gdX e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!jR                  dbfgdc ed      dde!jR                  d0f e#d0      gde ed      ee!jR                  d0fgdf ed      dDe!jR                  dgf e#d0      gdh ed      dOe!jR                  d0f e#di      gdj ed      dOe!jR                  d0fd`e"dgfgd! ed       e#dk      gdl ed      dme*dnfgd ed       e#do      gdp ed       ed      d7e"d0fee!dqfgdr ed      dDe"dsf e#dt      gd ed       e#du      gdv ed      dwej.                  d_fd`e"f e#d0      gdx ed      dYe"d0fgdy ed      d7e"d0fgi dz ed       ed      d7e"d0fd{ej.                  f e#d|      gd| ed      d}ej.                  d~fdej.                  dfgd ed      ee!jV                  df e#d      gd ed       ed       e#d0      gd ed      ee!jV                  dfgd ed      dOe"d0fde"fee!dfgd ed      dOe"d0fd`e"dfgd ed      dDe"df e#d0      gd ed      ded0feed0fgd# ed       e#d      gdg  ed      dae!jR                  dfde*fdDe"dfdej.                  fdej.                  dfdYe"dfdejX                  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d0fdez   dz   e!dfee!dfdFe%jL                  dfdGe%jL                  dfdHe%jL                  dfdIe%jL                  dfdJez   dKz   e%jL                  dfdLe%jN                  dfdMe%jP                  dfd/ej6                  dfd4ej@                  dfdejZ                  dfde"dfd ed      de*fee*dfdedfde*dfdez   dz    e.e"e!      fde"dfdDe"df e#d0      g	d ed       ed      dde"dfdej.                  fdej.                  dfdej.                  dfdej.                  dfd ej.                  df e#d      g	ddYe"dZf ed      gd ed      dDe"df e#d      gd ed      d`e"df e#d0      gd ed      dedf e#d0      gi d ed       e#dЫ      gd ed      dedfgd ed      dDe"dfgd ed      dDe"dfgd ed      dDe"dfgd ed      dedf e#d0      gd ed       e#d۫      gd ed      dedfd7e"d0fgd ed      dde"d0f e#d      gd ed      dde"d0fd`e"dfgd ed      dedf e#d0      gd ed      ded#f e#d0      gd ed       e#d      gd ed      de"d0f e#d      gd ed      de"d0fd`e"dfgd ed       e#d      gd ed      de"d0fgi d ed      d`e"d0fgd ed      dde"d0fgd ed      de"d0fgd ed      de"d0f e#d0      gd- ed      ee!d0fgd ed      dYe"df e#d      gd ed      e
e!d0fgd ed      d9e"d-f e#d0      gd_ ed      de"fee!dfdYe"dfdDe"dfgd ed       e#d\      gd ed      de"dfde"df e#d0      gd  ed      d7e"d0fde"fde"dfee!df edz      gd ed      d7e"d0fd`e"dfgddFe%jL                  d0fdGe%jL                  d0fdHe%jL                  d0fdIe%jL                  d0fdJez   dKz   e%jL                  d0fdLe%jN                  d0fdMe%jP                  d0fd/ej6                  d@fd4ej@                  dAfdejZ                  d0fde*df ed_      gd ed       e#d      gd	 ed      de"d0fd`e"d
fgd ed      de"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"df e#d0      gd ed      dme*df e#d0      gd ed      dde"df 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z   d"z   ez   e!d#fd/ej6                  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j6                  d@fd4ej@                  dAfg ed      d7e"d0fd`e"d,fgd-Z/d. Z0y/(0  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              #   "  K   |j                  d      }|dk(  r)| j                  j                  |j                  d d         nS|dv r$| j                  rC| j                  d   d d  |_        n+|dk(  r&| j                  r| j                  j	                          |dv r|j                  j                  d       |dv r|j                  j                  d	       |j                         t        j                  d
|z   f |j                         |_	        y w)N   if)elseelseifend)r   r   preproc-expr)errorpreproc-error#)
grouppreproc_stackappendstackpopstartr	   Preprocr    pos)selfmatchctxprocs       6/usr/lib/python3/dist-packages/pygments/lexers/haxe.pypreproc_callbackzHaxeLexer.preproc_callback;   s     {{1~4<%%ciil3''!! ..r215	U]!!""&&( ##II^, 9II_-kkmW__cDj88))+s   DDrootspacesmetaz(?:package)\b)	semicolonpackagez(?:import)\b)r6   importz(?:using)\b)r6   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\}r7   z\.zimport-identr8   z\*inr9   r#   )rD   rB   )rD   rF   r!   z\!z\()rD   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]+rI   z\)preproc-expr-in-parenthesispreproc-expr-chain)rD   rJ   )rD   rK   rI   )rD   rK   )rD   rK   rB   )rD   rK   rF   )rD   abstract-bodyabstract-relationabstract-opaquetype-param-constraint	type-namerL   z\{)rD   
class-bodyrN   )rD   parenthesis-closetyperM   z(?:to|from)rS   ,@)	meta-body
meta-ident
meta-colonrX   :rW   rV   )rD   	meta-callrZ   )rD   meta-call-sepr@   r[   )rD   typedef-bodyrO   rP   r\   =)rD   optional-semicolonrS   )rD   	enum-bodybracket-openrO   rP   r_   )enum-memberrO   ra   )rD   r6   flagfunction-param)rD   r6   rb   )rD   rQ   r`   extendsrO   rP   rd   z(?:extends|implements)\br`   bracket-closerQ   z9(?:static|public|private|override|dynamic|inline|macro)\bzclass-memberz(var)\b)rD   r^   varz(function)\b)rD   r^   class-methodfunction-local)rD   optional-exprrb   rc   parenthesis-openrO   ri   r@   rg   rc   z\?)rD   function-param-sepassignrb   rk   )rD   rc   prop-get-set)rD   rR   prop-get-set-optcommarn   rn   z((?:default|null|never|dynamic|get|set)\b)rD   r^   r@   )rD   ri   rV   rW   rX   z(?:\+\+|\-\-|~(?!/)|!|\-))rD   
expr-chainparenthesisz3(?:static|public|private|override|dynamic|inline)\bz(?:function)\b)rD   rp   rh   )rD   rp   bracketz(?:true|false|null)\b)rD   rp   z
(?:this)\bz
(?:cast)\b)rD   rp   castz	(?:try)\b)rD   catchr@   z	(?:var)\b)rD   rf   z	(?:new)\b)rD   rp   newz(?:switch)\b)rD   switchz(?:if)\b)rD   r   z(?:do)\b)rD   doz(?:while)\b)rD   whilez	(?:for)\b)rD   forz(?:untyped|throw)\bz(?:return)\b)rD   ri   z(?:macro)\b)rD   macroz(?:continue|break)\bz(?:\$\s*[a-z]\b|\$(?!z)))rD   dollar)rD   rp   r>   )rD   rp   rF   z#~/(\\\\|\\[^\\]|[^/\\\n])*/[gimsu]*z\[)rD   rp   
array-declrp   z(?:\+\+|\-\-))rD   r@   z(?:in)\b)rD   r@   ternaryr@   z(\.)(zarray-accesscallrz   )rD   rS   )rD   r^   r:   )rD   r^   macro-class)rD   r^   r<   )rD   r^   r=   r   rs   )rD   rR   	cast-typer@   r   rt   z(?:catch)\b)r@   rc   rj   rw   )rD   do-whiler@   r   )rD   rq   rj   rx   )rD   r@   rq   ry   r   )rD   r   r^   r@   rq   r   z
(?:else)\brv   )rD   switch-bodyr`   r@   r   z(?:case|default)\b)
case-blockcaser   )rD   case-sep
case-guardr@   r   )rD   r   r   r   z(?!(?:case|default)\b|\})ru   )rD   r~   rj   rS   r|   z\])rD   array-decl-sepr@   r   )rD   r|   )rD   array-access-closer@   r   ro   colonr6   ;r^   r{   )rD   rp   re   r@   rP   type-full-name)rD   
type-checkr   )rD   r   type-struct)rD   r   type-parenthesisr   r   z->z<(?!=)
type-paramr   >)ro   rS   )rD   type-struct-seprS   r   r   )rD   r   type-param-typez!~/(\\\\|\\[^\\]|[^/\\\n])*/[gim]*)rD   type-param-sepr   r   )rD   r   rO   )rD   type-param-constraint-septype-param-constraint-flagrP   r   r   )rD   type-param-constraint-flag-typer   )rD   #type-param-constraint-flag-type-seprS   r   rq   )rD   rR   rb   r@   rj   rR   rf   )rD   var-seprl   rb   rm   r   rl   rb   r}   )rD   call-sepr@   r   )rD   r~   rr   z(?!(?:\$\s*[a-z]\b|\$(?!z))))rD   bracket-check)rD   r   rB   )rD   r   rF   )rD   blockr   )rD   
object-sepr@   )rD   r   r^   rp   r   )rD   r   r@   r   ident-or-string)rD   object)r   r   r   c                 2    t        j                  d|       ryy )Nz\w+\s*:\s*\wg333333?)rer.   )texts    r1   analyse_textzHaxeLexer.analyse_text}  s    88OT* +    N)1__name__
__module____qualname____doc__nameurlaliases	filenames	mimetypeskeywordtypeidrA   binopident_no_keywordr   DOTALL	MULTILINEflagsr&   r2   r   r   	NamespaceDeclarationr   r   r	   Single	Multiliner   InterpolEscapeDoubler   r   r   r+   r   FloatHexInteger	Decoratorr
   FunctionConstantRegexr   tokensr    r   r1   r   r      s`    D
C$G"I9I;G F )61MAEE
 '#-5II$EM4fHFOw002JKg//1HIW..0FG$g&9&9: 3 3Z@%w':':GDG//8w22I> t-.!
f* 	Z GNN+7,,-/1AB	
+f8 	!foo'HIfmm$#V__g>O$	#
9fF 	6==&)V]]#6==!
GfR 	6==&)V]]#6==!
Sf^ 	 5[&//*FOOV,"
_fh 	HDNN#K0FO	
ifv 	HDNN#GK0G%%w/FO
wfH 	HGV$DNNF+
IfT 	HDNN#K0FO	
Ufb 	Z 6==";<6==";<FO	
cfp 	Z GOO$GOO%DEGOOV, &,,'&5.=-e#i/> 

+' 6==";<6==";<)
qf^ 	Z GOOV,12 
_fj 	Z GOO%LMFO
kfx 	&Z GOO$GOOBD GOO%CD &,,(FG&6TU.>\].LMe#i/?]^ 

,JK(FG 6==<>6==<>-(
yfl 	H M N
mfx 	HK!78
yfB 	HK!FGFO
CfN 	HW00&9;FO	
Of\ 	H4>>#LM
]fh 	H4>>6*FO
ifv 	HDNNF+
wf@ 	HDNN$9:FO
AfL 	HDNNF+56
MfX 	HDNNF+; 56
Yfd 	H " #
efp 	H8CD
qfz 	H ; <
{fF 	HFOK(t%MN	
GfT 	HK<>12	
Ufb 	H ; <
cfn 	H('*=*=vF;FO
of~ 	HK(
fH 	HK(
IfR 	HFOK(I  "N#
Sfd 	H,,24g11;=	
efv 	Ht}};<  B C
wfH	 	HFOFO
I	fT	 	HDMM $= >
U	fd	 	HK(K t=?	
e	ft	 	HK(; :;
u	f@
 	HK "S TFO	
A
fN
 	H8'6JtV,
O
fZ
 	H :;	
[
fh
 	 1
H1
4>> $@ A1
 *84	1

 K!FG1
 D  "1
  3 3 6H I1
 K!BC1
 &w'7'79OP1
 G%;<1
 G%CD1
 7$=>1
 7..@1
  7$AB!1
" g'9:#1
$ '>2%1
& '>2'1
( W&78)1
* 7O4+1
, $W--1
. g'@A/1
0 W&7811
2 %gv631
4 &e+D0$8JK51
6 t%;<71
< &,,(>?=1
> '6LM?1
@ />TUA1
B .DEC1
D e#i/?UVE1
J 

,BCK1
L (>?M1
R 6=="RSS1
T 6=="IJU1
Z 4V\\CYZ[1
` K!EFa1
i
fN 	Hx(H./'#34HAB((3.d0KLK0K(FO

Ofh 	HFO; 01$g&9&9: 3 35_`%w':':<ijG//1WXw224]^$%
ifD 	K!78G
EfP 	HK "7 8$%	
Qf` 	H; 01FO
afl 	HW '; <FO	
mf| 	H01
}fH 	HW '; <
IfT 	HK!@A
Uf^ 	HK!@A
_fh 	HK "1 2
ift 	HG%56FO
uf@ 	HCD
AfJ 	H"G-CDK(
KfV 	H;'>?
Wfb 	H;'; 01
cfn 	H'#NOFO
of| 	H)74DEFO
}fH 	H@A
IfR 	HK(67
Sf^ 	HK(; 67
_fj 	H:;
kft 	HK(
uf~ 	H;'
fH 	H;'
IfR 	H;'
Sf\ 	H;'FO
]fj 	HD&!
kft 	HK!PQ*+
uf@ 	HT6"
AfJ 	HK)FO
KfV 	HK DBCK!FGK!KL
Wff 	H9:
gfp 	HK!12\2FO	
qf~ 	HK(K ; 12t%QRL!
fP 	HK(; 78
Qf^ 	&,,/&f=.fEf5e#i/vF 

F3/ 6==";<6==";< 26<<H H45FO-
_fT 	HAB
Uf^ 	H;'; 67
_fn 	 H &Q RFO	"
of| 	$H;'; !L M&
}fL 	%H; KLFO'
MfX 	*HK "* +$%	,
Yff 	.HK(;'0
gft 	HAB
uf~ 	HK(
fH 	HK(
IfR 	Ht%Z[
Sf^ 	H;0FO
_fl 	H8-.FO
mfz 	H; 01FO
{fH 	H8V$
IfT 	HK(01
Ufb 	HK(; 01
cfp 	H(.u47GG&(6=="LM6=="LM%&
qfB 	H; >?IJ
CfP 	HK($%
Qf` HK(NO
 HtV,6==";<6==";<	
 HK(; 23
}fFPr   c                   |   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y)r   z@
    Lexer for haXe build files.

    .. versionadded:: 1.6
    Hxmlz0https://haxe.org/manual/compiler-usage-hxml.htmlhaxemlhxmlz*.hxmlr3   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   r1   r   r     s   
 D
<C G
I 	H['//BC#Xk7??%KL+,4[',JL k7J?A *k7JGI Lk7J!6>>;!6::/0
{GZHJ W^^$3
Fr   )r   r   pygments.lexerr   r   r   r   r   pygments.tokenr   r	   r
   r   r   r   r   r   r   r   __all__r   r   r   r   r1   <module>r      sP    
 - - - 
$j" jZ'
 'r   