+
    UBi2.                        ^ RI Ht ^ RIt^ RIt^RIHt ^RIHt ^RIHt ^RIH	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 ]P*                  '       d   ^R
IHtHt ^RIHt ^ RIHtHt ^RIHt ]P:                  ]]]P@                  ]]3,          ]PB                  ],          3,          t"]! RR]R]R]R]PF                  ]PB                  ],          ,          R]$R]PF                  ]%,          R]PF                  ]%,          R]"/4      t& ! R R]4      t' ! R R]4      t( ! R R]4      t) ! R R]4      t* ! R R ]4      t+ ! R! R"]4      t, ! R# R$]PZ                  4      t.]P^                  ! R%4      t0 ! R& R'4      t1R# )(    )annotationsN)options)mesonlib)	OptionKey)mparser)mlog)
FeatureNewFeatureDeprecatedtyped_pos_argstyped_kwargsContainerTypeInfo	KwargInfo)NoneTypein_set_validator)TYPE_varTYPE_kwargs)
SubProject)	TypedDictLiteral)OptionStoreFuncOptionArgstypedescriptionyieldchoicesvalueminmax
deprecatedc                  "    ] tR t^$t$ R]R&   RtR# )
StringArgsstrr    N__name__
__module____qualname____firstlineno____annotations____static_attributes__r#       >/usr/lib/python3.14/site-packages/mesonbuild/optinterpreter.pyr!   r!   $   s    
r+   r!   c                  "    ] tR t^'t$ R]R&   RtR# )BooleanArgsboolr   r#   Nr$   r#   r+   r,   r.   r.   '   s    r+   r.   c                  ,    ] tR t^*t$ R]R&   R]R&   RtR# )	ComboArgsr"   r   T.List[str]r   r#   Nr$   r#   r+   r,   r1   r1   *   s    
r+   r1   c                  6    ] tR t^.t$ R]R&   R]R&   R]R&   RtR# )IntegerArgsintr   zT.Optional[int]r   r   r#   Nr$   r#   r+   r,   r4   r4   .   s    
r+   r4   c                  ,    ] tR t^3t$ R]R&   R]R&   RtR# )StringArrayArgsz%T.Optional[T.Union[str, T.List[str]]]r   r2   r   r#   Nr$   r#   r+   r,   r7   r7   3   s    44r+   r7   c                  ,    ] tR t^7t$ R]R&   R]R&   RtR# )FeatureArgsz&Literal['enabled', 'disabled', 'auto']r   r2   r   r#   Nr$   r#   r+   r,   r9   r9   7   s    55r+   r9   c                      ] tR t^<tRtR# )OptionExceptionr#   N)r%   r&   r'   r(   r*   r#   r+   r,   r;   r;   <   s    r+   r;   z[^a-zA-Z0-9_-]c                  $   ] tR t^CtR R ltR R ltR R ltR R ltR	 R
 lt]	! R]
! R]R]! 0 R<m4      R7      ]
! R]RR7      ]
! R]]]! ]]4      ]! ]]4      3RR]R/R7      ]
! R]]P$                  RR7      RR7      ]! R]4      R R l4       4       t]	! R]
! R]RR7      4      R R  l4       t]	! R!]
! R]]3RR" ]R=/R#7      4      R$ R% l4       t]	! R&]
! R]]34      ]
! R']! ]]RR(7      RR)7      4      R* R+ l4       t]	! R,]
! R]]3R]R>/]R-7      ]
! R.]]34      ]
! R/]]34      4      R0 R1 l4       t]	! R2]
! R]! ]]4      ]]34      ]
! R']! ]]4      . R7      4      R3 R4 l4       t]	! R5]
! R]R6]! 0 R?m4      R77      4      R8 R9 l4       tR:tR;# )@OptionInterpreterc               $    V ^8  d   QhRRRRRR/# )   optionstorez'OptionStore'
subprojectz'SubProject'returnNoner#   )formats   "r,   __annotate__OptionInterpreter.__annotate__D   s"     ' 'M '| 'PT 'r+   c                	    / V n         W n        R V P                  RV P                  RV P                  RV P
                  RV P                  RV P                  /V n        Wn	        R# )stringbooleancombointegerarrayfeatureN)
