+
    UBi              	         ^ RI Ht ^RIHtHtHt ^RIHtHtH	t	H
t
HtHtHt ^RIHtHtHtHtHtHt ^RIHt ^RIHt ^RIHtHt ^RIHtHtHtHt ^R	I H!t! ^R
I"H"t" ^ RI#t#^ RI$t$^ RI%t%^ RI&t&^ RI't'^ RI(t)^ RI*t*])PV                  '       Ed*   ^RIH,t,H-t-H.t.H/t/ ^RI0H1t1 ^RI2H3t3 ])Ph                  ])Pj                  ])Pl                  ]Pn                  ,          ])Pl                  ]8,          ])Pl                  ]9,          ])Pl                  ]:,          ])Pl                  ];,          ])Pl                  ]<,          3,          ])Pz                  ],R.]
],,          3,          3,          t>])Ph                  ]:])Pz                  ]P~                  ])P                  ]/,          ])Ph                  ]:]/3,          .]/3,          3,          tA ! R R]4      tB ! R R4      tCR# )    )annotations)environmentmparsermesonlib)InterpreterObjectMesonInterpreterObjectMutableInterpreterObjectObjectHolderIterableObjectContextManagerObjectHoldableTypes)BreakRequestContinueRequestInterpreterExceptionInvalidArgumentsInvalidCodeSubdirDoneRequest)mlog)
FeatureNew)Disableris_disabled)default_resolve_keyflattenresolve_second_level_holdersstringifyUserArguments)MesonOperator)	_unholderN)InterpreterObjectTypeVar
SubProjectTYPE_kwargsTYPE_var)
AstVisitor)Interpreterr#   c                  .   a  ] tR t^AtR V 3R lltRtV ;t# )InvalidCodeOnVoidc                    V ^8  d   QhRRRR/# )   op_typestrreturnNone )formats   "O/usr/lib/python3.14/site-packages/mesonbuild/interpreterbase/interpreterbase.py__annotate__InvalidCodeOnVoid.__annotate__C   s     U U U U    c                	0   < \         SV `  R V: R24       R# )zCannot perform z operation on void statement.N)super__init__)selfr(   	__class__s   &&r.   r4   InvalidCodeOnVoid.__init__C   s    ?7+5RSTr1   r,   )__name__
__module____qualname____firstlineno__r4   __static_attributes____classcell__)r6   s   @r.   r%   r%   A   s    U Ur1   r%   c                  R   ] tR t^GtR R ltRYR R lltR R ltR R ltR	 R
 ltR R lt	R R lt
