+
    UBiL                      a  0 t $ ^ RIHt ^RIHtHtHtHtHtH	t	 ^RI
HtHtHt ^RIHtHt ^RIHt ^ RIHtHtHt ^RIHtHt ^ RIHt ^R	IHtHtHtH t H!t!H"t"H#t#H$t$H%t%H&t&H't'H(t(H)t) ^R
I*H+t+ ^ RI,t,^ RI-t-^ RI.t.^ RI/t/^ RI0t0^ RI1t2^ RI3H4t4 ]2Pj                  '       d   ^ RI6t6^ RI6H7t7H8t8 ^RIH9t9  ! R R]4      t:R R lt; ! R R4      t< ! R R4      t= ! R R]=4      t> ! R R]=4      t? ! R R]=4      t@ ! R R]=4      tA ! R R ]A4      tB ! R! R"]A4      tCR#R$]DRR%R&.3R']E/ R3/R(R)]DRR3R*]DRR3R$]DR. RnO3R(]E/ R3/R-R-]DRR3R$]DR. RoO3R4]F. R3R5]DR6R3R7]DR8. RpO3//tGR9]HR:&   R;R<]>R=]>R>]?R?]>R@]?RA]?RB]BRC]B/R-RD]?RE]>RF]CRG]?RH]CRI]?RJ]?RK]?RL]>RM]>RN]?/ROR#]BRP]>RQ]BRR]BRS]>RB]>//tI ! RT RU4      tJR+R.RVR/RWR1RXR0RYR2RZR3R,R,/tKR[ R\ ltLR] R^ ltMR_ R` ltNRa Rb ltORc Rd ltPRe Rf ltQR-]NRg]NR(]ORh]PRi]PRj]QRk]Q/tRRl Rm ltSR# )q    )annotations)IntrospectionInterpreterBUILD_TARGET_FUNCTIONSAstConditionLevelAstIDGeneratorAstIndentationGenerator
AstPrinter)IntrospectionBuildTargetIntrospectionDependency_symbol)UnknownValueTV_func)flatten)MesonExceptionsetup_vsenvrelpath)mlogenvironment)wraps)Token	ArrayNodeArgumentNodeArithmeticNodeAssignmentNodeBaseNode
StringNodeBooleanNodeDictNodeElementaryNodeIdNodeFunctionNodePlusAssignmentNode)IntrospectionEncoderN)Path)ArgumentParser_FormatterClass)AnsiDecoratorc                      ] tR t^tRtR# )RewriterException N)__name__
__module____qualname____firstlineno____static_attributes__r*       8/usr/lib/python3.14/site-packages/mesonbuild/rewriter.pyr)   r)      s    r0   r)   c               $    V ^8  d   QhRRRRRR/# )   parserr%   	formatterr&   returnNoner*   )formats   "r1   __annotate__r9   #   s&     !K !K. !K_ !K !Kr0   c           	        V P                  R R\        RRRR7       V P                  RRRR	R
R7       V P                  RRRRR	RR7       V P                  RRRR7      pVP                  RR.RVR7      pVP                  R RRRRR7       VP                  RR\        R,          R ,          ^,          R!R"R#7       VP                  RR$R%7       VP                  R&. RAOR'R(7       VP                  R)R*R+R,7       VP                  R-R.VR/7      pVP                  R&\        R-,          R&,          ^,          R'R(7       VP                  R0\        \        P                  4       4      R1R(7       VP                  R2R3R%7       VP                  R-R*R4R,7       VP                  R5R6.R7VR7      pVP                  R&\        R8,          R&,          ^,          R'R(7       VP                  R9R*R:R,7       VP                  R;R<.R=VR7      pVP                  R>R?R%7       R@# )Bz-sz--sourcedir.SRCDIRzPath to source directory.)typedefaultmetavarhelpz-Vz	--verbose
store_trueFzEnable verbose output)actionr>   r@   z-Sz--skip-errorsskipzSkip errors instead of aborting)destrB   r>   r@   r=   zRewriter commandszRewrite command to execute)rD   titledescriptiontargettgtzModify a target)aliasesr@   formatter_classz--subdir subdirzASubdirectory of the new target (only for the "add_target" action))r>   rD   r@   z--typetgt_typetarget_type
executablez<Type of the target to add (only for the "add_target" action))rD   choicesr>   r@   zName or ID of the target)r@   	operationzAction to execute)rP   r@   sources*zSources to add/remove)nargsr@   kwargszModify keyword arguments)r@   rJ   functionzFunction type to modifyidz8ID of the function to modify (must be "/" for "project")z:<keyword> <value> pairs, or list of <keyword> for "delete"default-optionsdefz"Modify the project default optionsdefault_optionsoptionsz9<key> <value> pairs for "set"; list of <key> for "delete"commandcmdz Execute a JSON array of commandsjsonzJSON string or file to executeN)addrm
add_target	rm_targetadd_extra_filesrm_extra_filesinfo)add_argumentstradd_subparsers
add_parserrewriter_keyslistrewriter_func_kwargskeys)r4   r5   
subparsers
tgt_parser	kw_parser
def_parser
cmd_parsers   &&     r1   add_argumentsrs   #   si   
m#sH[vw
k,Tkl
oF<Y^  fG  H&&F:M[w&xJ &&x%GXjs&tJD*bx  OR  SH:}X?VWd?efg?hr~!_  aH+EFK  2G!4  6IS7NO %%h5Oaj%kI;h0G0TUV0W 3  5:t4H4M4M4O/P 9  ;4&`a835qr &&'85'Pt  GP&  QJK?P1QR]1^_`1a!4  6IS7rs &&y5'Hj  }F&  GJF)IJr0   c                  :    ] tR t^Ft$ R]R&   R R ltR R ltRtR# )	RequiredKeysT.Dict[str, T.Any]rm   c                   V ^8  d   QhRR/# )r3   rm   rv   r*   )r8   s   "r1   r9   RequiredKeys.__annotate__I   s      / r0   c                	    Wn         R # Nrm   )selfrm   s   &&r1   __init__RequiredKeys.__init__I   s    	r0   c                    V ^8  d   QhRRRR/# )r3   fr   r6   r*   )r8   s   "r1   r9   rx   L   s     * *' *g *r0   c                	d   a a \        S4      R  VV 3R ll4       p\        P                  ! RV4      # )c               $    V ^8  d   QhRRRRRR/# )r3   wrapped_argsT.Anywrapped_kwargsr6   r*   )r8   s   "r1   r9   +RequiredKeys.__call__.<locals>.__annotate__N   s!     	6 	65 	6E 	6e 	6r0   c                 r  < \        V 4      ^8  g   Q hV ^,          pS	P                  P                  4        F  w  r4V^ ,          pV^,          pV^,          pW29  d/   Ve   WbV&   M%\        RP	                  VSP
                  4      4      h\        W#,          V4      '       g?   \        RP	                  W5P
                  \        W#,          4      P
                  4      4      hVf   K  \        V\        4      '       g   Q hW#,          V9  g   K  \        RP	                  W7W#,          4      4      h	  S! V / VB # )r3   z$Key "{}" is missing in object for {}z8Invalid type of "{}". Required is {} but provided was {}zCInvalid value of "{}": Possible values are {} but provided was "{}")	lenrm   itemsr)   r8   r+   
isinstancer=   rk   )
r   r   r]   keyvaltypr>   rP   r   r|   s
   *,      r1   wrapped&RequiredKeys.__call__.<locals>.wrappedM   s   |$)))q/C IIOO-!fa&a&>*#*C/0V17QZZ1HJ J!#(C00+,f-3VCtCH~G^G^-_a a&%gt4444xw./0u17ch1OQ Q! .$ l5n55r0   r   )r   Tcast)r|   r   r   s   ff r1   __call__RequiredKeys.__call__L   s1    	q	6 	6 
	6. vvi))r0   r{   N)r+   r,   r-   r.   __annotations__r}   r   r/   r*   r0   r1   ru   ru   F   s    
* *r0   ru   c                      ] tR t^gt$ R]R&   RR R llt]RR R ll4       t]R R	 l4       tR
 R lt	R R lt
