+
    UBi                    >   R t ^ RIHt ^ RIt^ RIt^ RIt^RIHt ]P                  '       d   ]P                  ! R4      t]P                  R]P                  ],          3,          t]P                   ],          t]P                   ]P                  ]]P                  ],          3,          ,          t ! R R]P&                  4      tR R ltR	 R
 lt]P.                   ! R R4      4       t]P.                   ! R R]4      4       t]P.                   ! R R]4      4       t]P.                   ! R R]4      4       t]P.                   ! R R]4      4       t]P.                   ! R R]4      4       t]P.                   ! R R]4      4       tR R ltR R lt R R lt!R R  lt"R# )!a  Rust CFG parser.

Rust uses its `cfg()` format in cargo.
https://doc.rust-lang.org/reference/conditional-compilation.html

This may have the following functions:
 - all()
 - any()
 - not()

And additionally is made up of `identifier [ = str]`. Where the str is optional,
so you could have examples like:
```
[target.`cfg(unix)`.dependencies]
[target.'cfg(target_arch = "x86_64")'.dependencies]
[target.'cfg(all(target_arch = "x86_64", target_arch = "x86"))'.dependencies]
```
)annotationsN)MesonBugException_T	TokenTypec                  j   ] tR t^&t]P
                  ! 4       t]P
                  ! 4       t]P
                  ! 4       t]P
                  ! 4       t	]P
                  ! 4       t
]P
                  ! 4       t]P
                  ! 4       t]P
                  ! 4       t]P
                  ! 4       t]P
                  ! 4       tRtR# )r    N)__name__
__module____qualname____firstlineno__enumautoLPARENRPARENSTRING
IDENTIFIERALLANYNOTCOMMAEQUALCFG__static_attributes__r       9/usr/lib/python3.14/site-packages/mesonbuild/cargo/cfg.pyr   r   &   sp    YY[FYY[FYY[FJ
))+C
))+C
))+CIIKEIIKE
))+Cr   c                    V ^8  d   QhRRRR/# )   rawstrreturn_LEX_STREAMr   )formats   "r   __annotate__r"   4   s     (* (*s (*{ (*r   c              #  L  "   ^ pRp\        V 4       EFi  w  r4VP                  4       '       g
   VR9   g   K%  WV pV^,           pVR8X  d!   V'       d   \        P                  V3x  RpKY  VR8X  d   \        P                  R3x  MpVR	8X  d   \        P
                  R3x  MTVR
8X  d   \        P                  R3x  M8VR8X  d   \        P                  R3x  MV'       d   \        P                  V3x  VR8X  d   \        P                  R3x  EK  VR8X  d   \        P                  R3x  EK!  VR8X  d   \        P                  R3x  EK?  VR8X  d   \        P                  R3x  EK]  VR8X  g   EKg  RpEKl  	  WR pV'       d   \        P                  V3x  R# R# 5i)z]Lex a cfg() expression.

:param raw: The raw cfg() expression
:return: An iterable of tokens
F)(,="anyNallnotcfgT>   r(   r%   r$   r&   r'   )	enumerateisspacer   r   r   r   r   r   r   r   r   r   r   )r   start	is_stringisvals   &     r   lexerr4   4   s`     EI#99;;!88A,CEECxI ''--!	 }}d++ }}d++ }}d++ }}d++ ++S11Cx ''..c ''..c --c --c 	9 : f+C
##S)) s   0F$F$BF$#BF$9+F$c                    V ^8  d   QhRRRR/# )r   iterzT.Iterator[_T]r   z'T.Iterator[T.Tuple[_T, T.Optional[_T]]]r   )r!   s   "r   r"   r"   _   s      N 'N r   c              #     "    \        V 4      p Tp \        T 4      pY!3x  Te   K  R#   \         d     R# i ; i  \         d    Rp L.i ; i5i)zGet the current value of the iterable, and the next if possible.

:param iter: The iterable to look into
:yield: A tuple of the current value, and, if possible, the next
:return: nothing
N)nextStopIteration)r6   next_currents   &  r   	lookaheadr<   _   se     T

 	JE n=    	E	sE   A+ A= AA:A:AA