RZR R lltR R ltR R lt]! R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& R' ltR( R) ltR* R+ lt]! R,R-4      R. R/ l4       t]! R0R14      R2 R3 l4       tR4 R5 ltR6 R7 ltR8 R9 ltR: R; ltR< R= ltR> R? lt R@ RA lt!RB RC lt"]#R3RD RE llt$RF RG lt%RH RI lt&RJRK/RL RM llt'RN RO lt(RP RQ lt)RR RS lt*R[RT RU llt+R[RV RW llt,RXt-R# )\InterpreterBasec          
     ,    V ^8  d   QhRRRRRRRRRR/# )	r'   source_rootr)   subdir
subprojectr   subproject_direnvzenvironment.Environmentr,   )r-   s   "r.   r/   InterpreterBase.__annotate__H   s1     7 7C 7 7* 7^a 7h 7r1   c                	t   Wn         / V n        / V n        / V n        / V n        \
        P                  ! 4       V n        \        4       V n	        W n
        W n        W0n        W@n        WPn        VP                  4       V n        / V n        ^ V n        RV n        \(        P*                  ! RRR4      V n        RV n        R# )r   sentinelN)rA   funcsbuiltin
holder_mapbound_holder_mapr   
OrderedSetbuild_def_filessetprocessed_buildfilesrB   root_subdirrC   rD   r   get_coredatacoredata	variablesargument_depthcurrent_linenor   BaseNodecurrent_nodetmp_meson_version)r5   rA   rB   rC   rD   rE   s   &&&&&&r.   r4   InterpreterBase.__init__H   s    &#%
79)+/19A9L9L9N03!!$,((*9;  $,,RZ@
 37r1   c                    V ^8  d   QhRRRR/# )r'   strictboolr*   r+   r,   )r-   s   "r.   r/   rF   c   s      D D r1   c                	    R # Nr,   )r5   r]   s   &&r.   handle_meson_version_from_ast-InterpreterBase.handle_meson_version_from_astc   s    r1   c               $    V ^8  d   QhRRRRRR/# )r'   fnamer)   errnamer*   r,   )r-   s   "r.   r/   rF   g   s&     b bC b# b# br1   c                	    \        VR R7      ;_uu_ 4       pVP                  4       uuRRR4       #   + '       g   i     R# ; i  \         d9   p\        P                  ! ^^T4      p\
        P                  ! RT 2TR7      hRp?ii ; i)utf-8encodingNz'Build file failed to parse as unicode: )node)openreadUnicodeDecodeErrorr   rX   r   	from_node)r5   rd   re   ferj   s   &&&   r.   read_buildfileInterpreterBase.read_buildfileg   sr    	beg..!vvx /...! 	b##Aq'2D''*QRSQT(U\`aa	bs0   A 2
A A	A A B	3BB	c                   V ^8  d   QhRR/# r'   r*   r+   r,   )r-   s   "r.   r/   rF   o   s      d r1   c                	   \         P                  P                  V P                  \        P
                  4      pV P                  P                  V4       \         P                  P                  V P                  V4      p\         P                  P                  V4      '       g   \        R V 24      hV P                  W"4      pVP                  4       '       d   \        R4      h\        V\        4      '       g   Q h \         P"                  ! W24      P%                  4       V n        V P)                  4        R#   \         P*                   dA   pY$n        TP&                  '       d"   TP&                  T n        T P)                  4        ThRp?ii ; i)zMissing Meson file in zBuilder file is empty.N)ospathjoinrB   r   build_filenamerO   addrA   isfiler   rq   isspacer   
isinstancer)   r   Parserparseastra   ParseExceptionfile)r5   ry   	mesonfilecodemes   &    r.   load_root_meson_file$InterpreterBase.load_root_meson_fileo   s   dkk;3M3MN  0GGLL!1!1>B	ww~~i(("%;I;#GHH""98<<>>677$$$$$
	~~d6<<>DH..0%% 	Gvvv 66224H	s   <9D7 7F;FFc                   V ^8  d   QhRR/# rt   r,   )r-   s   "r.   r/   rF      s     1 1t 1r1   c                @    V P                  V P                  ^R7       R# )z
Parses project() and initializes languages, compilers etc. Do this
early because we need this before we parse the rest of the AST.
)endN)evaluate_codeblockr   r5   s   &r.   parse_projectInterpreterBase.parse_project   s    
 	a0r1   c                   V ^8  d   QhRR/# rt   r,   )r-   s   "r.   r/   rF      s      C  C$  Cr1   c                	   R  R lpV! V P                   4      '       g   \        P                  ! V P                  4      P	                  4       pTpVP
                   F  pVR,          P                  4       '       dp   \        VR,          RR7      ;_uu_ 4       pVP                  4       pRRR4        \        P                  ! XR4      P                  4       pT! T4      '       d   Tp MK   M	  RpW28w  d   \        RV R	V R
24      h\        RV 24      hR#   + '       g   i     Lx; i  \        P                   d     K  i ; i)c                    V ^8  d   QhRRRR/# )r'   r   mparser.CodeBlockNoder*   objectr,   )r-   s   "r.   r/   6InterpreterBase.sanity_check_ast.<locals>.__annotate__   s     	b 	b2 	bv 	br1   c                .   \        V \        P                  4      '       g   \        R 4      hV P                  '       g   \        R4      hV P                  ^ ,          p\        V\        P
                  4      ;'       d    VP                  P                  R8H  # )z5AST is of invalid type. Possibly a bug in the parser.zNo statements in code.project)r}   r   CodeBlockNoder   linesFunctionNode	func_namevalue)r   firsts   & r.   _is_project5InterpreterBase.sanity_check_ast.<locals>._is_project   sn    c7#8#899!"YZZ999!":;;IIaLEeW%9%9:aau?T?TXa?aar1   zmeson.buildrg   rh   Nemptyz+first statement must be a call to project()zNot the project root: z1

Did you mean to run meson from the directory: "z"?zInvalid source tree: )r   pathlibPathrA   resolveparentsis_filerk   rl   r   r~   r   r   r   )	r5   r   pfoundparentro   r   r   errors	   &        r.   sanity_check_ast InterpreterBase.sanity_check_ast   s&   	b 488$$T--.668AE))]*3355f}4wGG1 vvx H!%nnT7;AAC #3'' & (  $  BEz!$:5'Atuzt{{}"~!$9%"ABB/ %
 HG
 #11 ! !s   D1%D+D(+EEc                   V ^8  d   QhRR/# rt   r,   )r-   s   "r.   r/   rF      s      T r1   c                	f     V P                  V P                  ^R7       R#   \         d     R# i ; i)   )startN)r   r   r   r   s   &r.   runInterpreterBase.run   s0    	##DHHA#6  		s   ! 00Nc               (    V ^8  d   QhRRRRRRRR/# )	r'   rj   r   r   intr   zT.Optional[int]r*   r+   r,   )r-   s   "r.   r/   rF      s+      '< S Sb nr r1   c                	~   Vf   R # \        V\        P                  4      '       g0   \        R4      pVP                  Vn        VP
                  Vn        VhVP                  W# p^ pV\        V4      8  d&   WV,          p V P                  V4       T^,          pK5  R #   \         d   p\        TRR 4      f   T P                  P                  Tn        T P                  P
                  Tn        \        P                  P                  T P                  T P                   \"        P$                  4      Tn        ThR p?ii ; i)Nz?Tried to execute a non-codeblock. Possibly a bug in the parser.lineno)r}   r   r   r   r   colnor   lenevaluate_statement	ExceptiongetattrrY   rv   rw   rx   rA   rB   r   ry   r   )r5   rj   r   r   rp   
statementsicurs   &&&&    r.   r   "InterpreterBase.evaluate_codeblock   s   <$ 5 566]^A{{AHjjAGGZZ*
#j/!-C	'', FA "  1h-5  $0077AH"//55AGWW\\$*:*:DKKIcIcdAFs   ?B D<(BD77D<c                    V ^8  d   QhRRRR/# )r'   r   mparser.BaseNoder*   T.Optional[InterpreterObject]r,   )r-   s   "r.   r/   rF      s     : :&6 :;X :r1   c                	4
   Wn         \        V\        P                  4      '       d   V P	                  V4      # \        V\        P
                  4      '       d   V P                  V4       R# \        V\        P                  4      '       d   V P                  V4       R# \        V\        P                  4      '       d   V P                  V4      # \        V\        P                  4      '       db   VP                  '       d5   VP                  '       d   V P                  V4      # V P                  V4      # V P!                  VP"                  4      # \        V\        P$                  4      '       d   V P!                  VP"                  4      # \        V\        P&                  4      '       d   V P)                  V4      # \        V\        P*                  4      '       d   V P-                  VP"                  4      # \        V\        P.                  4      '       d   V P1                  V4      # \        V\        P2                  4      '       d   V P5                  V4      # \        V\        P6                  4      '       d   V P9                  V4      # \        V\        P:                  4      '       d   V P!                  VP"                  4      # \        V\        P<                  4      '       d   V P?                  V4      # \        V\        P@                  4      '       d   V PC                  V4      # \        V\        PD                  4      '       d   V PG                  V4      # \        V\        PH                  4      '       d   V PK                  V4      # \        V\        PL                  4      '       d   V PO                  V4      # \        V\        PP                  4      '       d   V PS                  V4       R# \        V\        PT                  4      '       d   V PW                  V4      # \        V\        PX                  4      '       d   V P[                  V4      # \        V\        P\                  4      '       d   \_        4       h\        V\        P`                  4      '       d   \c        4       h\        V\        Pd                  4      '       d   V Pg                  VPh                  4      # \        V\        Pj                  4      '       d   V Pm                  V4      # \o        R 4      h)zUnknown statement.N)8rY   r}   r   r   function_callPlusAssignmentNodeevaluate_plusassignAssignmentNode
assignment
MethodNodemethod_call
StringNode
is_fstringis_multilineevaluate_multiline_fstringevaluate_fstring
_holderifyr   BooleanNodeIfClauseNodeevaluate_ifIdNodeget_variableComparisonNodeevaluate_comparison	ArrayNodeevaluate_arraystatementDictNodeevaluate_dictstatement
NumberNodeAndNodeevaluate_andstatementOrNodeevaluate_orstatementNotNodeevaluate_notstatement
UMinusNodeevaluate_uminusstatementArithmeticNodeevaluate_arithmeticstatementForeachClauseNodeevaluate_foreach	IndexNodeevaluate_indexingTernaryNodeevaluate_ternaryContinueNoder   	BreakNoder   ParenthesizedNoder   innerTestCaseClauseNodeevaluate_testcaser   )r5   r   s   &&r.   r   "InterpreterBase.evaluate_statement   s   c7//00%%c**W7788$$S)j i W3344OOC f e W//00##C((W//00~~~###::3??0055syy11W0011??399--W1122##C((W^^,,$$SYY//W3344++C00W..////44W--....s33W//00??399--W__----c22W^^,,,,S11W__----c22W//000055W334444S99W6677!!#&  W..//))#..W0011((--W1122!##W..//. W6677**39955W7788))#..233r1   c                    V ^8  d   QhRRRR/# )r'   r   zmparser.ArrayNoder*   r   r,   )r-   s   "r.   r/   rF   
  s      B B+< BAR Br1   c                	    V P                  VP                  4      w  r#\        V4      ^ 8  d   \        R4      hT P	                  V Uu. uF  p\        V4      NK  	  up4      # u upi )r   z4Keyword arguments are invalid in array construction.)reduce_argumentsargsr   r   r   r   )r5   r   	argumentskwargsxs   &&   r.   r   'InterpreterBase.evaluate_arraystatement
  sU    "33CHH=v;?TUUi@i	!i@AA@s   A#dictz0.47.0c                    V ^8  d   QhRRRR/# )r'   r   zmparser.DictNoder*   r   r,   )r-   s   "r.   r/   rF     s      M M*: M?P Mr1   c           
     	   a  R  V 3R llpS P                  VP                  VRR7      w  r4V'       d   Q hS P                  VP                  4        UUu/ uF  w  rVV\	        V4      bK  	  upp4      # u uppi )c                    V ^8  d   QhRRRR/# )r'   keyr   r*   r)   r,   )r-   s   "r.   r/   <InterpreterBase.evaluate_dictstatement.<locals>.__annotate__  s     		 		- 		# 		r1   c                $  < \        V \        P                  4      '       g#   \        P                  ! R RSP
                  4       SP                  V 4      pVf   \        R4      h\        V4      p\        V\        4      '       g   \        R4      hV# )z&Dictionary entry using non literal keyz0.53.0zKey cannot be void.zKey must be a string)
