+
    UBi#G                    R  a  0 t $ ^ RIHt ^ RIt^ RIt^ RIt^RIHtH	t	 ^RI
HtHtHt ^RIHt ^RIHt ^RIHtHtHtHt ^RIHtHtHtHtHtHtHtHtH t  ^R	I!H"t"H#t#H$t$H%t% ^R
I&H't'H(t( ^RI)H*t* ^RIH+t+ ]PX                  '       d   ^ RI-H.t.H/t/H0t0 ^RIH1t1 ^RI2H3t3 ^RI
H4t4 ^RI5H6t6 ^RI7H8t8 ^RIH9t9H:t: ^RI!H;t; ^RI&H<t< ]Pz                  ]4]']<3,          t>R]?R&   ].R0,          t@].R1,          tA ! R R]04      tB ! R R]84      tC ! R R]04      tD ! R R]84      tER  R! ltF]P                   ! R" R#]*4      4       tH]P                   ! R$ R%]H4      4       tI ! R& R']]I,          4      tJ]P                   ! R( R)]H4      4       tK ! R* R+]]K,          4      tL ! R, R-]4      tMR. R/ ltNR# )2    )annotationsN)ExtensionModule
ModuleInfo)CustomTargetCustomTargetIndexGeneratedList)lang_suffixes)extract_required_kwarg)NoneTypeREQUIRED_KWDISABLER_KW	NATIVE_KW)	ContainerTypeInfoObjectHolder	KwargInfotyped_pos_argstyped_kwargs	noPosargsnoKwargsdisablerIfNotFoundInterpreterObject)FileMesonException
Popen_safeversion_compare)ExternalProgramNonExistingExternalProgram)HoldableObject)mlog)Literal	TypeAlias	TypedDict)ModuleState)ImmutableListProtocol)
Executable)Interpreter)ExtractRequired)TYPE_varTYPE_kwargs)MachineChoice)OverrideProgramr!   Programc                  J    ] tR t^'t$ R]R&   R]R&   R]R&   R]R&   R]R&   R	tR
# )LexGenerateKwargsT.List[str]argsT.Optional[str]sourceheadertablebool	plainname N__name__
__module____qualname____firstlineno____annotations____static_attributes__r7       ?/usr/lib/python3.14/site-packages/mesonbuild/modules/codegen.pyr.   r.   '   s    r?   r.   c                  T    ] tR t^/t$ R]R&   R]R&   R]R&   R]R&   R]R&   R]R	&   R
tR# )FindLexKwargsr/   lex_versionflex_versionreflex_versionwin_flex_versionzT.List[LexImpls]implementationsr*   nativer7   Nr8   r7   r?   r@   rB   rB   /   s&      !!##%%))r?   rB   c                  J    ] tR t^8t$ R]R&   R]R&   R]R&   R]R&   R]R&   R	tR
# )YaccGenerateKWargsr/   r0   r1   r2   r3   	locationsr5   r6   r7   Nr8   r7   r?   r@   rJ   rJ   8   s    ""r?   rJ   c                  T    ] tR t^@t$ R]R&   R]R&   R]R&   R]R&   R]R&   R]R	&   R
tR# )FindYaccKwargsr/   yacc_versionbyacc_versionbison_versionwin_bison_versionzT.List[YaccImpls]rG   r*   rH   r7   Nr8   r7   r?   r@   rM   rM   @   s&    !!""""&&**r?   rM   c                    V ^8  d   QhRRRR/# )   choicesz
T.Set[str]returnz*T.Callable[[T.List[str]], T.Optional[str]]r7   )formats   "r@   __annotate__rW   J   s     	 	 	0Z 	r?   c                   a  R  V 3R llpV# )c                    V ^8  d   QhRRRR/# )rS   checkr/   rU   r1   r7   )rV   s   "r@   rW   )is_subset_validator.<locals>.__annotate__L   s      [ _ r?   c                   < \        V 4      P                  S4      '       gV   R P                  \        \        V 4      P	                  S4      4      4      pR P                  \        S4      4      pRV RV R2# R# ), zvalid members are 'z', not ''N)setissubsetjoinsorted
difference)rZ   invalidvalidrT   s   &  r@   inner"is_subset_validator.<locals>.innerL   sd    5z""7++iis5z'<'<W'E FGGIIfWo.E(xyBBr?   r7   )rT   rf   s   f r@   is_subset_validatorrh   J   s      Lr?   c                  t    ] tR t^Vt$ R]R&   R]R&   ]P                  ! ]R7      tR]R&   R R	 lt	R
 R lt