r   rA   string_parserboolean_parsercombo_parserinteger_parserstring_array_parserfeature_parseroption_typesr@   )selfr@   rA   s   &&&r,   __init__OptionInterpreter.__init__D   sc    ;=$d((t**T&&t**T--t**R
 'r+   c                    V ^8  d   QhRRRR/# )r?   option_filer"   rB   rC   r#   )rD   s   "r,   rE   rF   Q   s     R R3 R4 Rr+   c           	     	~    \        VR R7      ;_uu_ 4       pVP                  4       pRRR4        \
        P                  ! XT4      P                  4       p\        T\
        P                  4      '       g)   \        R4      pTP                  4       Tn        Yn        ThTP                   F  p Ypn        T P                  T4       K  	  R#   + '       g   i     L; i  \         d#   p\        P                  ! RT: RT 24      hRp?ii ; i  \        P                   d   pYn        ThRp?ii ; i  \        P                   d0   pTP                  Tn        TP                   Tn        Yn        ThRp?i\"         d=   p\        P                  ! \%        T4      TP                  TP                   TR7      hRp?ii ; i)zutf-8)encodingNzMalformed option file z failed to parse as unicode: zOption file is malformed.)linenocolnofile)openreadUnicodeDecodeErrorr   MesonExceptionr   Parserparser^   
isinstanceCodeBlockNoder;   r\   linescurrent_nodeevaluate_statementr]   	Exceptionr"   )rU   rY   fcodeeastmecurs   &&      r,   processOptionInterpreter.processQ   sm   	tkG44vvx 5	..{399;C #w4455 ;<Azz|AH FG99C
R$'!'',  54! 	t)),B;/Qnopnq*rss	t && 	!GH	 ** ::))$ R--F3::SYY[R RRst   C CC %D .D3C	C C D)DDD0#D++D03F<*E22F<?F< 7F77F<c                    V ^8  d   QhRRRR/# )r?   argzT.Union[str, mparser.BaseNode]rB   z
'TYPE_var'r#   )rD   s   "r,   rE   rF   n   s     $a $a!? $aJ $ar+   c                	   \        V\        4      '       d   V# \        V\        P                  4      '       d   V P	                  VP
                  4      # \        V\        P                  \        P                  \        P                  34      '       d   VP                  # \        V\        P                  4      '       d5   VP                  P                   Uu. uF  q P	                  V4      NK  	  up# \        V\        P                  4      '       dz   / pVP                  P                  P                  4        FM  w  rE\        V\        P                  4      '       g   \!        R 4      hV P	                  V4      W4P                  &   KO  	  V# \        V\        P"                  4      '       dh   V P	                  VP                  4      p\        V\$        \&        34      '       g   \!        R4      h\(        P*                  ! RRV P,                  4       V) # \        V\        P.                  4      '       df   V P	                  VP                  4      p\        V\0        4      '       g   \!        R4      h\(        P*                  ! RRV P,                  4       V'       * # \        V\        P2                  4      '       d   V P	                  VP4                  4      pV P	                  VP6                  4      pVP8                  R8X  d-   \        V\        4      '       d   \        V\        4      '       g   \!        R4      h\(        P*                  ! RR	V P,                  4       Wx,           # \!        R
4      hu upi )z(Dictionary keys must be a string literalzToken after "-" is not a numberz%negative numbers in meson_options.txtz0.54.1z$Token after "not" is not a a booleanz%negation ("not") in meson_options.txtaddz:Only string concatenation with the "+" operator is allowedz)string concatenation in meson_options.txtz0.55.0z;Arguments may only be string, int, bool, or array of those.)re   r"   r   ParenthesizedNodereduce_singleinner
StringNodeBooleanNode
NumberNoder   	ArrayNodeargs	argumentsDictNodekwargsitemsr;   
UMinusNoder5   floatr	   
single_userA   NotNoder/   ArithmeticNodeleftright	operation)	rU   rt   curargdkvreslrs	   &&       r,   rx   OptionInterpreter.reduce_singlen   s~   c3Jc74455%%cii00g00'2E2EwGYGYZ[[99W..//=@XX=O=OP=O6&&v.=OPPW--..A--/!!W%7%788)*TUU!//2''
 0 HW//00$$SYY/CcC<00%&GHH!!"I8UYUdUde4KW__--$$SYY/Cc4((%&LMM!!"I8UYUdUde7NW3344""388,A""399-AMMU*z!S/A/AjQRTWFXFX%&bcc!!"MxY]YhYhi5L!"_``9 Qs   M+c                    V ^8  d   QhRRRR/# )r?   r~   zmparser.ArgumentNoderB   z"T.Tuple['TYPE_var', 'TYPE_kwargs']r#   )rD   s   "r,   rE   rF      s     