AAAc                      ] tR t^{tRtRtR# )IRzBase IR node for Cargo CFG.r   N)r   r	   r
   r   __doc__r   r   r   r   r>   r>   {   s     &r   r>   c                  "    ] tR t^t$ R]R&   RtR# )Stringr   valuer   Nr   r	   r
   r   __annotations__r   r   r   r   rA   rA      	     Jr   rA   c                  "    ] tR t^t$ R]R&   RtR# )
Identifierr   rB   r   NrC   r   r   r   rG   rG      rE   r   rG   c                  ,    ] tR t^t$ R]R&   R]R&   RtR# )EqualrG   lhsrA   rhsr   NrC   r   r   r   rI   rI      s     
O	Kr   rI   c                  "    ] tR t^t$ R]R&   RtR# )Any
T.List[IR]argsr   NrC   r   r   r   rM   rM      
     r   rM   c                  "    ] tR t^t$ R]R&   RtR# )AllrN   rO   r   NrC   r   r   r   rR   rR      rP   r   rR   c                  "    ] tR t^t$ R]R&   RtR# )Notr>   rB   r   NrC   r   r   r   rT   rT      s	     Ir   rT   c                    V ^8  d   QhRRRR/# )r   ast_LEX_STREAM_AHr   r>   r   )r!   s   "r   r"   r"      s     (J (J (J2 (Jr   c                   \        V 4      w  w  rpVe   Vw  rEMR R rTV\        P                  J dx   V'       g   Q h\        V4      pV\        P                  J dM   \        V 4       \        V 4      w  w  rpV\        P
                  J g   Q hVf   Q h\        V\        V4      4      # V# V\        P                  \        P                  09   d   V\        P                  J d   \        M\        p. p\        V 4      w  w  rpV\        P                  J g   Q hV'       d%   V^ ,          \        P                  8X  d	   V! V4      #  VP                  \        V 4      4       \        V 4      w  w  rpV\        P                  J d   MV\        P                   J d   KV  Q hV! V4      # V\        P"                  \        P$                  09   d   V\        P"                  J p	\        V 4      w  w  rpV\        P                  J g   Q h\        V 4      p
\        V 4      w  w  rpV\        P                  J g   Q hV	'       d   \'        V
4      # T
# \)        RV RV 24      h)NzUnhandled Cargo token: )r8   r   r   rG   r   r   rI   rA   r   r   rR   rM   r   r   append_parser   r   r   rT   r   )rV   tokenrB   n_streamntoken_id_type_rO   is_notargs   &          r   r[   r[      s   #CyNUH	4	$$$uY__$I $S	NUAI,,,,,$$$fUm,,
	9==)--0	0	-3#'9 	(((((y'7'77;KKs$ $S	NUA	(((IOO+++T{	9==)--0	0)--' I	(((((Sk I	(((((!s3x*s*"8q HIIr   c                    V ^8  d   QhRRRR/# )r   rV   r    r   r>   r   )r!   s   "r   r"   r"      s      { r r   c                .    \        V 4      p\        V4      # )zParse the tokenized list into Meson AST.

:param ast: An iterable of Tokens
:return: An mparser Node to be used as a conditional
)r<   r[   )rV   ast_is   & r   parserg      s     &cNE%=r   c               $    V ^8  d   QhRRRRRR/# )r   irr>   cfgsT.Dict[str, str]r   boolr   )r!   s   "r   r"   r"      s'     A A" A, A Ar   c                   a \        V \        4      '       d   V P                  S9   # \        V \        4      '       d=   SP	                  V P
                  P                  4      V P                  P                  8H  # \        V \        4      '       d   \        V P                  S4      '       * # \        V \        4      '       dO   \        ;QJ d)    V3R  lV P                   4       F  '       g   K   R# 	  R# ! V3R  lV P                   4       4      # \        V \        4      '       dO   \        ;QJ d)    V3R lV P                   4       F  '       d   K   R# 	  R# ! V3R lV P                   4       4      # \        RV  24      h)c              3  <   <"   T F  p\        VS4      x  K  	  R # 5iN	_eval_cfg.0r1   rj   s   & r   	<genexpr>_eval_cfg.<locals>.<genexpr>        7w!9Q%%w   TFc              3  <   <"   T F  p\        VS4      x  K  	  R # 5iro   rp   rr   s   & r   rt   ru      rv   rw   zUnhandled Cargo cfg IR: )
isinstancerG   rB   rI   getrJ   rK   rT   rq   rM   r)   rO   rR   r*   r   )ri   rj   s   &fr   rq   rq      s    "j!!xx4	B		xx%55	B		RXXt,,,	B		s7rww7ss7s7s7rww777	B		s7rww7ss7s7s7rww777":2$ ?@@r   c               $    V ^8  d   QhRRRRRR/# )r   r   r   rj   rk   r   rl   r   )r!   s   "r   r"   r"      s"     . .# .- .$ .r   c                >    \        \        \        V 4      4      V4      # ro   )rq   rg   r4   )r   rj   s   &&r   eval_cfgr}      s    U5:&--r   )#r?   
__future__r   dataclassesr   typingTmesonlibr   TYPE_CHECKINGTypeVarr   TupleOptionalr   
_LEX_TOKENIteratorr    rW   Enumr   r4   r<   	dataclassr>   rA   rG   rI   rM   rR   rT   r[   rg   rq   r}   r   r   r   <module>r      s  & #    )???	
4Bajjo56J**Z(KZZ
AJJz4J(J KLN		 (*V8 & & &
 R  
   
 B   "  
 "  
 "  
(JVA.r   