r}   r   r   r   
single_userC   r   r   r   r)   )r   
key_holderstr_keyr5   s   &  r.   resolve_key;InterpreterBase.evaluate_dictstatement.<locals>.resolve_key  s{    c7#5#566%%&NPXZ^ZiZij005J!&'<==
+Ggs++&'=>>Nr1   zDuplicate dictionary key: {})key_resolverduplicate_key_error)r   r   r   itemsr   )r5   r   r  r   r   kvs   f&     r.   r   &InterpreterBase.evaluate_dictstatement  sn    		 		 !11#((  kI1  J	}FLLNKNDA9Q<NKLLKs   A2
c                    V ^8  d   QhRRRR/# )r'   r   zmparser.NotNoder*   r   r,   )r-   s   "r.   r/   rF      s     I I I=N Ir1   c                	    V P                  VP                  4      pVf   \        R4      h\        V\        4      '       d   V# V P                  VP                  \        P                  R 4      4      # )Nnot)	r   r   r%   r}   r   r   operator_callr   NOTr5   r   r
  s   && r.   r   %InterpreterBase.evaluate_notstatement   sX    ##CII.9#E**a""Hq}/@/@$GHHr1   c                    V ^8  d   QhRRRR/# )r'   rj   zmparser.IfClauseNoder*   T.Optional[Disabler]r,   )r-   s   "r.   r/   rF   (  s       4 9M r1   c           	     	>   \        V\        P                  4      '       g   Q hVP                   EFx  pR V n        V P                  VP                  4      pVf   \        R4      h\        V\        4      '       d   Vu # \        V\        4      '       g1   \        P                  ! RV R\        V4      P                   R24      hVP                  \        P                   R 4      p\        V\"        4      '       g   \%        RV: R24      hV'       g   K  \        P&                  V P(                  ,          pV P                  '       d(   V P                  \        P&                  V P(                  &    V P+                  VP,                  4       V\        P&                  V P(                  &    R # 	  \        VP.                  \        P0                  4      '       g&   V P+                  VP.                  P,                  4       R #   T\        P&                  T P(                  &   i ; i)NifzArgument to if (z") is not an InterpreterObject but .z
If clause z$ does not evaluate to true or false.)r}   r   r   ifsrZ   r   	conditionr%   r   r   r   MesonBugExceptiontyper8   r  r   BOOLr^   r   project_meson_versionsrC   r   block	elseblock	EmptyNode)r5   rj   r   resultresprev_meson_versions   &&    r.   r   InterpreterBase.evaluate_if(  s   $ 4 45555A &*D",,Q[[9F~'--&(++f&788003CF8Kmnrsynz  oD  oD  nE  EF  2G  H  H&&}'9'94@Cc4((!Jvj8\"]^^s%-%D%DT__%U")))GKG]G]H33DOODZ++AGG4GYH33DOOD- . $..'*;*;<<##DNN$8$89	 HZH33DOODs   /G==Hc                    V ^8  d   QhRRRR/# )r'   rj   zmparser.TestCaseClauseNoder*   r  r,   )r-   s   "r.   r/   rF   E  s      &@ EY r1   c                	<   V P                  VP                  4      p\        V\        4      '       d   V# \        V\        4      '       g   \        R V: R24      hV;_uu_ 4        V P                  VP                  4       RRR4       R#   + '       g   i     R# ; i)ztestcase clause z( does not evaluate to a context manager.N)r   r  r}   r   r   r   r   r  )r5   rj   r!  s   && r.   r   !InterpreterBase.evaluate_testcaseE  sv    ((8fh''M&"677 0
:bcddV##DJJ/  Vs   $B