R R ltR R ltR R ltRtR# )	MTypeBaser   nodeNc                   V ^8  d   QhRR/# r3   r   zT.Optional[BaseNode]r*   )r8   s   "r1   r9   MTypeBase.__annotate__j   s     # #1 #r0   c                	    Vf   V P                  4       V n        MWn        R V n        V P                  4        F'  p\	        V P                  V4      '       g   K!  W n        K)  	  R # rz   )new_noder   	node_typesupported_nodesr   )r|   r   is   && r1   r}   MTypeBase.__init__j   sI    <DII%%'A$))Q''!" (r0   c                    V ^8  d   QhRRRR/# r3   valuer   r6   r   r*   )r8   s   "r1   r9   r   u   s     T TU Th Tr0   c                	    \        R 4      h)z0Internal error: new_node of MTypeBase was calledr)   clsr   s   &&r1   r   MTypeBase.new_nodet   s       RSSr0   c                   V ^8  d   QhRR/# r3   r6   zT.List[type]r*   )r8   s   "r1   r9   r   z   s       r0   c                	    . # rz   r*   r   s   &r1   r   MTypeBase.supported_nodesy   	     	r0   c                   V ^8  d   QhRR/# )r3   r6   boolr*   )r8   s   "r1   r9   r   ~   s     * *D *r0   c                	    V P                   R J# rz   )r   r|   s   &r1   
can_modifyMTypeBase.can_modify~   s    ~~T))r0   c                   V ^8  d   QhRR/# r3   r6   r   r*   )r8   s   "r1   r9   r      s      ( r0   c                	    V P                   # rz   r   r   s   &r1   get_nodeMTypeBase.get_node   s    yyr0   c                    V ^8  d   QhRRRR/# r3   r   r   r6   r7   r*   )r8   s   "r1   r9   r      s     c cu c cr0   c                	    \         P                  ! R \         P                  ! \        V 4      P                  4      R4       R# )zCannot add a value of type--> skippingNr   warningboldr=   r+   r|   r   s   &&r1   	add_valueMTypeBase.add_value   s'    1499T$Z=P=P3QSabr0   c                    V ^8  d   QhRRRR/# r   r*   )r8   s   "r1   r9   r           f f% fD fr0   c                	    \         P                  ! R \         P                  ! \        V 4      P                  4      R4       R# )zCannot remove a value of typer   Nr   r   s   &&r1   remove_valueMTypeBase.remove_value   '    4diiT
@S@S6TVder0   c                    V ^8  d   QhRRRR/# r   r*   )r8   s   "r1   r9   r      r   r0   c                	    \         P                  ! R \         P                  ! \        V 4      P                  4      R4       R# )zCannot remove a regex in typer   Nr   r   s   &&r1   remove_regexMTypeBase.remove_regex   r   r0   )r   r   rz   )r+   r,   r-   r.   r   r}   classmethodr   r   r   r   r   r   r   r/   r*   r0   r1   r   r   g   sX    
N# T T  *cff fr0   r   c                  b   a  ] tR t^tRR V 3R lllt]RR R ll4       t]R R l4       tRtV ;t	# )	MTypeStrc                   V ^8  d   QhRR/# r   r*   )r8   s   "r1   r9   MTypeStr.__annotate__         1 r0   c                	&   < \         SV `  V4       R # rz   superr}   r|   r   	__class__s   &&r1   r}   MTypeStr.__init__       r0   c                    V ^8  d   QhRRRR/# r3   r   zT.Optional[str]r6   r   r*   )r8   s   "r1   r9   r      s     J J_ J Jr0   c                	T    Vf   Rp\        \        RR^ ^ ^ R \        V4      4      4      # )NrK   stringr   r   rg   r   s   &&r1   r   MTypeStr.new_node   s,    =E%"aAtSZHIIr0   c                   V ^8  d   QhRR/# r   r*   )r8   s   "r1   r9   r      s       r0   c                	    \         .# rz   r   r   s   &r1   r   MTypeStr.supported_nodes   
    |r0   r*   rz   
r+   r,   r-   r.   r}   r   r   r   r/   __classcell__r   s   @r1   r   r      s7      J J
  r0   r   c                  b   a  ] tR t^tRR V 3R lllt]RR R ll4       t]R R l4       tRtV ;t	# )		MTypeBoolc                   V ^8  d   QhRR/# r   r*   )r8   s   "r1   r9   MTypeBool.__annotate__   r   r0   c                	&   < \         SV `  V4       R # rz   r   r   s   &&r1   r}   MTypeBool.__init__   r   r0   c                    V ^8  d   QhRRRR/# r   r*   )r8   s   "r1   r9   r      s     F F_ F Fr0   c                	H    \        \        R R ^ ^ ^ R\        V4      4      4      # rK   N)r   r   r   r   s   &&r1   r   MTypeBool.new_node   s"    5RAq$UDEEr0   c                   V ^8  d   QhRR/# r   r*   )r8   s   "r1   r9   r      s       r0   c                	    \         .# rz   )r   r   s   &r1   r   MTypeBool.supported_nodes   s
    }r0   r*   rz   r   r   s   @r1   r   r      s7      F F  r0   r   c                  b   a  ] tR t^tRR V 3R lllt]RR R ll4       t]R R l4       tRtV ;t	# )	MTypeIDc                   V ^8  d   QhRR/# r   r*   )r8   s   "r1   r9   MTypeID.__annotate__   r   r0   c                	&   < \         SV `  V4       R # rz   r   r   s   &&r1   r}   MTypeID.__init__   r   r0   c                    V ^8  d   QhRRRR/# r   r*   )r8   s   "r1   r9   r      s     @ @_ @ @r0   c                	T    Vf   Rp\        \        RR^ ^ ^ R \        V4      4      4      # )NrK   r    r   rg   r   s   &&r1   r   MTypeID.new_node   s,    =EeBAq!T3u:>??r0   c                   V ^8  d   QhRR/# r   r*   )r8   s   "r1   r9   r      s       r0   c                	    \         .# rz   r    r   s   &r1   r   MTypeID.supported_nodes   	    xr0   r*   rz   r   r   s   @r1   r   r      s7      @ @
  r0   r   c                    a  ] tR t^t$ R]R&   RR V 3R lllt]RR R ll4       t]R R l4       tR	 R
 lt	]
R R l4       t]
R R l4       tR R lt]R R l4       t]R R l4       tR R ltR R ltR R ltR R ltRtV ;t# )	MTypeListr   r   c                   V ^8  d   QhRR/# r   r*   )r8   s   "r1   r9   MTypeList.__annotate__   r   r0   c                	&   < \         SV `  V4       R # rz   r   r   s   &&r1   r}   MTypeList.__init__   r   r0   c                    V ^8  d   QhRRRR/# )r3   r   zT.Optional[T.List[T.Any]]r6   r   r*   )r8   s   "r1   r9   r	     s     ; ;6 ;) ;r0   c                	$   Vf   . pM'\        V\        4      '       g   V P                  V4      # \        \	        RR^ ^ ^ R R4      4      pV Uu. uF  q0P                  V4      NK  	  upVn        \        \        R4      V\        R4      4      # u upi )NrK   [])r   rk   _new_element_noder   r   	argumentsr   r   )r   r   argsr   s   &&  r1   r   MTypeList.new_node   s    =EE4((((//E"b!Q4<=<ABEq//2EBtWS\:: Cs   Bc                    V ^8  d   QhRRRR/# r   r*   )r8   s   "r1   r9   r	     s     ] ]e ] ]r0   c                	    \        R 4      h)z9Internal error: _new_element_node of MTypeList was calledr   r   s   &&r1   r  MTypeList._new_element_node   s       [\\r0   c                   V ^8  d   QhRR/# r3   r6   r7   r*   )r8   s   "r1   r9   r	     s     - -D -r0   c                	    \        V P                  \        4      '       g@   V P                  pV P                  4       V n        V.V P                  P                  n        R # R # rz   )r   r   r   r   r  r  )r|   tmps   & r1   _ensure_array_nodeMTypeList._ensure_array_node   s@    $))Y//))CDI(+uDIINN$ 0r0   c               $    V ^8  d   QhRRRRRR/# r3   r   r   r   rg   r6   r   r*   )r8   s   "r1   r9   r	     s!      h s t r0   c                	    R # Fr*   r   r   s   &&r1   _check_is_equalMTypeList._check_is_equal        r0   c               $    V ^8  d   QhRRRRRR/# r3   r   r   regexrg   r6   r   r*   )r8   s   "r1   r9   r	     s!      8 C D r0   c                	    R # r   r*   r   r'  s   &&r1   _check_regex_matchesMTypeList._check_regex_matches   r$  r0   c                   V ^8  d   QhRR/# r   r*   )r8   s   "r1   r9   r	     s      ( r0   c                	   \        V P                  \        4      '       dV   \        V P                  P                  P
                  4      ^8X  d(   V P                  P                  P
                  ^ ,          # V P                  # )   )r   r   r   r   r  r  r   s   &r1   r   MTypeList.get_node   sQ    dii++499>>++,1yy~~//22yyr0   c                   V ^8  d   QhRR/# r3   r6   zT.List[T.Type]r*   )r8   s   "r1   r9   r	     s       r0   c                	    . # rz   r*   r   s   &r1   supported_element_nodes!MTypeList.supported_element_nodes   r   r0   c                   V ^8  d   QhRR/# r1  r*   )r8   s   "r1   r9   r	     s     ; ; ;r0   c                	:    \         .V P                  4       ,           # rz   )r   r3  r   s   &r1   r   MTypeList.supported_nodes   s    {S88:::r0   c                    V ^8  d   QhRRRR/# r   r*   )r8   s   "r1   r9   r	     s     D Du D Dr0   c                	x   \        V\        4      '       g   V.pV P                  4        V F  p\        V P                  R 4      '       g   Q h\        V P                  P
                  \        4      '       g   Q hV P                  P
                  ;P                  V P                  V4      .,          un        K  	  R# )r  N)	r   rk   r  hasattrr   r  r   r  r  )r|   r   r   s   && r1   r   MTypeList.add_value   s    %&&GE!A499f----diinnl;;;;IINN$$)?)?)B(CC$ r0   c               $    V ^8  d   QhRRRRRR/# )r3   r   r   
equal_funcz T.Callable[[T.Any, T.Any], bool]r6   r7   r*   )r8   s   "r1   r9   r	     s#     0 0E 07W 0\` 0r0   c                	  aaa R  VVV3R llp\        S\        4      '       g   S.oV P                  4        \        V P                  R4      '       g   Q h\        V P                  P
                  \        4      '       g   Q h. pV P                  P
                  P                   F  oV! S4      '       d   K  VS.,          pK  	  W@P                  P
                  n        R# )c                    V ^8  d   QhRRRR/# )r3   r   r   r6   r   r*   )r8   s   "r1   r9   .MTypeList._remove_helper.<locals>.__annotate__   s     	 	H 	 	r0   c                >   < S F  pS! SV4      '       g   K   R # 	  R# TFr*   )r   jr=  r   r   s   & r1   check_remove_node3MTypeList._remove_helper.<locals>.check_remove_node   s"    a##  r0   r  N)r   rk   r  r:  r   r  r   r  )r|   r   r=  rD  removed_listr   s   &ff  @r1   _remove_helperMTypeList._remove_helper   s    	 	 %&&GE!tyy&))))$))..,7777))A$Q''# * $0		 r0   c                    V ^8  d   QhRRRR/# r   r*   )r8   s   "r1   r9   r	    s     9 9% 9D 9r0   c                	<    V P                  WP                  4       R # rz   )rG  r"  r   s   &&r1   r   MTypeList.remove_value  s    E#7#78r0   c                    V ^8  d   QhRRRR/# )r3   r'  rg   r6   r7   r*   )r8   s   "r1   r9   r	  
  s     > ># >$ >r0   c                	<    V P                  WP                  4       R # rz   )rG  r*  )r|   r'  s   &&r1   r   MTypeList.remove_regex
  s    E#<#<=r0   r   rz   )r+   r,   r-   r.   r   r}   r   r   r  r  staticmethodr"  r*  r   r3  r   r   rG  r   r   r/   r   r   s   @r1   r  r     s    