' 
'%9 
'>` 
'r+   c                	   VP                  4       '       d   \        R 4      hVP                   Uu. uF  q P                  V4      NK  	  pp/ pVP                  P                  4        F^  p\        V\        P                  4      '       g   \        R4      hVP                  V,          pV P                  V4      WEP                  &   K`  	  W43# u upi )z9All keyword arguments must be after positional arguments.z&Keyword argument name is not a string.)
incorrect_orderr;   r   rx   r   keysre   r   IdNoder   )rU   r~   rt   reduced_pos
reduced_kwkeyas   &&     r,   reduce_arguments"OptionInterpreter.reduce_arguments   s    !!!"]^^:>..I.3))#..I
;;##%Cc7>>22%&NOOC A$($6$6q$9Jyy!	 &
 && Js   Cc                    V ^8  d   QhRRRR/# )r?   nodezmparser.BaseNoderB   rC   r#   )rD   s   "r,   rE   rF      s     * *'7 *D *r+   c                	   \        V\        P                  4      '       g   \        R 4      hVP                  P
                  pVR8w  d   \        R4      hV P                  VP                  4      w  r4V P                  W44       R# )z/Option file may only contain option definitionsoptionz3Only calls to option() are allowed in option files.N)	re   r   FunctionNoder;   	func_namer   r   r~   func_option)rU   r   r   posargsr   s   &&   r,   ri   $OptionInterpreter.evaluate_statement   si    $ 4 455!"STTNN((	 !"WXX 11$))<)r+   r   r   T)required	validatorr    )defaultr   Fz0.60.0z0.63.0)r   sincesince_valuesr   z0.45.0)r   r   )allow_unknownc               $    V ^8  d   QhRRRRRR/# )r?   r~   zT.Tuple[str]r   z'FuncOptionArgs'rB   rC   r#   )rD   s   "r,   rE   rF      s"          6F  4  r+   c                	   V^ ,          p\         P                  V4      e   \        R4      h\        P                  ! V4      P                  V P                  R7      pV P                  P                  V4      '       d   \        RV,          4      hVR,          pV P                  V,          pVR,          ;'       g    TpVP                  4        UU	u/ uF  w  rVR9  g   K  WbK  	  p
pp	V! W7VR,          VR,          3V
4      pW@P                  9   d   \        P                  ! R	V R
24       WP                  V&   R# u up	pi )r   Nz9Option names can only contain letters, numbers or dashes.)rA   zOption name %s is reserved.r   r   r   r   zOption z already exists.>   r   r   r   r   )optname_regexsearchr;   r   from_stringevolverA   r@   is_reserved_namerT   r   r   r   deprecation)rU   r~   r   opt_namer   opt_typeparserr   r   r   n_kwargsopts   &&&         r,   r   OptionInterpreter.func_option   s&   * 7)5!"]^^##H-444P,,S11!"?("JKK&>""8,]+77x &,\\^ P^TQ NN AD^ P XVG_f\>R,SU]^,,wxj0@ABSPs   D>!D>zstring optionr   c          
     ,    V ^8  d   QhRRRRRRRRRR	/# )
r?   namer"   r   r~   T.Tuple[bool, _DEPRECATED_ARGS]r   r!   rB   options.UserOptionr#   )rD   s   "r,   rE   rF      s=     S S# SC S?^ Shr S  xJ Sr+   c                	B    \         P                  ! WVR ,          .VO5!  # r   )r   UserStringOptionrU   r   r   r~   r   s   &&&&&r,   rN   OptionInterpreter.string_parser   s     
 ''6'?RTRRr+   zboolean optionc                	D    \        V \        4      '       g   V R9   d   R# R# )trueNz(boolean options must have boolean values>   r   false)re   r/   )xs   &r,   <lambda>OptionInterpreter.<lambda>   s+    