RtR# )_CodeGeneratorstrnamer,   program)default_factoryImmutableListProtocol[str]	argumentsc                   V ^8  d   QhRR/# )rS   rU   T.List[T.Union[Program, str]]r7   )rV   s   "r@   rW   _CodeGenerator.__annotate__]   s     I I6 Ir?   c                	    \         P                  ! R V P                  .4      \         P                  ! R V P                  4      ,           # )rr   )Tcastrm   rp   selfs   &r@   command_CodeGenerator.command]   s6    6G6GH 	Ir?   c                   V ^8  d   QhRR/# )rS   rU   r5   r7   )rV   s   "r@   rW   rs   a   s     $ $t $r?   c                	6    V P                   P                  4       # N)rm   foundrw   s   &r@   r~   _CodeGenerator.founda   s    ||!!##r?   r7   N)r9   r:   r;   r<   r=   dataclassesfieldlistrp   ry   r~   r>   r7   r?   r@   rj   rj   V   s5     I,7,=,=d,SI)SI$ $r?   rj   c                      ] tR t^etRtR# )LexGeneratorr7   Nr9   r:   r;   r<   r>   r7   r?   r@   r   r   e       r?   r   c                     ] tR t^jt]]]P                  ! R4      R R l4       4       4       t]]]P                  ! R4      R R l4       4       4       t	]
! R]]]]]34      ]! R]! R]! ]]4      . R	R
7      ]! R]]34      ]! R]]34      ]! R]]34      ]! R]RR7      4      ]P                  ! R4      R R l4       4       4       tRtR# )	LexHolderimplementationc               $    V ^8  d   QhRRRRRR/# rS   r0   T.List[TYPE_var]kwargsr)   rU   rk   r7   )rV   s   "r@   rW   LexHolder.__annotate__o   #     % %*: %K %TW %r?   c                	.    V P                   P                  # r}   held_objectrl   rx   r0   r   s   &&&r@   implementation_methodLexHolder.implementation_methodl        $$$r?   r~   c               $    V ^8  d   QhRRRRRR/# rS   r0   r   r   r)   rU   r5   r7   )rV   s   "r@   rW   r   u   "     ( (!1 (; (4 (r?   c                	6    V P                   P                  4       # r}   r   r~   r   s   &&&r@   found_methodLexHolder.found_methodr        %%''r?   zcodegen.lex.generater0   Tdefaultlistifyr2   r3   r4   r6   Fr   generatec               $    V ^8  d   QhRRRRRR/# )rS   r0   zKT.Tuple[T.Union[str, File, GeneratedList, CustomTarget, CustomTargetIndex]]r   r.   rU   r   r7   )rV   s   "r@   rW   r      s1     A A$o A  zK A  P\ Ar?   c                	(   V P                   P                  4       '       g   \        R 4      hV P                  P	                  V^ ,          .4      ^ ,          p\        V\        4      '       dC   VP                  R4      p\        P                  P                  VP                  4      ^ ,          pMpVP                  4       p\        V4      ^8w  d   \        R4      hV^ ,          P                  R4      p\        P                  P                  V^ ,          4      ^ ,          p\        P                  P                  V4      pVR,          e1   VR,          P                  R^4      ^,          pV\         R,          9   pV P                   P"                  P$                  pV'       d|   V P                   P&                  R9   da    V P                  P(                  P*                  P,                  V,          R,          p	T	P1                  RR	4      w  rT
'       g   \        R
4      hVR,          f0   RP3                  VR,          '       d   RMRV'       d   RMR4      .pM
VR,          .pV P                   P5                  4       pVR,          e>   VP7                  VR,          4       VP7                  R\        V4      ^,
           R24       VR,          e>   VP7                  VR,          4       VP7                  R\        V4      ^,
           R24       VP9                  VR,          4       VP7                  R4       \;        RV RVP=                  4        2V P                  P>                  V P                  P@                  V P                  P(                  VV.VV P                  PB                  RP3                  V P                   P&                  4      R7	      pV P                  PE                  VP&                  V4       V#   \.         d    \        RT R24      hi ; i)z?Attempted to call generate without finding a lex implementationz.llucodegen.lex.generate: generated type inputs must have exactly one output, index into them to select the correct inputr2   .cppz"Could not find a C++ compiler for z to search for FlexLexer.hzFlexLexer.h z?Could not find FlexLexer.h, which is required for Flex with C++z@{}@.{}r6   	PLAINNAMEBASENAMEcr3   z--header-file=@OUTPUT@r4   z--tables-file=@OUTPUTr0   @INPUT@zcodegen-lex--zGenerating lexer {{}} with {}backenddescription>   flexwin_flex)#r   r~   r   interpretersource_strings_to_files
isinstancer   endswithospathsplitextfnameget_outputslenbasenamersplitr	   rm   for_machinerl   environmentcoredata	compilersKeyError
has_headerrV   ry   appendextendr   get_lower_case_namesubdir
subprojectr   
add_target)rx   r0   r   inputis_cpprl   	gen_inputextr   compr~   _outputsry   targets   &&&            r@   generate_methodLexHolder.generate_methodx   sf    %%'' !bcc  88$q'CAFeT""^^E*F77##EKK03D))+I9~"$  &]  ^  ^q\**51F77##IaL1!4Dww% ('"))#q1!4CM%00F&&..:: d&&++/CCs''33<<FF{STYZ }b9HE$%fgg(# ''%k22
S* +G h'(G""**,('NN6(+,NN23w<!3C2DAFG'?&NN6'?+NN23w<!3C2DAFGvf~&y!4&+"A"A"C!DE##''((G$$,,7>>t?O?O?T?TU

 	##FKK8K  s$'I+Vp%qrrss   <8O6 6Pr7   Nr9   r:   r;   r<   r   r   r   methodr   r   r   rk   r   r   r   r   r   r   r   r   r   r5   r   r>   r7   r?   r@   r   r   j   s    ./% 0  % g&( '  ( *S$|Uf,gh&+D#6DQ(S(O,(S(O,'C?++tU3 j)A * iAr?   r   c                      ] tR t^tRtR# )YaccGeneratorr7   Nr   r7   r?   r@   r   r      r   r?   r   c                     ] tR t^t]]]P                  ! R4      R R l4       4       4       t]]]P                  ! R4      R R l4       4       4       t	]
! R]]]]]34      ]! R]! R]! ]]4      . R	R
7      ]! R]]34      ]! R]]34      ]! R]]34      ]! R]RR7      4      ]P                  ! R4      R R l4       4       4       tRtR# )
YaccHolderr   c               $    V ^8  d   QhRRRRRR/# r   r7   )rV   s   "r@   rW   YaccHolder.__annotate__   r   r?   c                	.    V P                   P                  # r}   r   r   s   &&&r@   r    YaccHolder.implementation_method   r   r?   r~   c               $    V ^8  d   QhRRRRRR/# r   r7   )rV   s   "r@   rW   r      r   r?   c                	6    V P                   P                  4       # r}   r   r   s   &&&r@   r   YaccHolder.found_method   r   r?   zcodegen.yacc.generater0   Tr   r2   r3   rK   r6   Fr   r   c               $    V ^8  d   QhRRRRRR/# )rS   r0   zKT.Tuple[T.Union[str, File, CustomTarget, CustomTargetIndex, GeneratedList]]r   rJ   rU   r   r7   )rV   s   "r@   rW   r      s,     * *$o *  zL *  Q] *r?   c                	   V P                   P                  4       '       g   \        R 4      hV P                  P	                  V^ ,          .4      ^ ,          p\        V\        4      '       dC   VP                  R4      p\        P                  P                  VP                  4      ^ ,          pMpVP                  4       p\        V4      ^8w  d   \        R4      hV^ ,          P                  R4      p\        P                  P                  V^ ,          4      ^ ,          p\        P                  P                  V4      pV P                   P                  4       pVP!                  VR,          4       V'       d   RMRpV'       d   RMRp	VR,          '       d   R	MR
p
. pTP#                  VR,          f   V
 RV 2MVR,          4       TP#                  VR,          f   V
 RV	 2MVR,          4       VR,          e   VP#                  VR,          4       V P                   P$                  P&                  p\)        RV RVP+                  4        2V P                  P,                  V P                  P.                  V P                  P0                  VV.VV P                  P2                  RP5                  V P                   P6                  4      R7	      pV P                  P9                  VP6                  V4       V# )z@Attempted to call generate without finding a yacc implementationz.yyr   r0   r   r   hpphr6   z@PLAINNAME@z
