§
    ïµ”cÄ   ã                  ó\  — d dl mZ d dlZd dlZd dlZddlmZ ddlm	Z	m
Z
mZmZmZmZmZmZmZ ej        rddlmZ ddlmZmZ  G d„ d	e	e         ¦  «        Z G d
„ de¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Z G d„ de¦  «        ZdS )é    )ÚannotationsNé   )Úversion_compare)	ÚObjectHolderÚMesonOperatorÚ
FeatureNewÚtyped_operatorÚnoArgsFlatteningÚnoKwargsÚ	noPosargsÚtyped_pos_argsÚInvalidArguments)ÚInterpreter)ÚTYPE_varÚTYPE_kwargsc                  ó   ‡ — e Zd Zd<ˆ fd„Zd=d„Ze ed	e¦  «        d>d„¦   «         ¦   «         Ze ede¦  «        d>d„¦   «         ¦   «         Z	e ede¦  «        d>d„¦   «         ¦   «         Z
ee ede¬¦  «        d?d„¦   «         ¦   «         ¦   «         Ze ede¬¦  «        d@d„¦   «         ¦   «         Ze edee¦  «        dAd„¦   «         ¦   «         Ze edeg¬¦  «        dBd"„¦   «         ¦   «         Ze ed#eg¬¦  «        dCd$„¦   «         ¦   «         Ze ed%eeg¬¦  «        dDd'„¦   «         ¦   «         ZeedEd*„¦   «         ¦   «         ZeedFd+„¦   «         ¦   «         ZeedFd,„¦   «         ¦   «         ZeedFd-„¦   «         ¦   «         Ze ed.e¦  «        d>d/„¦   «         ¦   «         ZedGd2„¦   «         Z ed3d4¦  «         eej        e¦  «        dHd5„¦   «         ¦   «         Z  eej!        e¦  «        dId6„¦   «         Z" ed7d8¦  «         eej#        e¦  «        dJd9„¦   «         ¦   «         Z$ ed:d8¦  «         eej%        e¦  «        dJd;„¦   «         ¦   «         Z&ˆ xZ'S )KÚStringHolderÚobjÚstrÚinterpreterú'Interpreter'ÚreturnÚNonec                óP  •‡ — t          ¦   «                              ||¦  «         ‰ j                             ‰ j        ‰ j        ‰ j        ‰ j        ‰ j        ‰ j	        ‰ j
        ‰ j        ‰ j        ‰ j        ‰ j        ‰ j        ‰ j        ‰ j        dœ¦  «         ‰ j                             t&          j        t*          ˆ fd„ft&          j        t*          ˆ fd„ft&          j        t*          ˆ fd„ft&          j        t*          ˆ fd„ft&          j        t*          ˆ fd„ft&          j        t*          ˆ fd„ft&          j        t*          ˆ fd„fi¦  «         ‰ j                             t&          j        ‰ j        t&          j        ‰ j         t&          j!        ‰ j"        t&          j#        ‰ j$        i¦  «         d S )	N)ÚcontainsÚ