1d(;(;qDU?U  !F  \F  !Fr+   )r   r   deprecated_valuesc          
     ,    V ^8  d   QhRRRRRRRRRR	/# )
r?   r   r"   r   r~   r   r   r.   rB   r   r#   )rD   s   "r,   rE   rF      s=     w w3 wS w@_ wit w  zL wr+   c                	J    Vw  rV\         P                  ! WVR ,          WVR7      # )r   )yieldingr   )r   UserBooleanOption)rU   r   r   r~   r   r   r   s   &&&&&  r,   rO    OptionInterpreter.boolean_parser   s&      $((F7OV^vvr+   zcombo optionr   )allow_empty)r   c          
     ,    V ^8  d   QhRRRRRRRRRR	/# )
r?   r   r"   r   r~   r   r   r1   rB   r   r#   )rD   s   "r,   rE   rF      s=     Y Y Y3 Y>] Ygp Y  vH Yr+   c                	    VR ,          pVR,          pVf   VR ,          ^ ,          p\         P                  ! WV.VO5R V/ # )r   r   )r   UserComboOptionrU   r   r   r~   r   r   r   s   &&&&&  r,   rP   OptionInterpreter.combo_parser   sI     #w=9%a(E&&t%X$XPWXXr+   zinteger option)r   r   	convertorr   r   c          
     ,    V ^8  d   QhRRRRRRRRRR	/# )
r?   r   r"   r   r~   r   r   r4   rB   r   r#   )rD   s   "r,   rE   rF      s=     i i3 iS i@_ iit i  zL ir+   c                	f    \         P                  ! WVR ,          .VO5RVR,          RVR,          / # )r   	min_valuer   	max_valuer   )r   UserIntegerOptionr   s   &&&&&r,   rQ    OptionInterpreter.integer_parser   sG     ((vgi15iAGiZ`afZgi 	ir+   zstring array optionc          
     ,    V ^8  d   QhRRRRRRRRRR	/# )
r?   r   r"   r   r~   r   r   r7   rB   r   r#   )rD   s   "r,   rE   rF     s6          #  Ed  n}    CU  r+   c           	     	r   VR ,          pVR,          e
   VR,          MTp\        V\        4      '       d[   VP                  R4      '       d'   \        RR4      P	                  V P
                  4       M\        P                  ! RV,           4      h\        P                  ! WVVV^ ,          V^,          R7      # )r   r   [zString value for array optionz1.3.0z Value does not define an array: )r   r   r   )
re   r"   
startswithr
   userA   r   rb   r   UserStringArrayOptionr   s   &&&&&  r,   rR   %OptionInterpreter.string_array_parser  s     ##)'?#>wGeS!!$$!"A7KOOPTP_P_`--.PSX.XYY,,u!WAw	  	 r+   zfeature optionauto)r   r   c          
     ,    V ^8  d   QhRRRRRRRRRR	/# )
r?   r   r"   r   r~   r   r   r9   rB   r   r#   )rD   s   "r,   rE   rF     s=     T T3 TS T@_ Tit T  zL Tr+   c                	B    \         P                  ! WVR ,          .VO5!  # r   )r   UserFeatureOptionr   s   &&&&&r,   rS    OptionInterpreter.feature_parser  s     
 ((F7OSdSSr+   )rh   rT   r   r@   rA   N>   rL   rJ   rH   rI   rM   rK   )1.1.0zuse a boolean, not a string)r   zuse an integer, not a string>   r   enableddisabled)r%   r&   r'   r(   rV   rq   rx   r   ri   r   r   r"   r   r/   r   dictlistr   DEFAULT_YIELDINGr   r   rN   rO   r   rP   r5   rQ   rR   rS   r*   r#   r+   r,   r=   r=   C   sH   'R:$aL
'* &'de		
 	-b13)$46Gc6RSx	
 	'4)A)AR#& Hc"  #'( * '3+S	S 3K F"$LM	
	w	w 'C?+).tSeLW[\
Y
Y #J"$MN	
 	%#x)%#x)ii '-dC8#xHI).tS92F
 
  '3:JKj:klT	Tr+   r=   )2
__future__r   retypingTr   r   r   r   r   r   interpreterbaser	   r
   r   r   r   r   interpreter.type_checkingr   r   TYPE_CHECKINGr   r   r   typing_extensionsr   r   r   Unionr/   r"   DictList_DEPRECATED_ARGSOptionalobjectr5   r   r!   r.   r1   r4   r7   r9   rb   r;   compiler   r=   r#   r+   r,   <module>r      s?   # 	       v v A???6+4$wwtS!&&c*:AFF3KGH/s1::affSk*qzz#qzz#&	2
 	NY i I i 
) i 
	h-- 	 

+,XT XTr+   