@BASENAME@r2   r   r3   rK   zcodegen-yacc-r   zGenerating parser {{}} with {}r   )r   r~   r   r   r   r   r   r   r   r   r   r   r   r   r   ry   r   r   rm   r   r   r   r   r   r   r   rV   rl   r   )rx   r0   r   r   r   rl   r   ry   
source_ext
header_extbaser   r   r   s   &&&           r@   r   YaccHolder.generate_method   si    %%'' !cdd  88$q'CAFeT""^^E*F77##EKK03D))+I9~"$  &]  ^  ^q\**51F77##IaL1!4Dww%""**,vf~&$U#
$U#
 &{ 3 3}!1A1I$q-vV^O_`1A1I$q-vV^O_`+*NN6+./&&..::D6;#B#B#D"EF##''((G$$,,8??@P@P@U@UV

 	##FKK8r?   r7   Nr   r7   r?   r@   r   r      s    ./% 0  % g&( '  ( +c4Vg-hi&+D#6DQ(S(O,(S(O,+X/+tU3 j)* * j*r?   r   c                  L  a  ] tR tRtRt]! RRRR7      tR V 3R llt]]	! R	]
! R
]! ]]4      . RR7      ]
! R]! ]]4      . RR7      ]
! R]! ]]4      . RR7      ]
! R]! ]]4      . RR7      ]
! R]! ]]4      . R]! 0 Rm4      R7      ]]]4	      ]R R l4       4       4       t]]	! R]
! R]! ]]4      . RR7      ]
! R]! ]]4      . RR7      ]
! R]! ]]4      . RR7      ]
! R]! ]]4      . RR7      ]
! R]! ]]4      . R]! 0 Rm4      R7      ]]]4	      ]R R l4       4       4       tRtV ;t# )CodeGenModulei  z)Module with helpers for codegen wrappers.codegenz1.10.0T)unstablec                    V ^8  d   QhRRRR/# )rS   r   r&   rU   Noner7   )rV   s   "r@   rW   CodeGenModule.__annotate__  s      K D r?   c                	   < \         SV `  V4       V P                  P                  R V P                  RV P
                  /4       R# )lexyaccN)super__init__methodsupdate