B	c                    V ^8  d   QhRRRR/# )r'   rj   zmparser.ComparisonNoder*   r   r,   )r-   s   "r.   r/   rF   O  s      N N(> NCT Nr1   c                	
   V P                  VP                  4      pVf   \        P                  ! R4      h\	        V\
        4      '       d   V# V P                  VP                  4      pVf   \        P                  ! R4      h\	        V\
        4      '       d   V# R\        P                  R\        P                  R\        P                  R\        P                  R\        P                  R\        P                  R	\        P                  R
\        P                  /VP                   ,          pV\        P                  \        P                  39   d   Y2r2Wn        V P%                  VP'                  V\)        V4      4      4      # )N5Cannot compare a void statement on the left-hand side6Cannot compare a void statement on the right-hand sideinnotinz==z!=><z>=z<=)r   leftr   MesonExceptionr}   r   rightr   INNOT_INEQUALS
NOT_EQUALSGREATERLESSGREATER_EQUALSLESS_EQUALSctyperY   r   r  r   )r5   rj   val1val2operators   &&   r.   r   #InterpreterBase.evaluate_comparisonO  s1   &&tyy1<))*abbdH%%K&&tzz2<))*bccdH%%K -""]))-&&-**&&##-..-++	
 **	 ((-*>*>??$ t11(IdOLMMr1   c                    V ^8  d   QhRRRR/# )r'   r   zmparser.AndNoder*   r   r,   )r-   s   "r.   r/   rF   n  s     J J J=N Jr1   c                	   V P                  VP                  4      pVf   \        P                  ! R4      h\	        V\
        4      '       d   V# VP                  \        P                  R 4      pV'       g   V P                  V4      # V P                  VP                  4      pVf   \        P                  ! R4      h\	        V\
        4      '       d   V# V P                  VP                  \        P                  R 4      4      # Nr*  r+  r   r0  r   r1  r}   r   r  r   r  r   r2  r5   r   ll_boolrs   &&   r.   r   %InterpreterBase.evaluate_andstatementn  s    ##CHH-9))*abba""H!3!3T:??6**##CII.9))*bcca""Hq}/A/A4HIIr1   c                    V ^8  d   QhRRRR/# )r'   r   zmparser.OrNoder*   r   r,   )r-   s   "r.   r/   rF   ~  s     J J J;L Jr1   c                	   V P                  VP                  4      pVf   \        P                  ! R4      h\	        V\
        4      '       d   V# VP                  \        P                  R 4      pV'       d   V P                  V4      # V P                  VP                  4      pVf   \        P                  ! R4      h\	        V\
        4      '       d   V# V P                  VP                  \        P                  R 4      4      # rB  rC  rD  s   &&   r.   r   $InterpreterBase.evaluate_orstatement~  s    ##CHH-9))*abba""H!3!3T:??6**##CII.9))*bcca""Hq}/A/A4HIIr1   c                    V ^8  d   QhRRRR/# )r'   r   zmparser.UMinusNoder*   r   r,   )r-   s   "r.   r/   rF     s      L L,> LCT Lr1   c                	    V P                  VP                  4      pVf   \        R4      h\        V\        4      '       d   V# Wn        V P                  VP                  \        P                  R 4      4      # )Nzunary minus)
r   r   r%   r}   r   rY   r   r  r   UMINUSr  s   && r.   r   (InterpreterBase.evaluate_uminusstatement  s]    ##CII.9#M22a""Hq}/C/CTJKKr1   c                    V ^8  d   QhRRRR/# )r'   r   zmparser.ArithmeticNoder*   r   r,   )r-   s   "r.   r/   rF     s     $ $0F $K\ $r1   c           
     	0   V P                  VP                  4      p\        V\        4      '       d   V# V P                  VP                  4      p\        V\        4      '       d   V# Ve   Vf   \        VP                  4      hR\        P                  R\        P                  R\        P                  R\        P                  R\        P                  /pWn        VP                  WAP                  ,          \        V4      4      pV P!                  V4      # )Nrz   submuldivmod)r   r0  r}   r   r2  r%   	operationr   PLUSMINUSTIMESDIVMODrY   r  r   r   )r5   r   rE  rG  mappingr"  s   &&    r.   r   ,InterpreterBase.evaluate_arithmeticstatement  s    ##CHH-a""H##CII.a""H9	#CMM22 =%%=&&=&&=$$=$$/
 oogmm4ilCs##r1   c                    V ^8  d   QhRRRR/# )r'   rj   zmparser.TernaryNoder*   r   r,   )r-   s   "r.   r/   rF     s     < <%8 <=Z <r1   c                	   \        V\        P                  4      '       g   Q hV P                  VP                  4      pVf   \
        P                  ! R4      h\        V\        4      '       d   V# Wn        VP                  \        P                  R 4      pV'       d   V P                  VP                  4      # V P                  VP                  4      # )Nz>Cannot use a void statement as condition for ternary operator.)r}   r   r   r   r  r   r1  r   rY   r  r   r  	trueblock
falseblock)r5   rj   r!  result_bools   &&  r.   r    InterpreterBase.evaluate_ternary  s    $ 3 34444((8>))*jkkfh''M"**=+=+=tD**4>>::**4??;;r1   zmultiline format stringsz0.63.0c                    V ^8  d   QhRRRR/# r'   rj   zmparser.StringNoder*   r   r,   )r-   s   "r.   r/   rF     s     + +/A +FW +r1   c                	$    V P                  V4      # r`   )r   )r5   rj   s   &&r.   r   *InterpreterBase.evaluate_multiline_fstring  s    $$T**r1   zformat stringsz0.58.0c                    V ^8  d   QhRRRR/# re  r,   )r-   s   "r.   r/   rF     s     $ $%7 $<M $r1   c                	z   a  R  V 3R llp\         P                  ! RW!P                  4      pS P                  V4      # )c                    V ^8  d   QhRRRR/# )r'   matchzT.Match[str]r*   r)   r,   )r-   s   "r.   r/   6InterpreterBase.evaluate_fstring.<locals>.__annotate__  s     	S 	S< 	SC 	Sr1   c                  < \        V P                  ^4      4      p \        SP                  V,          4      p\	        V\
        \        34      '       d/   \        P                  ! RRSP                  SP                  R7        \        VSP                  4      #   \         d   p\        R\        T4       24      hRp?ii ; i  \         d    \        RT R24      hi ; i)r   zList or dictionary in f-stringz1.3.0)locationz