startswithÚendswithÚformatÚjoinÚreplaceÚsplitÚstripÚ	substringÚto_intÚto_lowerÚto_upperÚunderscorifyr   c                ó   •— ‰j         | z   S ©N©Úheld_object©ÚxÚselfs    €úJ/usr/lib/python3/dist-packages/mesonbuild/interpreter/primitives/string.pyú<lambda>z'StringHolder.__init__.<locals>.<lambda>4   s   ø€ °Ô0@À1Ñ0D€ ó    c                ó   •— ‰j         | k    S r)   r*   r,   s    €r/   r0   z'StringHolder.__init__.<locals>.<lambda>7   s   ø€ °$Ô2BÀaÒ2G€ r1   c                ó   •— ‰j         | k    S r)   r*   r,   s    €r/   r0   z'StringHolder.__init__.<locals>.<lambda>8   s   ø€ °dÔ6FÈ!Ò6K€ r1   c                ó   •— ‰j         | k    S r)   r*   r,   s    €r/   r0   z'StringHolder.__init__.<locals>.<lambda>9   s   ø€ °4Ô3CÀaÒ3G€ r1   c                ó   •— ‰j         | k     S r)   r*   r,   s    €r/   r0   z'StringHolder.__init__.<locals>.<lambda>:   s   ø€ °Ô0@À1Ò0D€ r1   c                ó   •— ‰j         | k    S r)   r*   r,   s    €r/   r0   z'StringHolder.__init__.<locals>.<lambda>;   s   ø€ ¸$Ô:JÈaÒ:O€ r1   c                ó   •— ‰j         | k    S r)   r*   r,   s    €r/   r0   z'StringHolder.__init__.<locals>.<lambda><   s   ø€ °tÔ7GÈ1Ò7L€ r1   )%ÚsuperÚ__init__ÚmethodsÚupdateÚcontains_methodÚstartswith_methodÚendswith_methodÚformat_methodÚjoin_methodÚreplace_methodÚsplit_methodÚstrip_methodÚsubstring_methodÚto_int_methodÚto_lower_methodÚto_upper_methodÚunderscorify_methodÚversion_compare_methodÚtrivial_operatorsr   ÚPLUSr   ÚEQUALSÚ
NOT_EQUALSÚGREATERÚLESSÚGREATER_EQUALSÚLESS_EQUALSÚ	operatorsÚDIVÚop_divÚINDEXÚop_indexÚINÚop_inÚNOT_INÚop_notin)r.   r   r   Ú	__class__s   `  €r/   r9   zStringHolder.__init__   s®  øø€ Ý‰Œ×Ò˜˜kÑ*Ô*Ð*ØŒ×ÒØÔ,ØÔ0ØÔ,ØÔ(ØÔ$ØÔ*ØÔ&ØÔ&ØÔ.ØÔ(ØÔ,ØÔ,Ø Ô4Ø#Ô:ð
ð 
ñ 	ô 	ð 	ð" 	Ô×%Ò%åÔ¥Ð&DÐ&DÐ&DÐ&DÐ Eõ Ô ¥3Ð(GÐ(GÐ(GÐ(GÐ"HÝÔ$¥sÐ,KÐ,KÐ,KÐ,KÐ&LÝÔ!¥CÐ)GÐ)GÐ)GÐ)GÐ#HÝÔ¥Ð&DÐ&DÐ&DÐ&DÐ EÝÔ(­3Ð0OÐ0OÐ0OÐ0OÐ*PÝÔ%­Ð-LÐ-LÐ-LÐ-LÐ'Mð'
ñ 	ô 	ð 	ð 	Œ×ÒÝÔ˜tœ{ÝÔ ¤ÝÔ˜dœjÝÔ  $¤-ð	
ñ 	ô 	ð 	ð 	ð 	r1   c                ó   — dS )Nr   © ©r.   s    r/   Údisplay_namezStringHolder.display_nameG   s   € Øˆur1   zstr.containsÚargsúT.Tuple[str]Úkwargsr   Úboolc                óJ   — | j                              |d         ¦  «        dk    S ©Nr   )r+   Úfind©r.   r`   rb   s      r/   r<   zStringHolder.contains_methodJ   s$   € ð Ô×$Ò$ T¨!¤WÑ-Ô-°Ò2Ð2r1   zstr.startswithc                óB   — | j                              |d         ¦  «        S re   )r+   r   rg   s      r/   r=   zStringHolder.startswith_methodO   s   € ð Ô×*Ò*¨4°¬7Ñ3Ô3Ð3r1   zstr.endswithc                óB   — | j                              |d         ¦  «        S re   )r+   r   rg   s      r/   r>   zStringHolder.endswith_methodT   s   € ð Ô×(Ò(¨¨a¬Ñ1Ô1Ð1r1   z
str.format)ÚvarargsúT.Tuple[T.List[object]]c                ó  ‡— g Š|d         D ]Z}t          |t          ¦  «        r!t          |¦  «                             ¦   «         }‰                     t          |¦  «        ¦  «         Œ[dˆfd„}t          j        d|| j        ¦  «        S )	Nr   ÚmatchúT.Match[str]r   r   c                ó¤   •— t          |                      d¦  «        ¦  «        }|t          ‰¦  «        k    rt          d|› d�¦  «        ‚‰|         S )Né   zFormat placeholder @z@ out of range.)ÚintÚgroupÚlenr   )rm   ÚidxÚarg_stringss     €r/   Úarg_replacez/StringHolder.format_method.<locals>.arg_replacec   sR   ø€ Ý�e—k’k !‘n”nÑ%Ô%ˆCØ•c˜+Ñ&Ô&Ò&Ð&Ý&Ð'R¸cÐ'RÐ'RÐ'RÑSÔSÐSØ˜sÔ#Ð#r1   z@(\d+)@)rm   rn   r   r   )Ú
isinstancerc   r   ÚlowerÚappendÚreÚsubr+   )r.   r`   rb   Úargrv   ru   s        @r/   r?   zStringHolder.format_methodY   s˜   ø€ ð $&ˆØ˜”7ð 	)ð 	)ˆCÝ˜#�tÑ$Ô$ð 'Ý˜#‘h”h—n’nÑ&Ô&�Ø×Ò�s 3™xœxÑ(Ô(Ð(Ð(ð	$ð 	$ð 	$ð 	$ð 	$ð 	$õ Œv�j +¨tÔ/?Ñ@Ô@Ð@r1   zstr.joinúT.Tuple[T.List[str]]c                óB   — | j                              |d         ¦  «        S re   )r+   r   rg   s      r/   r@   zStringHolder.join_methodk   s   € ð Ô×$Ò$ T¨!¤WÑ-Ô-Ð-r1   zstr.replaceúT.Tuple[str, str]c                óP   — | j                              |d         |d         ¦  «        S ©Nr   rp   )r+   r    rg   s      r/   rA   zStringHolder.replace_methodp   s%   € ð Ô×'Ò'¨¨Q¬°°a´Ñ9Ô9Ð9r1   z	str.split)ÚoptargsúT.Tuple[T.Optional[str]]úT.List[str]c                óB   — | j                              |d         ¦  «        S re   )r+   r!   rg   s      r/   rB   zStringHolder.split_methodu   ó   € ð Ô×%Ò% d¨1¤gÑ.Ô.Ð.r1   z	str.stripc                óB   — | j                              |d         ¦  «        S re   )r+   r"   rg   s      r/   rC   zStringHolder.strip_methodz   r†   r1   zstr.substringú)T.Tuple[T.Optional[int], T.Optional[int]]c                óŒ   — |d         �|d         nd}|d         �|d         nt          | j        ¦  «        }| j        ||…         S r�   )rs   r+   )r.   r`   rb   ÚstartÚends        r/   rD   zStringHolder.substring_method   sM   € ð   œ7Ð.��Q”�°AˆØ˜aœÐ,ˆd�1Œgˆgµ#°dÔ6FÑ2GÔ2GˆØÔ  c 	Ô*Ð*r1   úT.List[TYPE_var]rq   c                óx   — 	 t          | j        ¦  «        S # t          $ r t          d| j        ›d�¦  «        ‚w xY w)NzString z cannot be converted to int)rq   r+   Ú
ValueErrorr   rg   s      r/   rE   zStringHolder.to_int_method†   sU   € ð	^Ý�tÔ'Ñ(Ô(Ð(øÝð 	^ð 	^ð 	^Ý"Ð#\¨TÔ-=Ð#\Ð#\Ð#\Ñ]Ô]Ð]ð	^øøøs   ‚ –#9c                ó4   — | j                              ¦   «         S r)   )r+   rx   rg   s      r/   rF   zStringHolder.to_lower_methodŽ   ó   € ð Ô×%Ò%Ñ'Ô'Ð'r1   c                ó4   — | j                              ¦   «         S r)   )r+   Úupperrg   s      r/   rG   zStringHolder.to_upper_method“   r�   r1   c                ó8   — t          j        dd| j        ¦  «        S )Nz[^a-zA-Z0-9]Ú_)rz   r{   r+   rg   s      r/   rH   z StringHolder.underscorify_method˜   s   € õ Œv�o s¨DÔ,<Ñ=Ô=Ð=r1   ústr.version_comparec                ó8   — t          | j        |d         ¦  «        S re   )r   r+   rg   s      r/   rI   z#StringHolder.version_compare_method�   s   € õ ˜tÔ/°°a´Ñ9Ô9Ð9r1   ÚthisÚotherc                ój   — t           j                             | |¦  «                             dd¦  «        S )Nú\ú/)ÚosÚpathr   r    )r—   r˜   s     r/   Ú_op_divzStringHolder._op_div¢   s(   € åŒw�|Š|˜D %Ñ(Ô(×0Ò0°°sÑ;Ô;Ð;r1   z/ with string argumentsz0.49.0c                ó8   — |                       | j        |¦  «        S r)   )rž   r+   ©r.   r˜   s     r/   rT   zStringHolder.op_div¦   s   € ð �|Š|˜DÔ,¨eÑ4Ô4Ð4r1   c           	     óŠ   — 	 | j         |         S # t          $ r) t          d|› dt          | j         ¦  «        › d�¦  «        ‚w xY w)NzIndex z! out of bounds of string of size ú.)r+   Ú
IndexErrorr   rs   r    s     r/   rV   zStringHolder.op_index«   sd   € ð	nØÔ# EÔ*Ð*øÝð 	nð 	nð 	nÝ"Ð#l¨EÐ#lÐ#lÕTWÐX\ÔXhÑTiÔTiÐ#lÐ#lÐ#lÑmÔmÐmð	nøøøs	   ‚ �3Az"in" string operatorz1.0.0c                ó   — || j         v S r)   r*   r    s     r/   rX   zStringHolder.op_in²   s   € ð ˜Ô(Ð(Ð(r1   z"not in" string operatorc                ó   — || j         vS r)   r*   r    s     r/   rZ   zStringHolder.op_notin·   s   € ð ˜DÔ,Ð,Ð,r1   )r   r   r   r   r   r   )r   r   ©r`   ra   rb   r   r   rc   )r`   rk   rb   r   r   r   )r`   r}   rb   r   r   r   )r`   r   rb   r   r   r   )r`   rƒ   rb   r   r   r„   )r`   rƒ   rb   r   r   r   )r`   rˆ   rb   r   r   r   )r`   rŒ   rb   r   r   rq   )r`   rŒ   rb   r   r   r   )r—   r   r˜   r   r   r   )r˜   r   r   r   )r˜   rq   r   r   )r˜   r   r   rc   )(Ú__name__Ú
__module__Ú__qualname__r9   r_   r   r   r   r<   r=   r>   r
   Úobjectr?   r@   rA   rB   rC   rq   rD   r   rE   rF   rG   rH   rI   Ústaticmethodrž   r   r	   r   rS   rT   rU   rV   rW   rX   rY   rZ   Ú__classcell__©r[   s   @r/   r   r      sz  ø€ € € € € ð&ð &ð &ð &ð &ð &ðPð ð ð ð Ø€^�N CÑ(Ô(ð3ð 3ð 3ñ )Ô(ñ „Xð3ð Ø€^Ð$ cÑ*Ô*ð4ð 4ð 4ñ +Ô*ñ „Xð4ð Ø€^�N CÑ(Ô(ð2ð 2ð 2ñ )Ô(ñ „Xð2ð ØØ€^�L¨&Ð1Ñ1Ô1ðAð Að Añ 2Ô1ñ „Xñ ÔðAð Ø€^�J¨Ð,Ñ,Ô,ð.ð .ð .ñ -Ô,ñ „Xð.ð Ø€^�M 3¨Ñ,Ô,ð:ð :ð :ñ -Ô,ñ „Xð:ð Ø€^�K¨#¨Ð/Ñ/Ô/ð/ð /ð /ñ 0Ô/ñ „Xð/ð Ø€^�K¨#¨Ð/Ñ/Ô/ð/ð /ð /ñ 0Ô/ñ „Xð/ð Ø€^�O¨c°3¨ZÐ8Ñ8Ô8ð+ð +ð +ñ 9Ô8ñ „Xð+ð
 Øð^ð ^ð ^ñ „Yñ „Xð^ð Øð(ð (ð (ñ „Yñ „Xð(ð Øð(ð (ð (ñ „Yñ „Xð(ð Øð>ð >ð >ñ „Yñ „Xð>ð Ø€^Ð)¨3Ñ/Ô/ð:ð :ð :ñ 0Ô/ñ „Xð:ð ð<ð <ð <ñ „\ð<ð €ZÐ)¨8Ñ4Ô4Ø€^�MÔ% sÑ+Ô+ð5ð 5ð 5ñ ,Ô+ñ 5Ô4ð5ð €^�MÔ'¨Ñ-Ô-ðnð nð nñ .Ô-ðnð €ZÐ&¨Ñ0Ô0Ø€^�MÔ$ cÑ*Ô*ð)ð )ð )ñ +Ô*ñ 1Ô0ð)ð €ZÐ*¨GÑ4Ô4Ø€^�MÔ(¨#Ñ.Ô.ð-ð -ð -ñ /Ô.ñ 5Ô4ð-ð -ð -ð -ð -r1   r   c                  ó   — e Zd ZdS )ÚMesonVersionStringN©r§   r¨   r©   r]   r1   r/   r¯   r¯   ½   ó   € € € € € Ø€Dr1   r¯   c                  óJ   — e Zd Ze ede¦  «        d
d„¦   «         ¦   «         Zd	S )ÚMesonVersionStringHolderr•   r`   ra   rb   r   r   rc   c                ó\   — |d         | j         _        t          | j        |d         ¦  «        S re   )r   Útmp_meson_versionr   r+   rg   s      r/   rI   z/MesonVersionStringHolder.version_compare_methodÁ   s*   € ð .2°!¬WˆÔÔ*Ý˜tÔ/°°a´Ñ9Ô9Ð9r1   Nr¦   )r§   r¨   r©   r   r   r   rI   r]   r1   r/   r³   r³   À   sJ   € € € € € ØØ€^Ð)¨3Ñ/Ô/ð:ð :ð :ñ 0Ô/ñ „Xð:ð :ð :r1   r³   c                  ó   — e Zd ZdS )ÚDependencyVariableStringNr°   r]   r1   r/   r·   r·   Ì   r±   r1   r·   c                  ó    ‡ — e Zd Zdˆ fd„Zˆ xZS )ÚDependencyVariableStringHolderr˜   r   r   ú&T.Union[str, DependencyVariableString]c                óp   •— t          ¦   «                              |¦  «        }d|v r|S t          |¦  «        S )Nz..)r8   rT   r·   )r.   r˜   Úretr[   s      €r/   rT   z%DependencyVariableStringHolder.op_divÐ   s4   ø€ Ý‰gŒg�nŠn˜UÑ#Ô#ˆØ�5ˆ=ˆ=ØˆJÝ'¨Ñ,Ô,Ð,r1   )r˜   r   r   rº   )r§   r¨   r©   rT   r¬   r­   s   @r/   r¹   r¹   Ï   s=   ø€ € € € € ð-ð -ð -ð -ð -ð -ð -ð -ð -ð -r1   r¹   c                  ó*   — e Zd ZU ded<   dd„Zdd	„Zd
S )ÚOptionStringr   ÚoptnameÚvalueÚnamer   ú'OptionString'c                óJ   — t                                | |¦  «        }||_        |S r)   )r   Ú__new__r¿   )ÚclsrÀ   rÁ   r   s       r/   rÄ   zOptionString.__new__Ú   s!   € Ý�kŠk˜#˜uÑ%Ô%ˆØˆŒØˆ
r1   r   c                ó.   — t          | ¦  «        | j        fS r)   )r   r¿   r^   s    r/   Ú__getnewargs__zOptionString.__getnewargs__ß   s   € Ý�D‘	”	˜4œ<Ð(Ð(r1   N)rÀ   r   rÁ   r   r   rÂ   )r   r   )r§   r¨   r©   Ú__annotations__rÄ   rÇ   r]   r1   r/   r¾   r¾   ×   sG   € € € € € € Ø€L€L�Lðð ð ð ð
)ð )ð )ð )ð )ð )r1   r¾   c                  ó,   ‡ — e Zd ZU ded<   dˆ fd„Zˆ xZS )	ÚOptionStringHolderr¾   r+   r˜   r   r   úT.Union[str, OptionString]c                ó¦   •— t          ¦   «                              |¦  «        }|                      | j        j        |¦  «        }t          ||¦  «        S r)   )r8   rT   rž   r+   r¿   r¾   )r.   r˜   r¼   rÁ   r[   s       €r/   rT   zOptionStringHolder.op_divæ   sA   ø€ Ý‰gŒg�nŠn˜UÑ#Ô#ˆØ�|Š|˜DÔ,Ô4°eÑ<Ô<ˆÝ˜C Ñ&Ô&Ð&r1   )r˜   r   r   rË   )r§   r¨   r©   rÈ   rT   r¬   r­   s   @r/   rÊ   rÊ   ã   sK   ø€ € € € € € ØÐÐÑð'ð 'ð 'ð 'ð 'ð 'ð 'ð 'ð 'ð 'r1   rÊ   )Ú
__future__r   rz   rœ   ÚtypingÚTÚmesonlibr   Úinterpreterbaser   r   r   r	   r
   r   r   r   r   ÚTYPE_CHECKINGr   r   r   r   r   r   r¯   r³   r·   r¹   r¾   rÊ   r]   r1   r/   ú<module>rÓ      s+  ðð #Ð "Ð "Ð "Ð "Ð "à 	€	€	€	Ø 	€	€	€	à Ð Ð Ð à 'Ð 'Ð 'Ð 'Ð 'Ð 'ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð „?ð 9à*Ð*Ð*Ð*Ð*Ð*Ø8Ð8Ð8Ð8Ð8Ð8Ð8Ð8ð\-ð \-ð \-ð \-ð \-�< Ô$ñ \-ô \-ð \-ð~	ð 	ð 	ð 	ð 	˜ñ 	ô 	ð 	ð:ð :ð :ð :ð :˜|ñ :ô :ð :ð	ð 	ð 	ð 	ð 	˜sñ 	ô 	ð 	ð-ð -ð -ð -ð - \ñ -ô -ð -ð	)ð 	)ð 	)ð 	)ð 	)�3ñ 	)ô 	)ð 	)ð'ð 'ð 'ð 'ð '˜ñ 'ô 'ð 'ð 'ð 'r1   