lex_methodyacc_method)rx   r   	__class__s   &&r@   r   CodeGenModule.__init__  s;    %4??D$$
 	r?   zcodegen.lexrC   r   rD   rE   rF   rG   )r   r   	validatorc               (    V ^8  d   QhRRRRRRRR/# )	rS   stater#   r0   T.Tupler   rB   rU   r   r7   )rV   s   "r@   rW   r   0  s/     :W :W :W7 :WM :WVb :Wr?   c           	     	~   \        W1P                  4      w  rEpV'       dB   \        P                  ! R \        P                  ! V4      R4       \        R\        R4      4      # . pVR,          '       d   VR,          pMVP                  P                  VR,          ,          f   Q R4       hVP                  P                  VR,          ,          P                  R8X  d   VP                  R4       VP                  . RO4       RVR
,          RVR,          R	VR,          RVR,          /pV F  p	VP                  WV	,          VR,          RR7      p
V
P                  4       '       g   K=  V	R	8X  dy   \        V
\        4      '       dc   \!        V
P#                  4       R.,           4      w  rpRV9   d   \        P$                  ! R4       K  RV9   d   \        P$                  ! R4       K   MH	  V'       d3   \&        P(                  ! RRP+                  V4      VP,                  R7      h\        X	X
4      # . pV
P.                  R8X  dJ   VP                  P                  VR,          ,          P1                  4       '       d   VP                  R4       VP                  RR.4       \        W\2        P4                  ! RV4      4      # )zgenerator lex skipped: featuredisabledr   rG   rH   for mypywindowsr   r   reflexrC   rD   rE   rF   Fwantedr   required	--versionzunknown flag: --versionzBSkipping cespare/reflex, which is not a lexer and is not supportedzWritten by Robert van Engelenz9Skipping RE/flex, which is not compatible with POSIX lex.z,Could not find a lex implementation. Tried: r]   nodez--wincompat-o	@OUTPUT0@ro   )r   r  r   )r
   r   r   logboldr   r   r   machinessystemr   r   find_programr~   r   r   r   get_commanddebugr   	from_nodera   current_noderl   
is_windowsru   rv   )rx   r   r0   r   r  r	  featurenamesversionsrl   binr   outerrlex_argss   &&&&           r@   r   CodeGenModule.lex_method  sL   ( '=VEUEU&V#GHH5tyy7I:V'A%'HII"$#$$,-E$$--fX.>?KWZWK  ))&*:;BBiOZ(LL23 6-(F>*f-.12	1
 D$$d^9ITY % [Cyy{{ 8#
3(H(H #-S__->+-N"OKAC0C7

#gh 6#=

#^_ - 0 $..BDIIeDT++- -  c** " 88z!e&7&7&@&@AQ&R&]&]&_&_OOM*{+,Dqvv.JH'UVVr?   zcodegen.yaccrN   rO   rP   rQ   c               (    V ^8  d   QhRRRRRRRR/# )	rS   r   r#   r0   r  r   rM   rU   r   r7   )rV   s   "r@   rW   r     s/     8Y 8Y 8YG 8Y^ 8YXe 8Yr?   c           	     	   \        W1P                  4      w  rEpV'       dB   \        P                  ! R \        P                  ! V4      R4       \        R\        R4      4      # VR,          '       d   VR,          pMiVP                  P                  VR,          ,          f   Q R4       hVP                  P                  VR,          ,          P                  R8X  d   . ROpM. R OpRVR
,          R	VR,          RVR,          RVR,          /pV F=  p	VP                  WV	,          VR,          RR7      p
V
P                  4       '       g   K=   MH	  V'       d3   \        P                  ! RRP                  V4      VP                  R7      h\        X	X
4      # . R!Op\         P"                  ! RV
P$                  4      pVR8X  d^   \'        V
\(        4      '       dH   \+        V
P-                  4       R.,           4      w  rpRV9   d   RpMVP/                  R4      '       d   R	pVR"9   dZ   VP1                  R4       \'        V
\(        4      '       d2   \3        V
P5                  4       R4      '       d   VP1                  R4       MDVR	8X  d   VP7                  RR.4       M)\        P8                  ! RRR7       VP1                  R4       \        W\         P"                  ! RV4      4      # )#zgenerator yacc skipped: featurer  r   rG   rH   r  r  	win_bisonbisonbyaccrN   rO   rP   rQ   Fr  z-Could not find a yacc implementation. Tried: r]   r  	YaccImplsr
  z	GNU Bisonzyacc - 2z--defines=@OUTPUT1@z>= 3.4z--color=alwaysz-Hz	@OUTPUT1@zThis yacc does not appear to be bison or byacc, the POSIX specification does not require that header output location be configurable, and may not work.)fatalro   )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  ra   r  ru   rv   rl   r   r   r   r  
startswithr   r   get_versionr   warning)rx   r   r0   r   r  r	  r  r  r  rl   r  	yacc_argsimplr   r  s   &&&&           r@   r   CodeGenModule.yacc_methodl  sr   ( '=VEUEU&V#GHH6		'8JJW )CF)KLL#$$,-E$$--fX.>?KWZWK  ))&*:;BBiO62 F>*VO,VO, 34	7
 D$$d^9ITY % [Cyy{{	  $..CTYYuEU++- - !s++!?	vvk388,6>jo>>"3??#4}#DEIAAc!
++))23#//OCOODUW_4`4`  !12W_dK01LL N  %& T"T/KY(WXXr?   r7   >   r   r   r  r   >   r   r$  r%  r#  )r9   r:   r;   r<   __doc__r   INFOr   r   r   r   r   r   rk   rh   r   r   r   r   r   r   r>   __classcell__)r   s   @r@   r   r     s   3iD9D  -!24!=rSWX."3D#">TXY"$5dC$@"VZ[$&7c&BBX\]dC()*OP	
 	" :W # &:Wx ."3D#">TXY/#4T3#?UYZ/#4T3#?UYZ%'8s'CRY]^dC()*QR	
 	" 8Y # &8Yr?   r   c                    V ^8  d   QhRRRR/# )rS   r   r&   rU   r   r7   )rV   s   "r@   rW   rW     s     & &K &M &r?   c                    V P                  \        \        4       V P                  \        \        4       \        V 4      # r}   )append_holder_mapr   r   r   r   r   )r   s   &r@   
initializer4    s-    !!,	:!!-<%%r?   )r   r   r  r   )r   r%  r$  r#  )O__conditional_annotations__
__future__r   r   r   typingru   r   r   r   buildr   r   r   compilers.compilersr	   interpreter.interpreterobjectsr
   interpreter.type_checkingr   r   r   r   interpreterbaser   r   r   r   r   r   r   r   r   mesonlibr   r   r   r   programsr   r   
utils.corer   r   TYPE_CHECKINGtyping_extensionsr    r!   r"   r#   _typingr$   r%   r   r&   interpreter.kwargsr'   r(   r)   r*   r+   Unionr,   r=   LexImplsr&  r.   rB   rJ   rM   rh   	dataclassrj   r   r   r   r   r   r4  )r5  s   @r@   <module>rG     sz   # "  	  ) B B / C U U   I H B ' ?????/")47(*_o!MNGYN:;H=>II  Y  	 $^ $ $ 	> 	 	Y\* Yx 	N 	 	Bm, BJgYO gYT&r?   