f-string: NzIdentifier "z" does not name a variable.)r)   groupr   rU   r}   listr   r   r  rC   rY   r   r   KeyErrorr   )rk  varvalrp   r5   s   &   r.   replace1InterpreterBase.evaluate_fstring.<locals>.replace  s    ekk!n%C	Ss 34cD$<00))*JGUYUdUdos  pA  pA  BB1#tGG' B*ZAx+@AAB S!L5P"QRRSs*   A&C B C%B<<CC Cz@([_a-zA-Z][_0-9a-zA-Z]*)@)rerR  r   r   )r5   rj   rt  r"  s   f&  r.   r    InterpreterBase.evaluate_fstring  s5    	S 	S ff2GZZHs##r1   c                    V ^8  d   QhRRRR/# )r'   rj   zmparser.ForeachClauseNoder*   r+   r,   )r-   s   "r.   r/   rF     s      %> 4 r1   c           	     	n   \        V\        P                  4      '       g   Q hV P                  VP                  4      p\        V\
        4      '       g   \        R 4      hVP                  4       p\        VP                  4      T;'       g    ^8w  d*   \        RT;'       g    ^ RVP                  4        24      hVP                  4        EFC  pVfn   \        V\        4      '       d   \        P                  ! RV R24      hV P                  VP                  ^ ,          P                   V P#                  V4      4       M\        V\        4      '       g   \        P                  ! RV RV 24      h\        V4      V8w  d   \        P                  ! RV RV 24      h\%        V4       FE  pV P                  VP                  V,          P                   V P#                  WE,          4      4       KG  	   V P'                  VP(                  4       EKF  	  R#   \*         d     EKY  \,         d      R# i ; i)z.Items of foreach loop do not support iteratingzForeach expects exactly z. variables for iterating over objects of type NzIteration of z7 returned a tuple even though iter_tuple_size() is Nonez9 did not return a tuple even though iter_tuple_size() is )r}   r   r   r   r  r   r   iter_tuple_sizer   varnamesdisplay_name	iter_selftupler   r  set_variabler   r   ranger   r  r   r   )r5   rj   r  tsizer   js   &&    r.   r    InterpreterBase.evaluate_foreach  s   $ 9 9::::''

3%00"#STT%%'t}}%**1-"%=ejjq\Iwx}  yK  yK  yM  xN  $O  P  P"A}a''"44}UG  LC  6D  E  E!!$--"2"8"8$//!:LM!!U++"44}UG  LE  FK  EL  6M  N  Nq6U?"44}UG  LE  FK  EL  6M  N  NuA%%dmmA&6&<&<dooad>ST &''