O  ; ; ] ]-       ; ;D0$9> >r0   r  c                     a  ] tR tRtRR V 3R lllt]R R l4       t]R R l4       t]R R	 l4       t	]R
 R l4       t
RtV ;t# )MTypeStrListi  c                   V ^8  d   QhRR/# r   r*   )r8   s   "r1   r9   MTypeStrList.__annotate__  r   r0   c                	&   < \         SV `  V4       R # rz   r   r   s   &&r1   r}   MTypeStrList.__init__  r   r0   c                    V ^8  d   QhRRRR/# )r3   r   rg   r6   r   r*   )r8   s   "r1   r9   rS    s     J Jc Jj Jr0   c                	H    \        \        R R^ ^ ^ R\        V4      4      4      # )r   rK   Nr   r   s   &&r1   r  MTypeStrList._new_element_node  s"    %"aAtSZHIIr0   c               $    V ^8  d   QhRRRRRR/# r  r*   )r8   s   "r1   r9   rS    !      h s t r0   c                	b    \        V \        4      '       d   \        V P                  V8H  4      # R # r   )r   r   r   r   r!  s   &&r1   r"  MTypeStrList._check_is_equal  s&    dJ''

e+,,r0   c               $    V ^8  d   QhRRRRRR/# r&  r*   )r8   s   "r1   r9   rS    !      8 C D r0   c                	v    \        V \        4      '       d#   \        P                  ! WP                  4      R J# R# NFr   r   rematchr   r)  s   &&r1   r*  !MTypeStrList._check_regex_matches  *    dJ''88E::.d::r0   c                   V ^8  d   QhRR/# r1  r*   )r8   s   "r1   r9   rS  "  s       r0   c                	    \         .# rz   r   r   s   &r1   r3  $MTypeStrList.supported_element_nodes!  r   r0   r*   rz   r+   r,   r-   r.   r}   r   r  rO  r"  r*  r3  r/   r   r   s   @r1   rQ  rQ    s_      J J  
  
  r0   rQ  c                     a  ] tR tRtRR V 3R lllt]R R l4       t]R R l4       t]R R	 l4       t	]R
 R l4       t
RtV ;t# )MTypeIDListi%  c                   V ^8  d   QhRR/# r   r*   )r8   s   "r1   r9   MTypeIDList.__annotate__&  r   r0   c                	&   < \         SV `  V4       R # rz   r   r   s   &&r1   r}   MTypeIDList.__init__&  r   r0   c                    V ^8  d   QhRRRR/# )r3   r   rg   r6   r    r*   )r8   s   "r1   r9   rm  *  s     @ @c @f @r0   c                	H    \        \        R R ^ ^ ^ R\        V4      4      4      # r   r   r   s   &&r1   r  MTypeIDList._new_element_node)  s"    eBAq!T3u:>??r0   c               $    V ^8  d   QhRRRRRR/# r  r*   )r8   s   "r1   r9   rm  .  rZ  r0   c                	b    \        V \        4      '       d   \        V P                  V8H  4      # R # r   )r   r    r   r   r!  s   &&r1   r"  MTypeIDList._check_is_equal-  s&    dF##

e+,,r0   c               $    V ^8  d   QhRRRRRR/# r&  r*   )r8   s   "r1   r9   rm  4  r^  r0   c                	v    \        V \        4      '       d#   \        P                  ! WP                  4      R J# R# r`  ra  r)  s   &&r1   r*   MTypeIDList._check_regex_matches3  re  r0   c                   V ^8  d   QhRR/# r1  r*   )r8   s   "r1   r9   rm  :  s       r0   c                	    \         .# rz   r  r   s   &r1   r3  #MTypeIDList.supported_element_nodes9  r  r0   r*   rz   ri  r   s   @r1   rk  rk  %  s_      @ @  
  
  r0   rk  rZ   rQ   setdeleter[   rU   rV   rW   r_   re   rG   src_addsrc_rm	target_rm
target_addextra_files_addextra_files_rmrR   rL   rK   rN   rO   zT.Dict[str, T.Dict[str, T.Any]]rj   
dependencylanguagemethodnativenot_found_messagerequiredstaticversionmodulesbuild_by_defaultbuild_rpathdependenciesgui_app	link_withexport_dynamicimplibinstallinstall_dirinstall_rpathpieprojectmeson_versionlicenselicense_filessubproject_dirc                     ] tR tRt$ R]R&   R1R R lltR R ltR R	 ltR
 R ltR R lt	R R lt
R R ltR R ltR R lt]! ]R,          4      R R l4       t]! ]R,          4      R R l4       tR R ltR R ltR  R! ltR" R# ltR$ R% ltR& R' lt]! ]R(,          4      R) R* l4       tR+ R, ltR- R. ltR/tR0# )2Rewriteris  z+T.Optional[T.Dict[str, T.Dict[str, T.Any]]]	info_dumpc               $    V ^8  d   QhRRRRRR/# )r3   	sourcedirrg   	generatorskip_errorsr   r*   )r8   s   "r1   r9   Rewriter.__annotate__v  s!      # # d r0   c           	     	
   Wn         \        VR V\        4       \        4       \	        4       .R7      V n        W0n        . V n        . V n        . V n	        RV P                  RV P                  RV P                  /V n        RV n        R# )rK   visitorsrZ   rU   rG   N)r  r   r   r   r   interpreterr  modified_nodesto_remove_nodesto_add_nodesprocess_default_optionsprocess_kwargsprocess_target	functionsr  )r|   r  r  r  s   &&&&r1   r}   Rewriter.__init__v  s    "3Ir9ZhZj  mD  mF  HY  H[  Z\  ]&0213.0t;;d))d))

 r0   c                   V ^8  d   QhRR/# r  r*   )r8   s   "r1   r9   r    s     W Wt Wr0   c           	     	   \         P                  ! R \         P                  ! \        P                  P                  V P                  \        P                  4      4      4       V P                  P                  4        \         P                  ! R\         P                  ! V P                  P                  R,          4      4       \         P                  ! R\         P                  ! V P                  P                  R,          4      4       R# )zAnalyzing meson file:z  -- Project:descriptive_namez  -- Version:r  N)r   logr   ospathjoinr  r   build_filenamer  analyzeproject_datacyanr   s   &r1   analyze_mesonRewriter.analyze_meson  s    ($))BGGLLQ\QkQk4l*mn  "$))D,<,<,I,IJ\,]"^_$))D,<,<,I,I),T"UVr0   c               (    V ^8  d   QhRRRRRRRR/# )r3   cmd_typerg   cmd_iddatadictr6   r7   r*   )r8   s   "r1   r9   r    s(     0 0 0c 0 0$ 0r0   c                	    V P                   f   / V n         WP                   9  d   / V P                   V&   W0P                   V,          V&   R # rz   )r  )r|   r  r  r  s   &&&&r1   add_infoRewriter.add_info  s<    >>!DN>>)')DNN8$+/x (r0   c                   V ^8  d   QhRR/# r  r*   )r8   s   "r1   r9   r    s     Y YD Yr0   c                	    V P                   f   R # \        P                  P                  \        P
                  ! V P                   ^\        R7      4       R # )N)indentr   )r  sysstdoutwriter^   dumpsr#   r   s   &r1   
print_infoRewriter.print_info  s3    >>!