3 # #  s   4HH4%H4.H43H4c                    V ^8  d   QhRRRR/# )r'   rj   zmparser.PlusAssignmentNoder*   r+   r,   )r-   s   "r.   r/   rF     s     . .(B .t .r1   c                	   \        V\        P                  4      '       g   Q hVP                  P                  pV P                  VP                  4      pVf   \        R4      hV P                  V4      pWn        V P                  VP                  \        P                  \        V4      4      4      pV P                  W%4       R # )Nzplus assign)r}   r   r   var_namer   r   r%   r   rY   r   r  r   rW  r   r  )r5   rj   varnameadditionold_variable	new_values   &&    r.   r   #InterpreterBase.evaluate_plusassign  s    $ : :;;;;--%%**4::6#M22 ((1$(!OOL$>$>}?Q?QS\]eSf$gh	'-r1   c                    V ^8  d   QhRRRR/# )r'   rj   zmparser.IndexNoder*   r   r,   )r-   s   "r.   r/   rF     s      R R&7 R<M Rr1   c                	   \        V\        P                  4      '       g   Q hV P                  VP                  4      pVf   \        R4      h\        V\        4      '       d   V# V P                  VP                  4      pVf   \        R4      h\        V4      pWn
        V P                  VP                  \        P                  V4      4      # )Nz#Tried to evaluate indexing on void.z#Cannot use void statement as index.)r}   r   r   r   iobjectr   r   indexr   r   rY   r   r  r   INDEX)r5   rj   r  index_holderr  s   &&   r.   r   !InterpreterBase.evaluate_indexing  s    $ 1 12222))$,,7?&'LMMgx((N..tzz:"#HII,'#w44]5H5H%PQQr1   c                    V ^8  d   QhRRRR/# )r'   rj   zmparser.FunctionNoder*   r   r,   )r-   s   "r.   r/   rF   
  s      "6 ;X r1   c                	
   VP                   P                  pV P                  VP                  4      w  r4V P	                  W44      w  rV\        WV4      '       d   VR9  d   \        4       # W P                  9   dz   V P                  V,          pTp\        VRR4      '       g   \        V4      p\        VRR4      '       g   \        W4      w  rWn        V! WV4      p	V	e   V P                  V	4      # R# V P                  V4       R# )r   zno-args-flatteningFz!no-second-level-holder-flatteningN>   is_disablerr   r  unset_variable)r   r   r   r   _unholder_argsr   r   rJ   r   r   r   rY   r   unknown_function_called)
r5   rj   r   	h_posargsh_kwargsposargsr   func	func_argsr"  s
   &&        r.   r   InterpreterBase.function_call
  s    NN((	 $ 5 5dii @ //	Dw''I=~,~:

"::i(DI4!5u==#G,	4!DeLL$@$S!	 $t/C+.?4??3'DD((3r1   c                    V ^8  d   QhRRRR/# )r'   rj   zmparser.MethodNoder*   r   r,   )r-   s   "r.   r/   rF     s      A A 2 A7T Ar1   c                	x   VP                   p\        V\        P                  4      '       d-   R VP                   R2pV P                  VP                  4      pM'VP                  P                  pV P                  V4      pVP                  P                  pV P                  VP                  4      w  rgV P                  Wg4      w  r\        W4      '       d   \        4       # \        V\        4      '       g   \!        V R24      hV;Vn        V n        VP%                  WXV	4      p
V
e   V P'                  V
4      # R# )z
variable ""z is not callable.N)source_objectr}   r   r   r   r   r6   r8   r   namer   r   r  r   r   r   r   rY   r   r   )r5   rj   	invocableobject_display_nameobjmethod_nameh_argsr  r   r   r"  s   &&         r.   r   InterpreterBase.method_call  s   &&	i00$.y.?q"A##IOO4C"+"5"5">">)))4Ciioo!22499=,,V>t$$:#011"&9%::K#LMM/334,ook8'*ts#@D@r1   c                    V ^8  d   QhRRRR/# )r'   r"  $T.Union[TYPE_var, InterpreterObject]r*   r   r,   )r-   s   "r.   r/   rF   2  s      { {B {GX {r1   c                	   \        V\        4      '       d   V P                  P                  \	        V4      R 4      pVe   V! V\
        P                  ! RV 4      4      # V P                  P                  4        F6  w  r2\        W4      '       g   K  V! V\
        P                  ! RV 4      4      u # 	  \        P                  ! RV R\	        V4      P                   R24      h\        V\        4      '       d1   \        P                  ! RV R\	        V4      P                   R24      h\        V\        4      '       d   V# \        P                  ! RV R\	        V4      P                   R24      h)	Nr#   zObject 	 of type z9 is neither in self.holder_map nor self.bound_holder_map.zReturned object z is an object holder.zUnknown returned object z in the parameters.)r}   r   rL   getr  TcastrM   r  r   r  r8   r
   r   )r5   r"  clstyps   &&  r.   r   InterpreterBase._holderify2  s?   c=))//%%d3i6C 3}d ;<< 11779c''sAFF=$$?@@ : ,,wse9T#YEWEWDX  YR  .S  T  T\**,,/?uIdSViN`N`Maav-wxx344J((+CC5	RVWZR[RdRdQeex)yzzr1   c               $    V ^8  d   QhRRRRRR/# )r'   r   zT.List[InterpreterObject]r   zT.Dict[str, InterpreterObject]r*   z&T.Tuple[T.List[TYPE_var], TYPE_kwargs]r,   )r-   s   "r.   r/   rF   E  s)     Z Z6Z=ZBhZr1   c           	     	    V Uu. uF  p\        V4      NK  	  upVP                  4        UUu/ uF  w  rEV\        V4      bK  	  upp3# u upi u uppi r`   )r   r  )r5   r   r   r   r	  r
  s   &&&   r.   r  InterpreterBase._unholder_argsE  sG     '++d	!d+&,,.-Y.$!a1o.-YYY+-Ys
   A
Ac                    V ^8  d   QhRRRR/# )r'   r   r)   r*   r+   r,   )r-   s   "r.   r/   rF   J  s     > > > >r1   c                	     \        R V R24      h)zUnknown function "".)r   )r5   r   s   &&r.   r  'InterpreterBase.unknown_function_calledJ  s    .yk<==r1   c               (    V ^8  d   QhRRRRRRRR/# )	r'   r   zmparser.ArgumentNoder  z#T.Callable[[mparser.BaseNode], str]r  zT.Optional[str]r*   zBT.Tuple[T.List[InterpreterObject], T.Dict[str, InterpreterObject]]r,   )r-   s   "r.   r/   rF   M  s3     % %*% B% &5	%
%r1   c                	D   \        V\        P                  4      '       g   Q hVP                  4       '       d   \	        R 4      hV ;P
                  ^,          un        VP                   Uu. uF  q@P                  V4      NK  	  pp\        ;QJ d    R V 4       F  '       g   K   RM	  RM! R V 4       4      '       d   \	        R4      h/ pVP                  P                  4        F  w  rxV! V4      p	\        V\        P                  4      '       g   Q hV P                  V4      p
V
f   \	        RV	 R24      hWpn        V'       d!   W9   d   \	        VP                  V	4      4      hWV	&   K  	  V ;P
                  ^,          un        V P                  V4      pW[3# u upi )z9All keyword arguments must be after positional arguments.c              3  (   "   T F  qR J x  K
  	  R # 5ir`   r,   ).0r   s   & r.   	<genexpr>3InterpreterBase.reduce_arguments.<locals>.<genexpr>[  s     .+QDy+s   TFz,At least one value in the arguments is void.zValue of key z	 is void.)r}   r   ArgumentNodeincorrect_orderr   rV   r   r   anyr   r  rX   rY   r-   expand_default_kwargs)r5   r   r  r  argreduced_pos
reduced_kwr   rs  reduced_keyreduced_valfinal_kws   &&&&        r.   r    InterpreterBase.reduce_argumentsM  sa    $ 4 45555!!"#^__q ?C~~N~..s3~N3.+.333.+..."#QRR57
))+HC&s+Kc7#3#3444411#6K"&{m9'MNN #"{'@&':'A'A+'NOO&1{# , 	q --j9$$! Os   +Fc                    V ^8  d   QhRRRR/# )r'   r   z*T.Dict[str, T.Optional[InterpreterObject]]r*   r,   )r-   s   "r.   r/   rF   l  s       ,V   \F r1   c                	4   R V9  d   V# \        VP                  R 4      4      p\        V\        4      '       g   \	        R4      hR V9   d   \	        R4      hVP                  4        F-  w  r4W19   d   \	        RV R24      hV P                  V4      W&   K/  	  V# )r   z%Value of "kwargs" must be dictionary.zWKwargs argument must not contain a "kwargs" entry. Points for thinking meta, though. :PzEntry "z<" defined both as a keyword argument and in a "kwarg" entry.)r   popr}   r   r   r  r   )r5   r   	to_expandr	  r
  s   &&   r.   r  %InterpreterBase.expand_default_kwargsl  s    6!Mfjj23	)T**&'NOOy &  (A  B  BOO%DA{*WQC7s+tuu*FI & r1   c                    V ^8  d   QhRRRR/# )r'   rj   zmparser.AssignmentNoder*   r+   r,   )r-   s   "r.   r/   rF   z  s     + +5 +$ +r1   c                	   \        V\        P                  4      '       g   Q hV P                  ^ 8w  d    \	        \
        P                  ! R4      4      hVP                  P                  p\        V\        4      '       g   \	        R4      hV P                  VP                  4      p\        V\        4      '       d   \        P                  ! V4      pV P                  W#4       R# )r   z                Tried to assign values inside an argument list.
                To specify a keyword argument, use : instead of =.
            z(Tried to assign value to a non-variable.N)r}   r   r   rV   r   textwrapdedentr  r   r)   r   r	   copydeepcopyr  )r5   rj   r  r   s   &&  r.   r   InterpreterBase.assignmentz  s    $ 6 67777!#"8?? 4 $   ==&&(C(("#MNN''