DNN1BVWXr0   c                   V ^8  d   QhRR/# )r3   r6   z%T.Tuple[AnsiDecorator, AnsiDecorator]r*   )r8   s   "r1   r9   r    s     6 6? 6r0   c                	    V P                   '       d-   \        P                  ! R 4      \        P                  ! R4      3# \        P                  ! R 4      \        P                  ! R4      3# )z-->skippingaborting)r  r   r  yellowredr   s   &r1   on_errorRewriter.on_error  sH    99U#T[[%<<<yy*!555r0   c                   V ^8  d   QhRR/# r  r*   )r8   s   "r1   r9   r    s     A Ad Ar0   c                	@    V P                   '       d   R # \        R4      h)Nz Rewriting the meson.build failed)r  r   r   s   &r1   handle_errorRewriter.handle_error  s    ?@@r0   c                    V ^8  d   QhRRRR/# )r3   varnamerg   r6   T.List[BaseNode]r*   )r8   s   "r1   r9   r    s      s /? r0   c                	    . pV P                   P                  V,           FN  p\        V\        4      '       d   K  \        V\        4      '       g   Q hVP                  VP                  4       KP  	  V# rz   )r  all_assignment_nodesr   r"   r   appendr   )r|   r  assigned_valuesasss   &&  r1   all_assignmentsRewriter.all_assignments  sd    ##88AAC#122c>2222""399-	 B
 r0   c                    V ^8  d   QhRRRR/# )r3   rG   rg   r6   z$T.Optional[IntrospectionBuildTarget]r*   )r8   s   "r1   r9   r    s      # *N r0   c           	     	   V P                   P                   F  pWP                  8X  g   K  Vu # 	  . pV P                   P                   F&  pWP                  8X  g   K  VP	                  V4       K(  	  V'       gd   V P                  V4      pV Uu. uF  qPP                   P                  V4      NK  	  ppV Uu. uF  p\        V\        4      '       g   K  VNK  	  ppV'       g   R # \        V4      ^8X  d
   V^ ,          # \        P                  ! R\        P                  ! V4      4       V FX  p\        P                  ! R\        P                  ! VP                  4      R\        P                  ! VP                  4      4       KZ  	  \        P                  ! R.V P                  4       O5!   V P                  4        R # u upi u upi )Nz#There are multiple targets matchingz  -- Target namezwith IDz1Please try again with the unique ID of the target)r  targetsrW   namer  r  node_to_runtime_valuer   r
   r   r   errorr   r  r  )r|   rG   r   potential_tgtspotenial_tgts_1els   &&    r1   find_targetRewriter.find_target  sT   !!))A~ * !!))A%%a( * "226:OTcdTcb//EEbITcOd+:g?RjMe>fbb?Ng A%!!$$JJ<dii>OP#

-tyy/@)TYYWXW[W[_] $JJJ]T]]_] egs   #G:GGc                    V ^8  d   QhRRRR/# )r3   r  rg   r6   z#T.Optional[IntrospectionDependency]r*   )r8   s   "r1   r9   r    s      # 2U r0   c                	   . pV P                   P                   F'  pVP                  V8X  g   K  VP                  V4       K)  	  \	        V4      ^ 8H  pV'       dq   V P                  V4      pV Uu. uFS  p\        V\        4      '       g   K  VP                  P                  R8X  g   K8  V P                   P                  V4      NKU  	  ppV'       g   R# \	        V4      ^8X  d
   V^ ,          # \        P                  ! R\        P                  ! V4      4       V F  p\        P                  ! RV4       K  	  V'       d'   \        P                  ! R.V P                  4       O5!   V P                  4        R# u upi )r   r  Nz(There are multiple dependencies matchingz  -- Dependency namez0Please try again with the name of the dependency)r  r  r  r  r   r  r   r!   	func_namer   r  r   r  r   r  r  )r|   r  potential_depsr   checking_varnamespotential_deps1r  s   &&     r1   find_dependencyRewriter.find_dependency  sW   !!..Avv#%%a( /  /14"22:>OSb  kSbRfpqs  vB  gCH  HJ  HT  HT  HZ  HZ  ^j  HjHd..DDRHSbN  k A%!!$$JJA499ZCXY#

115 $ 

M`PTP]P]P_` ks   /E8E8)E8rZ   c                    V ^8  d   QhRRRR/# r3   r]   rv   r6   r7   r*   )r8   s   "r1   r9   r    s     '( '(+= '($ '(r0   c                	   R RRRRRRRVR,          P                  4        Uu. uF  q" R	2NK	  	  up//pV P                  V4       VR,          R
8w  d   R# RVR&   . VR,          R&   V P                  P                  p/ VP                  P                  4        UUu/ uF  w  rV\        V4      VbK  	  uppCp\        VR,          P                  4       4       F  w  rW9  dN   \        P                  ! R\        P                  ! V4      .V P                  4       O5!   V P                  4        KX   Wx,          P                  V	4      p	TR,          R;;,          T RT	 2.,          uu&   K  	  V P                  V4       R# u upi u uppi   \         dv   p
\        P                  ! R\        P                  ! T4      \        P                  ! \        T
4      4      .T P                  4       O5!   T P                  4         Rp
?
EK/  Rp
?
ii ; i)rV   r  rW   /rQ   r   rU   rZ   r[   z=.*r|  Nr_   zUnknown optionszUnable to set=)rm   r  r  coredataoptstorer   rg   sortedr   r  r   r  r  validate_valuer   r  )r|   r]   x
kwargs_cmdcdatakvr[   r   r   es   &&         r1   r   Rewriter.process_default_options  s    	#!s9~7J7J7L#M7L!cI7L#M	*

 	J' {u$"'
;24
8./  ))
%*^^%9%9%;<%;TQs1vqy%;<
 s9~3356HC!

,diinOt}}O!!#l11#6 x !233%q7GG3 7 	J'A $N = " 

?DIIcNDHHSV<L_t}}_!!#s$   E?F/F

H
A)HH
rU   c                    V ^8  d   QhRRRR/# r  r*   )r8   s   "r1   r9   r    s     z* z*"4 z* z*r0   c                	Z   \         P                  ! R \         P                  ! VR,          4      R\         P                  ! RVR,          ,           R,           4      4       VR,          \        9  d?   \         P
                  ! RVR,          .V P                  4       O5!   V P                  4       # \        VR,          ,          pRpRpVR,          R8X  d   RR	0P                  VR,          04      '       dL   \         P
                  ! R
VR,          ,           R,           .V P                  4       O5!   V P                  4       # V P                  P                  pVP                  pEM1VR,          R8X  d   V P                  VR,          4      pV'       gS   \         P
                  ! R\         P                  ! VR,          4      .V P                  4       O5!   V P                  4       # VP                  pVP                  pMVR,          R8X  d   V P                  VR,          4      pV'       gS   \         P
                  ! R\         P                  ! VR,          4      .V P                  4       O5!   V P                  4       # VP                  pVP                  pV'       g7   \         P
                  ! R.V P                  4       O5!   V P                  4       # \        V\         4      '       g   Q h\        V\"        4      '       g   Q hVP$                  P'                  4        UUu/ uF+  w  rx\(        P*                  ! \,        V4      P.                  VbK-  	  p	ppVR,          R8X  Ed   / p
\1        V	P'                  4       4       EF.  w  rRW&   \        V\2        4      '       d   VP.                  W&   K0  \        V\4        4      '       dS   . pVP                  P6                   F0  pRp\        V\2        4      '       d   VP.                  pW.,          pK2  	  WV&   K  \        V\8        4      '       g   K  / pVP                  P$                  P'                  4        FP  w  rx\        V\:        4      '       g   K  Rp\        V\2        4      '       d   VP.                  pVVVP.                  &   KR  	  VW&   EK1  	  V P=                  RRP?                  VR,          VR,          4      V
4       R# ^ p\1        VR,          P'                  4       4       EF  w  rW9  dN   \         P
                  ! R\         P                  ! V4      .V P                  4       O5!   V P                  4        KY  VR,          R8X  de   W9  d/   \         P                  ! R\         P                  ! V4      R4       K  \         P                  ! R\         P                  ! V4      R4       W EMVR,          R8X  df   \         P                  ! R\         P                  ! V4      R\         P@                  ! \C        V4      4      4       W+,          PE                  V4      W&   EMW9  d   RW&   W+,          ! W,          4      pVPG                  4       '       g0   \         P                  ! R\         P                  ! V4      R4       EK  \C        V4      pVR,          R 8X  dT   \         P                  ! R!\         P@                  ! V4      R\         P                  ! V4      4       VPI                  V4       MVR,          R"8X  dT   \         P                  ! R#\         P@                  ! V4      R$\         P                  ! V4      4       VPK                  V4       M`VR,          R%8X  dS   \         P                  ! R&\         P@                  ! V4      R$\         P                  ! V4      4       VPM                  V4       VPO                  4       W&   V^,          pEK  	  V	P'                  4        UUu/ uF   w  rx\-        \Q        R'R'^ ^ ^ RV4      4      VbK"  	  uppVn        VP$                  P'                  4        F  w  rxVPR                  Vn)        K  	  V^ 8  d/   W0PT                  9  d   V ;PT                  V.,          un*        R# R# R# u uppi u uppi )(zProcessing function typerV   zwith id'rW   zUnknown function typeNr  r  z//z>The ID for the function type project must be "/" or "//" not ""rG   zUnable to find the targetr  zUnable to find the dependencyz Unable to find the function noderQ   re   rU   z{}#{}zCannot modify unknown kwargr}  z  -- Keyzis already deletedz  -- Deletingzfrom the kwargsr|  z  -- Settingtoz  -- Skippingz#because it is too complex to modifyr_   z  -- Addingremove  -- Removingfromr   z!  -- Removing all values matchingrK   )+r   r  r   r  rl   r  r  r  