3e566MM%(E(*r1   	holderifyFc               (    V ^8  d   QhRRRRRRRR/# )	r'   r  r)   variabler  r  r^   r*   r+   r,   )r-   s   "r.   r/   rF     s+     + +C +3W +gk +x| +r1   c               	~   Vf   \        R4      hV'       d   V P                  V4      pME\        V\        4      '       g0   \        P
                  ! RV R\        V4      P                   24      h\        V\        4      '       g   \        R4      hWP                  9   d   \        RV R24      hW P                  V&   R # )Nz Can not assign void to variable.zDset_variable in InterpreterBase called with a non InterpreterObject r  z0First argument to set_variable must be a string.z&Tried to overwrite internal variable "r  )r   r   r}   r   r   r  r  r8   r)   rK   rU   )r5   r  r  r  s   &&&$r.   r  InterpreterBase.set_variable  s    @AAx0H h(9::003w  yA  xB  BK  LP  QY  LZ  Lc  Lc  Kd  2e  f  f'3''PQQll" FwiqQRR"*wr1   c                    V ^8  d   QhRRRR/# )r'   r  r)   r*   r   r,   )r-   s   "r.   r/   rF     s     < <C <,= <r1   c                	    WP                   9   d   V P                   V,          # WP                  9   d   V P                  V,          # \        R V R24      h)zUnknown variable "r  )rK   rU   r   )r5   r  s   &&r.   r   InterpreterBase.get_variable  sI    ll"<<((nn$>>'**.wir:;;r1   c                   V ^8  d   QhRR/# rt   r,   )r-   s   "r.   r/   rF     s     @ @4 @r1   c                	J   ^RI Hp \        P                  P	                  V P
                  V P                  R4      p\        P                  P	                  V P
                  V P                  R4      p\        P                  P                  V4      '       d   \        P                  P                  V4      '       dS   \        P                  P                  W#4      '       d   \        P                  ! R4       M<\        P                  ! R4      h\        P                  ! RRV P                  R4       MTp\        P                  P                  V4      '       Ed   \!        VR	4      ;_uu_ 4       pV\"        P$                  ! VP'                  4       4      P)                  4       3V P*                  P,                  V P                  &   R
R
R
4       VP/                  V P0                  P*                  P2                  V P                  4      pVP5                  V4       V P*                  P2                  P7                  VP8                  V P                  4       V P:                  P=                  V4       R
# R
V P*                  P,                  V P                  &   R
#   + '       g   i     L; i)r'   )optinterpreterzmeson.optionszmeson_options.txtz`Not warning about meson.options with version minimum < 1.1 because meson_options.txt also existszJmeson.options and meson_options.txt both exist, but are not the same file.zmeson.options filez1.1zUse meson_options.txt insteadrbN) r  rv   rw   rx   rA   rB   existssamefiler   debugr   r1  r   r  rC   rk   hashlibsha1rl   	hexdigestrT   options_filesOptionInterpreterr   optstoreprocessupdate_project_optionsoptionsrO   rz   )r5   r  option_fileold_option_filero   ois   &     r.   _load_option_file!InterpreterBase._load_option_file  s   %
 ggll4#3#3T[[/R'',,t'7'7FYZ77>>+&&ww~~o..77##KAAJJ   B  C"112~%%&:E4??Tst)K77>>+&&k4((A ALW\\Z[Z`Z`ZbMcMmMmMo?p++DOO< )  11$2B2B2K2K2T2TVZVeVefBJJ{#MM""99"**dooV  $$[1;?DMM''8 )(s   -AJJ"	c               $    V ^8  d   QhRRRRRR/# )r'   rootdirr)   
new_subdirr*   zT.Tuple[str, bool]r,   )r-   s   "r.   r/   rF     s"      s  @R r1   c                	   \         P                  P                  V P                  V4      p\         P                  P                  W4      p\         P                  P	                  V4      p\         P                  P                  V\
        P                  4      pW`P                  9   d   VR 3# V P                  P                  V4       VR3# )FT)	rv   rw   rx   rB   realpathr   ry   rQ   rz   )r5   r  r  rB   absdirsymlinkless_dir
build_files   &&&    r.   _resolve_subdirInterpreterBase._resolve_subdir  s    dkk:6g.''**62WW\\/;3M3MN
2225= !!%%j1t|r1   c               (    V ^8  d   QhRRRRRRRR/# )r'   r  r)   rB   visitors"T.Optional[T.Iterable[AstVisitor]]r*   r^   r,   )r-   s   "r.   r/   rF     s*       S Df rv r1   c                	   \         P                  P                  V\        P                  4      pV P
                  P                  V4       \         P                  P                  W4      p\         P                  P                  V4      '       g   R # V P                  WT4      p \        P                  ! We4      P                  4       pT P                  YrT4       R#   \        P                   d   pYXn        ThRp?ii ; i)FNT)rv   rw   rx   r   ry   rO   rz   r{   rq   r   r~   r   r   r1  r   _evaluate_codeblock)	r5   r  rB   r  buildfilenameabsnamer   	codeblockr   s	   &&&&     r.   _evaluate_subdir InterpreterBase._evaluate_subdir  s    V[-G-GH  /'',,w6ww~~g&&""7:	t5;;=I 	  H=	 && 	GH	s   "$C C</C77C<c               (    V ^8  d   QhRRRRRRRR/# )	r'   r  r   rB   r)   r  r  r*   r+   r,   )r-   s   "r.   r/   rF     s+     & &-B &C &&H&TX&r1   c                	     V P                   pW n         V'       d   V F  pVP                  V4       K  	  V P                  V4       XV n         R #   \         d     Li ; i  XT n         i ; ir`   )rB   acceptr   r   )r5   r  rB   r  prev_subdirvisitors   &&&&  r.   r  #InterpreterBase._evaluate_codeblock  se    
	&++K K'G$$W-  (##I. &DK ! 		 &DKs$   AA AA! AA! !	A*)rV   r   rM   rO   rK   rT   rW   rY   r   rJ   rL   rQ   rR   rA   rB   rC   rD   rZ   rU   )T)r   Nr`   ).r8   r9   r:   r;   r4   ra   rq   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r   r   r  r   r  r   r  r  r  r  r<   r,   r1   r.   r?   r?   G   s1   76b,1 CD0:xB !M "MI:N>J J L$*< *H5+ 6+  (+$ ,$":.R(A({&Z
> EX7;	%>+ +ns +<@>"& &r1   r?   )D
__future__r   r  r   r   r   baseobjectsr   r   r	   r
   r   r   r   
exceptionsr   r   r   r   r   r   r   
decoratorsr   disablerr   r   helpersr   r   r   r   r>  r   r   rv   r  r  rv  r   typingr  r  TYPE_CHECKINGr   r   r    r!   r   r"   interpreterr#   DictUnionTypeHoldableObjectr   r^   r)   rp  r   CallableHolderMapTyperX   ListFunctionTyper%   r?   r,   r1   r.   <module>r!     sY   # - -	 	 	   " + g g #   % % %  ???XX )FF	FF8**+FF3KFF4LFF3KFF4LFF4L	
 	


,m<lKc>dde		fM 66	

G$$affX&6sH}8MNPXXY	ZLU U_
& _
&r1   