isdisjointr  project_noder  r  r   r  r   r!   r   rU   r   r   r   r    r   r  r   r   r  r   r   r  r8   r  rg   r   r   r   r   r   r   r   levelr  )r|   r]   
kwargs_defr   arg_nodetmp_tgttmp_depr  r  rU   	info_datar   r   	data_listr   element	data_dictr   num_changedmodifierval_strs   &&                   r1   r  Rewriter.process_kwargs  s}   +TYYs:-GTXT]T]^adghldm^mps^sTtuz?"66JJ.JR$--/R$$&&)#j/:
 z?i'
 T{%%s4yk22

[^abf^ggjmm  Aptp}p}p  A((**##00DyyH_(&&s4y1G

6		#d)8L_t}}_((**<<DyyH_,**3t95G

:DIIc$i<PcSWS`S`Sbc((**<<DyyHJJ9LDMMOL$$&&$----(L11119A9N9N9PQ9P!&&#))1,9PQ {v%,.I"6<<>2!%	c>22%(YYINY// "I XX//"&%a88&'ggG!Y.		 0
 &/cNX.. "I # 5 5 7)!Z88$ $%a88$%GGE-2	!''* !8 &/IN+ 3. MM(GNN3z?CI$NPYZ s8}2245HC$

8$))C.[4==?[!!#;8+$HHZ39MN$))C.:KLK[!U*3t{{3s8?TU(o66s; $"&FK%?6;7**,,HH_diin>cd c({#u,HH]DKK,@$		RUW&&s+%1HH_dkk'.BFDIIVYN[))#.%7HH@$++gBVX^`d`i`ijm`no))#. '//11KU 6Z SYR^R^R`aR`$!6%B1aq"ABAER`aOO))+DAggAG ,?t+>+>>D6)  ??c R\ bs    1b!&b'c                    V ^8  d   QhRRRR/# )r3   r   r   r6   zT.Optional[AssignmentNode]r*   )r8   s   "r1   r9   r    s       6P r0   c                	    V P                   P                  P                  4        F%  w  r#V F  pVP                  V8X  g   K  Vu u # 	  K'  	  R # rz   )r  r  r   r   )r|   r   r  r  r  s   &&   r1   find_assignment_nodeRewriter.find_assignment_node  sD    $$99??ADA99$J  B r0   c                    V ^8  d   QhRRRR/# r3   	candidater   r6   r   r*   )r8   s   "r1   r9   r    s     * *( *t *r0   c                	
   V P                   P                  P                  V0R 4      pV Uu. uF>  p\        V\        4      '       g   K  VP
                  P                  \        9   g   K<  VNK@  	  pp\        V4      ^8H  # u upi r   )	r  dataflow_dag	reachabler   r!   r  r   r   r   )r|   r%  affectedr  affected_targetss   &&   r1   affects_no_other_targets!Rewriter.affects_no_other_targets  sp    ##00::I;N'/x!:a3NASTS^S^SdSdh~S~AAx#$)) @s   B 	B *B c               $    V ^8  d   QhRRRRRR/# )r3   target_noder   r   r6   r$   r*   )r8   s   "r1   r9   r    s&     	d 	dX 	dX 	d$ 	dr0   c                	(   \        \        P                  ! 4       4      pV P                  P                  P                  W!4      pV'       g   Q h\        V4      ^8  d   R# V\        R V^ ,           4       4      P                  ,          P                  # )r.  Nc              3  V   "   T F  p\        V\        4      '       g   K  Vx  K!  	  R # 5irz   )r   r!   .0r  s   & r1   	<genexpr>%Rewriter.get_relto.<locals>.<genexpr>  s     RljL6Q11ls   )
))
r$   r  getcwdr  r'  find_all_pathsr   nextfilenameparent)r|   r.  r   cwd	all_pathss   &&&  r1   	get_reltoRewriter.get_relto  sm    299;$$11@@S	 yy>AdRilRR[[[cccr0   c          
     ,    V ^8  d   QhRRRRRRRRR	R
/# )r3   oprg   rG   r
   newfilesT.List[str]to_sort_nodes(T.List[T.Union[FunctionNode, ArrayNode]]r6   r7   r*   )r8   s   "r1   r9   r    sB     N, N,3 N,0H N,T_ N,  qY N,  ^b N,r0   c                	  a a VR9   g   Q hVR 8X  d   \        SP                  4      pM9VR8X  d3   SP                  f   \        4       pMSP                  0pSP                  p\	        \
        P                  ! 4       4      pV\
        P                  P                  SP                  P                  4      ,          pVS P                  P                  ,          p	S P                  P                  P                  XR4      p
V
 Uu0 uF#  p\        V\        \         34      '       g   K!  VkK%  	  ppV Uu0 uF  pS P#                  V4      '       g   K  VkK   	  ppR V V3R llpV Uu0 uF  q! V4      '       d   K  VkK  	  ppV Uu0 uF%  pS P%                  SP                  V4      f   K#  VkK'  	  ppRpRp\'        V4      ^ 8  dr   \'        V Uu0 uF  p\        V\         4      '       g   K  VkK  	  up4      ^ 8  d*   V Uu0 uF  p\        V\         4      '       g   K  VkK  	  pp\)        VR R7      pEMVR 8X  d   SP                  pEMVR8X  Ed   \!        \+        R	4      \-        \/        R
XP                  ^ ^ ^ RR4      4      \+        R4      4      pS P                  P                  P1                  VSP                  4       \3        \/        RVP                  ^ ^ ^ RR4      4      pVS P4                  9  d   S ;P4                  V.,          un        SP                  P6                  P9                  RR4      f   RpTpMRpSP                  P6                  P9                  RR4      pSP                  P6                  P:                  P=                  4        UUu/ uF2  w  pp\        V\2        4      '       d   VP>                  R8X  d   K/  VVbK4  	  uppSP                  P6                  n        \A        RV\+        R4      V4      pVVP6                  P:                  V&   S P%                  SP                  V4      p\C        V Uu. uF  pS P                  PE                  V4      NK   	  up4      pVR 8X  d   RpM	VR8X  d   Rp. p. pV Uu. uFX  p\        V\F        4      '       d   K  \        V\H        4      '       d   W,          PK                  4       MVPM                  V	4      NKZ  	  pp\O        \        V4      4       EF  p\	        V4      p\
        P                  PQ                  V4      '       d   \	        V4      pM	V	V,          pVV9   d9   \R        PT                  ! RX\R        PV                  ! \I        V4      4      R4       K  \R        PT                  ! RXPY                  4       \R        PV                  ! \I        V4      4      R\R        PZ                  ! VP                   RVP\                   24      4       VP_                  V4       S P                  P`                  SP                  ,          p\        V\b        4      '       g   Q h\e        VV4      p\f        Ph                  ! VR4      Pk                  4       p\/        RVP                  ^ ^ ^ RV4      pV\m        V4      .,          pEK  	  \        V\        \         34      '       g   Q hVP6                  p V ;Pn                  V,          un7        W9  d
   WN.,          pVS P4                  9  d'   V'       g   S ;P4                  V.,          un        R# R# R# u upi u upi u upi u upi u upi u upi u uppi u upi u upi )r~  r  NTc                    V ^8  d   QhRRRR/# r$  r*   )r8   s   "r1   r9   /Rewriter.add_src_or_extra.<locals>.__annotate__  s     	 	h 	4 	r0   c                   < SP                   P                  P                  V SP                  4      pV F&  pV F  p\	        V\
        4      '       g   K    R # 	  K(  	  R# rB  )r  r'  r6  r   r   r   )r%  r;  r  r  r|   rG   s   &   r1   path_contains_unknowns9Rewriter.add_src_or_extra.<locals>.path_contains_unknowns  sQ    ((55DDYPVP[P[\I!B!"l33#  " r0   Fc                2    V P                   V P                  3# rz   )linenocolnor  s   &r1   <lambda>+Rewriter.add_src_or_extra.<locals>.<lambda>  s    QXXqww4Gr0   r   r  rK   z[]r  r   extra_filesr_   +Sourcez
Extra filez  -- z.is already defined for the target --> skippingz  -- Adding at:unicode_escape   r~  r  )8r|  source_nodesrQ  r   r$   r  r5  r  dirnamer8  r  source_rootr'  r(  r   r!   r   r+  r<  r   minr   r   r   add_edger    r  r  get_kwarg_or_defaultrU   r   r   r   r   r  r   rg   resolveto_abs_pathr  isabsr   r  greenlowerr  rK  r  funcvalsr
   r   codecsencodedecoder   r  )!r|   r?  rG   r@  rB  oldtgt_functionr:  target_dir_abssource_root_abscandidates1r  candidates2rH  chosennew_kwarg_flagextra_files_idnodenew_extra_files_nodeold_extra_filesr  r  newfiles_reltosnold_src_listr  	to_appendadded_newfnewf
mocktargetr  tokenr  s!   f&f&&                            r1   add_src_or_extraRewriter.add_src_or_extra  s8   3333?:=f>Q>Q:RC$$!!)e))*)/L299;rwwv{{/C/CDD 0 0 < <<&&33==c4H$ #.Z+QAi?X1Yqq+Z #.R+Q1N1Nq1Qqq+R	 	 #.O+Q5KA5Nqq+O"-\+QQ1Oqq+\37{a{G{!jI.FAA{GH1L*5R+QAy9Qqq+R *GHF9_[[F$$ws|\%LDYDY[\^_abdhjn:o-pryz}r~F ))2266;;G!'h8M8MqRSUVX\^k(l!m4#6#66##~5#{{44]DIQ!%'-$!%"(++"2"2"G"GW["\<BKK<L<L<S<S<Y<Y<[  +Y<[DAqdnoprxdydy~  F  F  JW  W41a4<[  +Y  ''5e_gVYl\b'c$;OL$$%78V<&-dg.hdg^`t/?/?/U/UVX/Ydg.h&i?D$$D	 {G  k  {Guv  OY  Z[  ]i  Ojp*Q:L:L+446RSR_R_`oRpp  {G  kCM*E;Dww}}T""Dz&-|#$

3t9(=?opHH^TZZ\4::c$i3H$[[FOO#4Afmm_!EFHLL))226;;?Jj*BCCCC 40D=='78??AD(FOOQ1dDIE*U+,,I) +, &<";<<<<;;i' &X%M ,,,^F8+ 6D,W [ S P\ HR. +Y /i ksg   \6$\60\;\;$] 8]  ])]]
+]
]],]
]$]	]&A]c                    V ^8  d   QhRRRR/# )r3   nr   r6   r  r*   )r8   s   "r1   r9   r  ,  s     
 
H 
1A 
r0   c                	x   . p\        V\        4      '       dR   \        VP                  P                  4      pVP
                  P                  \        9   d   VP                  ^ 4       V# \        V\        4      '       d   VP                  P                  pV# \        V\        4      '       d   VP                  pV# )r   )r   r!   rk   r  r  r  r   r   popr   r   )r|   r~  r  s   && r1   arg_list_from_nodeRewriter.arg_list_from_node,  s    a&&(()D{{  $::
 	 9%%66##D  <((;;Dr0   c          
     ,    V ^8  d   QhRRRRRRRRR	R
/# )r3   r?  rg   rG   r
   to_be_removedrA  rB  rC  r6   r7   r*   )r8   s   "r1   r9   r  8  s;     2. 2.# 2./G 2.Xc 2.  u] 2.  bf 2.r0   c                	  a aaa SR9   g   Q h\        \        P                  ! 4       4      pVS P                  P                  ,          oR VV VV3R llpSR 8X  d   RpM	SR8X  d   RpV EFh  pV! V4      w  rV	f0   \
        P                  ! RX\
        P                  ! V4      R4       KA  S P                  V
4      '       g0   \
        P                  ! R	X\
        P                  ! V4      R
4       K  \        V	\        \        34      '       g   \        hV	P                  p\
        P                  ! RX\
        P                  ! V4      R\
        P                  ! V
P                    RV
P"                   24      4       VP$                  P'                  V
4       W9  d
   WI.,          pV	S P(                  9  g   EKN  S ;P(                  V	.,          un        EKk  	  R# )r  r  c                    V ^8  d   QhRRRR/# )r3   srcrg   r6   z5T.Tuple[T.Optional[BaseNode], T.Optional[StringNode]]r*   )r8   s   "r1   r9   .Rewriter.rm_src_or_extra.<locals>.__annotate__>  s     	 	3 	#X 	r0   c                  < SR 8X  dU   SP                   P                  P                  \        SP                  4      R4      P                  SP                  04      pM8SR8X  d2   SP                   P                  P                  SP                  0R4      pX F  p\        V\        4      '       d   K  SP                  SP                  V4      pVf   K=  SP                  V4       Fz  p\        V\        4      '       g   K  \        P                  P                  W4P                   ,          4      \        P                  P                  SV ,          4      8X  g   Ku  W$3u u # 	  K  	  R# )r  Tr  )NN)r  r'  r(  r|  rX  unionr   rQ  r   r   r<  r  r   r  r  normpathr   )	r  nodesr   reltorC  r?  r|   rj  rG   s	   &    r1   	find_node+Rewriter.rm_src_or_extra.<locals>.find_node>  s   X~((55??FDWDW@XZ^_eegmgrgrfst''((55??ASAS@TVZ[a..v{{A6$!44Q7%a44!ww//@BGGDTDTUdgjUjDkk'(t 8  r0   sourcez
extra fileNz  -- Unable to findzin the targetz  -- Removing thezis too compilicatedr  r  rU     r  r  )r$   r  r5  r  rZ  r   r   ra  r+  r   r!   r   NotImplementedErrorr  r  r  r8  rK  r  r  r  )r|   r?  rG   r  rB  r:  r  r  r   rootstring_noder  rj  s   fff&&       @r1   rm_src_or_extraRewriter.rm_src_or_extra8  sv   1111299; 0 0 < <<	 	  >D##DA )!D|2D$**Q-Y00==0$

1G\]d\9$=>>)) yyHHH_dDJJqM6[[K$8$8#9;;M;M:N!OPR%%k2 ('4...##v-##/ r0   rG   c                    V ^8  d   QhRRRR/# r  r*   )r8   s   "r1   r9   r  m  s#     kY kY"4 kY kYr0   c                	   a aaaa \         P                  ! R \         P                  ! VR,          4      R\         P                  ! VR,          4      4       S P	                  VR,          4      oSfa   VR,          R8w  dS   \         P
                  ! R\         P                  ! VR,          4      .S P                  4       O5!   S P                  4       # R V V3R llpSe"   VR,           Uu. uF
  q2! V4      NK  	  upVR&   . pVR,          R-9   d%   S P                  VR,          SVR,          V4       EMPVR,          R.9   d%   S P                  VR,          SVR,          V4       EMVR,          R8X  Ed   SeT   \         P
                  ! R	\         P                  ! VR,          4      R
.S P                  4       O5!   S P                  4       # \        P                  ! RRVR,          4      pVR,          R8X  d
   VR,           MRpVR,           p\        P                  P                  \        P                  ! 4       S P                   P"                  VR,          \$        P&                  4      p\)        \+        RV^ ^ ^ RR4      4      p	\-        \/        R4      V	\/        R4      4      p
\)        \+        RV^ ^ ^ RR4      4      p\1        \3        \+        RV^ ^ ^ R/R4      4      \/        R4      V\/        R4      4      p\5        \3        \+        RV^ ^ ^ R/V4      4      \/        R4      V4      pVR,           Uu. uF  p\7        \+        RV^ ^ ^ RV4      4      NK  	  upV	n        V
.Vn        \)        \+        RV^ ^ ^ RR4      4      p\1        \3        \+        RV^ ^ ^ R/VR,          4      4      \/        R4      V\/        R4      4      p\5        \3        \+        RV^ ^ ^ R/V4      4      \/        R4      V4      p\7        \+        RV^ ^ ^ RVR,          4      4      \3        \+        RV^ ^ ^ RV4      4      .Vn        VP;                  \=        4       4       VP;                  \=        4       4       S ;P>                  VV.,          un        EMVR,          R8X  d   S PA                  SPB                  4      pVf   SPB                  pS ;PD                  V.,          un"        \         P                  ! R\         PF                  ! VR,          4      R\         PH                  ! VPJ                   RVPL                   24      4       EMVVR,          R 8X  EdH   \O        \        P                  ! 4       4      pVS P                   P"                  ,          pS P                   PQ                  VSPR                  SPT                  4      pS P                   PQ                  TSPR                  SPV                  '       d   SPV                  .M. 4      pV Uu. uF'  p\Y        V\Z        4      '       d   R!M\]        VV4      NK)  	  ppV Uu. uF'  p\Y        V\Z        4      '       d   R!M\]        VV4      NK)  	  ppR"SP^                  RVR#V/pS Pa                  RSPb                  V4       V EFU  pR$ R% loR& V3R' lloR( V3R) llo\Y        V\0        4      '       d\   VPd                  Pf                  \h        9   d=   VPj                  P8                  R*,          pVPj                  P8                  ^ ,          .pMVPj                  P8                  p. pV Uu. uF  p\Y        V\6        4      '       d   K  VNK  	  ppV Uu. uF  p\Y        V\6        4      '       g   K  VNK  	  pp\m        VV3R+ lR,7      pVV,           \n        Pp                  ! \n        Pr                  \t        ,          V4      ,           VPj                  n        EKX  	  R# u upi u upi u upi u upi u upi u upi )0zProcessing targetrG   rQ   Nr  zUnknown targetc                    V ^8  d   QhRRRR/# )r3   r  rg   r6   r*   )r8   s   "r1   r9   -Rewriter.process_target.<locals>.__annotate__u  s     	A 	AC 	AC 	Ar0   c                  < \         P                  P                  \         P                  P                  SP                  SP
                  4      4      p\         P                  P                  V 4      '       d    \         P                  P                  W4      # \         P                  P                  V 4      '       g   V # \         P                  P                  \         P                  P                  V 4      V4      # rz   )	r  r  abspathr  r  rL   r`  r   exists)r  rL   r|   rG   s   & r1   
rel_source+Rewriter.process_target.<locals>.rel_sourceu  s    WW__RWW\\$..&--%PQFww}}S!!wws33WW^^C((
77??277??3#7@@r0   rR   zCan not add targetzbecause it already existsz[- ]_rN   rO   _exe_lib_sourcesrL   r   rK   r  r  rW   files()r  r  z  -- Removing targetrT  rU  re   unknownr  rQ  c                    V ^8  d   QhRRRR/# )r3   textrg   r6   zT.Union[int, str]r*   )r8   s   "r1   r9   r    s     E Ec E&7 Er0   c                d    V P                  4       '       d   \        V 4      # V P                  4       # rz   )isdigitintrb  )r  s   &r1   convert(Rewriter.process_target.<locals>.convert  s!    $(LLNNs4yD

Dr0   c                    V ^8  d   QhRRRR/# )r3   r   rg   r6   zT.List[T.Union[int, str]]r*   )r8   s   "r1   r9   r    s     G G# G*C Gr0   c                h   < \         P                  ! R V 4       Uu. uF  pS! V4      NK  	  up# u upi )z([0-9]+))rb  split)r   cr  s   & r1   alphanum_key-Rewriter.process_target.<locals>.alphanum_key  s,    ,.HHZ,EF,Eq
,EFFFs   /c                    V ^8  d   QhRRRR/# )r3   r   rg   r6   z0T.List[T.Tuple[bool, T.List[T.Union[int, str]]]]r*   )r8   s   "r1   r9   r    s     j j j)Y jr0   c                   < \        V P                  R 4      4       UUu. uF!  w  rV P                  R 4      V8*  S! V4      3NK#  	  upp# u uppi )r  )	enumerater  count)r   idxr  r  s   &  r1   path_sorter,Rewriter.process_target.<locals>.path_sorter  sG    OXY\YbYbcfYgOhiOhVS33.Q@Ohiiis   'A
:r.  NNc                (   < S! V P                   4      # rz   )r   )r  r  s   &r1   rN  )Rewriter.process_target.<locals>.<lambda>  s    K4Hr0   rP  rW  r  )r   r   );r   r  r   r  r  r  r  r  r{  r  rb  subr  r  r  r5  r  rZ  r   r  r   r   r   r   r!   r    r   r   r  acceptr   r  r!  r   r  ra  r  r8  rK  r$   nodes_to_pretty_filelistrL   rX  rQ  r   r   r   r  r  rW   r  r   r   r  r  r   r   Listr   ) r|   r]   r  r  rB  id_base	target_id	source_idr8  src_arg_nodesrc_arr_nodesrc_far_nodesrc_fun_nodesrc_ass_nodetgt_arg_nodetgt_fun_nodetgt_ass_node	to_remover:  rj  src_listextra_files_list	test_datar   src_argstarget_namer  rR   r  r  r  rG   s    f&                          @@@@r1   r  Rewriter.process_targetl  s   $diiH&>TYYWZ[fWgMhi!!#h-0>c+.,>JJ'3x=)ATDMMOT$$&&	A 	A 58^D^jm^DC	NBD{==!!#k"2FC	NMZ!==  [!163y>=Y-!

/3x=1IKfyimivivixy((**ffWc3x=9G,/,>,,N&(TZI*,Iww||BIIK1A1A1M1MsS[}^i^x^xyH (h!Q4QS(TUL$WS\<NL'h!Q4QS(TUL'uT8Q1fV]/^(_ahilamo{  ~E  FI  ~J  KL)&tXq!QPVXa1b*celmpeqs  ALgjktgu%vgubcjx1aQRTXZ[1\&]gu%vL"&2^L" (h!Q4QS(TUL'uT8Q1fVYZgVh/i(jlstwlx  {G  IP  QT  IU  VL)&tXq!QPVXa1b*celmpeqs  AL58Q1dCMRSuXxAq$	JK&L"
  7 9: 7 9:,!==,"&";";FKK"HI "KK	  YK/ HH+TZZH-F[[I$6$6#7q9I9I8J!KLN ' ryy{#C!D$4$4$@$@@O''@@RXR_R_agatatuH#//HHZ`ZgZg  BH  BT  BT  BTjpj|j|i}  Z\   ]kstksfgZ<%@%@	gaQ`FaaksHt tD   E  tDnoZ<-H-H	gVWYhNi i  tD   E 8/I
 MM(FIIy9 AEG Gj j !\**q{{/@/@DZ/Z66++B/ vv//2366++ 4<(^HqJqR\D]HG(^6>*\h*QPZB[11hG*\W*HIG*W4qvvaffX>NPW7XXAFF' M E4 &wB u  E4 )_*\s0   *_"/#_'3-_,&-_1/_6_6_;5_;c                    V ^8  d   QhRRRR/# r  r*   )r8   s   "r1   r9   r    s     ) )- )$ )r0   c           	     	    R V9  d   \        R4      hVR ,          V P                  9  dD   \        RP                  VR ,          \        V P                  P	                  4       4      4      4      hV P                  VR ,          ,          ! V4       R# )r=   zCommand has no key "type"z0Unknown command "{}". Supported commands are: {}N)r)   r  r8   rk   rm   )r|   r]   s   &&r1   processRewriter.process  so    #$?@@v;dnn,#$V%+VCKdnn>Q>Q>S9T%UW Ws6{#C(r0   c                   V ^8  d   QhRR/# r  r*   )r8   s   "r1   r9   r    s     [% [%t [%r0   c           
     	r
  aa \         ;QJ d&    R  V P                   4       F  '       d   K   RM	  RM! R  V P                   4       4      '       g   Q h\         ;QJ d&    R V P                   4       F  '       d   K   RM	  RM! R V P                   4       4      '       g   Q h\         ;QJ d&    R V P                   4       F  '       d   K   RM	  RM! R V P                   4       4      '       g   Q h\         ;QJ d&    R V P                   4       F  '       d   K   RM	  RM! R V P                   4       4      '       g   Q hV P                   Uu. uF	  pRVRR/NK  	  ppY P                   Uu. uF	  pRVRR	/NK  	  up,          p\        VR
 RR7      pY P                   Uu. uF	  pRVRR/NK  	  up,          p. pV F  pRpVR,          R8X  g   VR,          R8X  df   \        4       p\        P                  ! \        VR,          4      P                  V4       VP                  4        VP                  P                  4       pR\        P                  ! \        VR,          4      P                  RVRVR,          RVR,          /pW7.,          pK  	  / oV EF,  pVR,          S9   d   K  \        P                  P!                  \        P                  ! \"        VR,          4      4      pRp	\        P                  P%                  V4      '       g!   \'        VRRR7      ;_uu_ 4         RRR4       \'        VRR7      ;_uu_ 4       p
V
P)                  4       p	RRR4       V	P+                  R4      p^ p. pV F  pW.,          pV\-        V4      ,          pK   	  RVRV	RV/S\        P                  ! \"        VR,          4      &   EK/  	  R VV3R lloV F  pVR,          R9   d   S! V4       K  VR,          R8X  g   K+  S\        P                  ! \"        VR,          4      ,          R;;,          \        P                  ! \"        VR,          4      R,           ,          uu&   K  	  SP/                  4        Fo  w  pp\0        P2                  ! R\0        P4                  ! V4      4       \'        VR,          RRR7      ;_uu_ 4       p
V
P7                  VR,          4       RRR4       Kq  	  R# u upi u upi u upi   + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     K  ; i)c              3     "   T F9  p\        VR 4      ;'       d!    \        VR4      ;'       d    \        VR4      x  K;  	  R# 5irK  rL  r8  Nr:  r1  s   & r1   r3  )Rewriter.apply_changes.<locals>.<genexpr>  s;     xdw_`71h'ZZGAw,?ZZGAzDZZdw   AAAFTc              3     "   T F9  p\        VR 4      ;'       d!    \        VR4      ;'       d    \        VR4      x  K;  	  R# 5ir  r  r1  s   & r1   r3  r    s;     ydx_`71h'ZZGAw,?ZZGAzDZZdxr  c              3  N   "   T F  p\        V\        \        34      x  K  	  R # 5irz   )r   r   r!   r1  s   & r1   r3  r    s!     YEX:a)\!:;;EXs   #%c              3  X   "   T F   p\        V\        \        \        34      x  K"  	  R # 5irz   )r   r   r   r!   r1  s   & r1   r3  r    s$     jUiPQ:a)^\!JKKUis   (*r   rB   modifyr`   c                    \         P                  ! \        V R ,          4      P                  \         P                  ! \        V R ,          4      P                  3# r   )r   r   r   rK  rL  rM  s   &r1   rN  (Rewriter.apply_changes.<locals>.<lambda>  s:    qvvh&	7R7Y7Y[\[a[abjlmntlu[v[|[|6}r0   )r   reverser_   rK   filerg   wutf-8encodingNr  rawoffsetsc                    V ^8  d   QhRRRR/# )r3   r   rv   r6   r7   r*   )r8   s   "r1   r9   ,Rewriter.apply_changes.<locals>.__annotate__  s     	I 	I- 	I$ 	Ir0   c           
     4  < SV R ,          ,          R,          pSV R ,          ,          R,          pV R,          pVP                   ^,
          pVP                  pW,          V,           pTp\        V\        \        34      '       d,   WP
                  ^,
          ,          VP                  ,           pM\        V\        4      '       d   V R,          R8X  d   \        VP                  \        \        34      '       d9   S	! R V R ,          RRRVP                  RR/4       SV R ,          ,          R,          pW',          R8w  d   V^,          pK  V^,          pW',          R
9   d   V^,          pK  VR	V V R,          ,           W'R	 ,           SV R ,          ,          R&   R	# )r  r  r  r   rB   r`   rg   rK   r  N>   	
 )	rK  rL  r   r   r!   
end_lineno	end_colnor   r   )
r   r  r  r   linecolstartendr  remove_nodes
   &       r1   r  +Rewriter.apply_changes.<locals>.remove_node  sE   AfI&y1G&	"5)CV9D;;?D**CMC'EC$L 9::oo12T^^C D.11akT6Idjj9l*CDD6E2vtzzS[]a bc&	*51Ch#o1HCqh"331HC&)&5kAeH&<s4y&HE!F)U#r0   r  	Rewriting>   r`   r  )allr  r  r  r  r	   r   r   r   r  post_processresultstripr8  r  r  realpathrg   r  openread
splitlinesr   r   r   r  r  r  )r|   r  
work_nodesstr_listr   new_dataprinterr  fpathfdatafpm_linesoffsetline_offsetsrC  r   r   r  r  s   &                @@r1   apply_changesRewriter.apply_changes  s
   sxdhdwdwxsssxdhdwdwxxxxxsydhdxdxysssydhdxdxyyyyysYTEXEXYsssYTEXEXYYYYYsjUYUiUijsssjUYUiUijjjjj?C?R?RS?R!vq(H5?R
S<P<PQ<Pq8T2<PQQ
J,}  HL  M
=N=NO=N8U3=NOO
 AH{h&!H+*>$,x6+227;$$&">>//1x63<<x&	!H+	D H   %'AyE!GG$$QVVC6%;<EE77>>%((%w77 8eg.."	 / &&t,GFL(#a&  
 u<-E!&&ai()) 6	I 	I0 A{..A8%affS!F),-e4sAeH8MPT8TT4	  HCHH[$++c"23c&k399RU$ :9 &e TQO8 877...f :99s6   S.0S3%S8*S=	TT%=TT"%T6)r  r  r  r  r  r  r  r  N)ninjaF)r+   r,   r-   r.   r   r}   r  r  r  r  r  r  r  r  ru   rj   r  r  r!  r+  r<  r{  r  r  r  r  r  r/   r*   r0   r1   r  r  s  s    ::W0Y
6
A
62 - 123'( 4'(R -)*z* +z*x*
	dN,b
2.h -)*kY +kYZ)[% [%r0   r  r`   ra   rb   rc   rd   c                    V ^8  d   QhRRRR/# )r3   in_listrA  r6   zT.Dict[str, str]r*   )r8   s   "r1   r9   r9   I  s      + *: r0   c                    / p\        V 4      p V F  p\        V4      W&   K  	  V#   \         d    \        R 4      hi ; i)z1List of key/value pairs must have an even length.)iterr7  StopIterationr)   )r  r  itr   s   &   r1   list_to_dictr  I  sS    F	gBUA RFI	  M  U STTUs   ' >c                    V ^8  d   QhRRRR/# )r3   r  rA  r6   zT.Dict[str, T.Optional[str]]r*   )r8   s   "r1   r9   r9   V  s     # #+ #2N #r0   c                ,   \        V 4      ^,          ^ 8X  dh   \        ;QJ d#    R V R,           4       F  '       d   K   RM	  RM! R V R,           4       4      '       d    \        P                  ! R4       V R,          p V  Uu/ uF  qRbK  	  up# u upi )r3   c              3  *   "   T F	  qR 8H  x  K  	  R# 5ir   r*   )r2  as   & r1   r3  *list_to_dict_for_delete.<locals>.<genexpr>W  s     !>:ar':s   :r.  Nr3   FTzYEven-numbered arguments are all blank; ignoring these for compatibility with Meson < 1.10:NNr3   N)r   r  r   deprecation)r  r  s   & r1   list_to_dict_for_deleter  V  sr    
4y1}cc!>4:!>ccc!>4:!>>> N 	OCy!"TtGT"""s   Bc                    V ^8  d   QhRRRR/# r3   r[   argparse.Namespacer6   zT.List[T.Dict[str, T.Any]]r*   )r8   s   "r1   r9   r9   ]  s      / 4N r0   c                    R RRV P                   R\        V P                  ,          RV P                  RV P                  RV P
                  /.# )r=   rG   rQ   rR   rL   rN   )rG   target_operation_maprQ   rR   rL   rM   )r[   s   &r1   generate_targetr$  ]  sM    '..)'*;*;<7??'..w''  r0   c                    V ^8  d   QhRRRR/# r   r*   )r8   s   "r1   r9   r9   g  s      / 4N r0   c           
         V P                   R 8X  d   \        V P                  4      pM\        V P                  4      pRRRV P                  RV P
                  RV P                   RV/.# )r}  r=   rU   rV   rW   rQ   )rQ   r  rU   r  rV   rW   r[   rU   s   & r1   generate_kwargsr(  g  sd    H$(8gnn-G$$gjjW&&&  r0   c                    V ^8  d   QhRRRR/# r   r*   )r8   s   "r1   r9   r9   t  s     	 	1 	6P 	r0   c                    V P                   R 8X  d   \        V P                  4      pM\        V P                  4      pRRRV P                   RV/.# )r}  r=   rZ   rQ   r[   )rQ   r  r[   r  r'  s   & r1   generate_def_optsr+  t  sQ    H$(9goo.!W&&6  r0   c                    V ^8  d   QhRRRR/# r   r*   )r8   s   "r1   r9   r9     s      L L, L1K Lr0   c                   \         P                  P                  V P                  4      '       d   \	        V P                  R R7      ;_uu_ 4       p\
        P                  ! \
        P                  \
        P                  \        \
        P                  3,          ,          \        P                  ! V4      4      uuRRR4       # \
        P                  ! \
        P                  \
        P                  \        \
        P                  3,          ,          \        P                  ! V P                  4      4      #   + '       g   i     R# ; i)r  r  N)r  r  r  r^   r  r   r   r  Dictrg   Anyloadloads)r[   r
  s   & r1   generate_cmdr2    s    	ww~~gll##',,11R66!&&QUU
!34diimD 21 vvaffQVVCJ/0$**W\\2JKK 211s   A)D66E	rH   rX   rY   r\   r]   c                    V ^8  d   QhRRRR/# )r3   r[   r!  r6   r  r*   )r8   s   "r1   r9   r9     s     ( (# ( (r0   c           
     X   \         P                  ! R 4       V P                  '       g   \         P                  ! 4         \	        4        \        V P                  V P                  R7      pVP                  4        V P                  f/   \         P                  ! R4        \         P                  ! 4        ^# \        V P                  ,          ! V 4      p\        V\        4      '       g   \        R4      h\!        V4       F  w  r4\        V\"        4      '       g   \        R4      hVP%                  V4       VP'                  4        V\)        V4      ^,
          8X  d    Mv. Vn        . Vn        . Vn        \1        VP                  RVP2                  P4                  \7        4       \9        4       \;        4       .R7      Vn        VP                  4        K  	  VP=                  4         \         P                  ! 4        ^ #   \>         d   pThRp?ii ; i  \         P                  ! 4        i ; i)T)r  NzNo command specifiedzCommand is not a listzCommand is not an objectrK   r  ) r   redirectverbose	set_quietr   r  r  rC   r  r=   r  set_verbosecli_type_mapr   rk   	TypeErrorr  objectr  r  r   r  r  r  r   r  backendr   r   r   r  	Exception)r[   rewritercommandsr   r]   r  s   &     r1   runr@    s   MM$???#G--7<<H <<JJ-.8 	5  -g6(D))344)FAc6** :;;S!""$CMA%%&(H#')H$$&H!#;H<N<NPRT\ThThTpTp  M  O  Qh  Qj  l}  l  ~@  $AH ""$ *  	 	   	s+   AG= 6D/G= =HH

HH H))r|  r}  r_   r  r   re   )r~  r  r  r  r  r  re   )both_librariesrO   jarlibraryshared_libraryshared_modulestatic_library)T__conditional_annotations__
__future__r   astr   r   r   r   r   r	   ast.interpreterr
   r   r   interpreterbaser   r   interpreterbase.helpersr   mesonbuild.mesonlibr   r   r   rK   r   r   	functoolsr   mparserr   r   r   r   r   r   r   r   r   r   r    r!   r"   mintror#   r^   r  rb  r  rd  typingr   pathlibr$   TYPE_CHECKINGargparser%   r&   r'   r)   rs   ru   r   r   r   r   r  rQ  rk  rg   r  rk   rj   r   rl   r  r#  r  r  r$  r(  r+  r2  r9  r@  )rG  s   @r1   <module>rU     s   # " J  J W W 2 , D D   {  {  {  { (        ???8#	 	
!KF* *B'f 'fRy 
	 
i S>	 S>j9 0) 2 c4%!23D"d# S$%sD$c4![\4T"	 3d#c4!~D"d#3D/\  ,S  T2. * H()XI)<<	 Ix9[))9xy <<(81  DJ% J%Z 
9(,(&
F #	L o	?o(	|	<(r0   