Ë
    pPêj„0  ã                  ó2  — d dl mZ d dlmZ d dlmZ d dlmZmZm	Z	 d dl
mZmZmZmZmZmZmZmZmZ d dlmZ d dlmZmZmZmZ d dlmZmZ d d	lmZ d d
l m!Z! d dl"m#Z#m$Z$m%Z%m&Z& d dl'm(Z( d dl)m*Z*m+Z+m,Z, d dl-m.Z.m/Z/ h d£Z0 G d„ de«      Z1	 	 	 	 dd„Z2dd„Z3y)é    )Úannotations)Ú	Generator)Úcontextmanager)Ú	MatchStmtÚNameExprÚTypeInfo)	Ú	AsPatternÚClassPatternÚMappingPatternÚ	OrPatternÚPatternÚSequencePatternÚSingletonPatternÚStarredPatternÚValuePattern)ÚTraverserVisitor)ÚInstanceÚLiteralTypeÚ	TupleTypeÚget_proper_type)Ú
BasicBlockÚValue)Úobject_rprimitive)Ú	IRBuilder)Ú	dict_copyÚdict_del_itemÚmapping_has_keyÚsupports_mapping_protocol)Úgeneric_ssize_t_len_op)Úsequence_get_itemÚsequence_get_sliceÚsupports_sequence_protocol)Úfast_isinstance_opÚslow_isinstance_op>   úbuiltins.intúbuiltins.setúbuiltins.strúbuiltins.boolúbuiltins.dictúbuiltins.listúbuiltins.bytesúbuiltins.floatúbuiltins.tupleúbuiltins.bytearrayúbuiltins.frozensetc                  óÄ   — e Zd ZU ded<   ded<   ded<   ded<   ded<   d	ed
<   dZded<   dd„Zdd„Zdd„Zdd„Zdd„Z	dd„Z
d d„Zd!d„Zd"d„Zd#d„Zd$d%d„Zed&d„«       Zy)'ÚMatchVisitorr   Úbuilderr   Ú
code_blockÚ
next_blockÚfinal_blockr   Úsubjectr   ÚmatchNzAsPattern | NoneÚ
as_patternc                óº   — || _         t        «       | _        t        «       | _        t        «       | _        || _        |j                  |j                  «      | _        y ©N)r2   r   r3   r4   r5   r7   Úacceptr6   )Úselfr2   Ú
match_nodes      úX/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/mypyc/irbuild/match.pyÚ__init__zMatchVisitor.__init__?   sB   € ØˆŒä$›,ˆŒÜ$›,ˆŒÜ%›<ˆÔàˆŒ
Ø—~‘~ j×&8Ñ&8Ó9ˆ�ó    c                ó2  — | j                   j                  | j                  «       | j                  j                  |   }|r€t        «       | _        | j                   j                  |«      }| j                   j                  || j                  | j                  «       | j                   j                  | j                  «       | j                   j                  | j                  j                  |   «       | j                   j                  | j                  «       y r:   )r2   Úactivate_blockr3   r7   Úguardsr   r;   Úadd_bool_branchr4   ÚbodiesÚgotor5   )r<   ÚindexÚguardÚconds       r>   Úbuild_match_bodyzMatchVisitor.build_match_bodyI   s¹   € Ø�‰×#Ñ# D§O¡OÔ4à—
‘
×!Ñ! %Ñ(ˆáÜ(›lˆDŒOà—<‘<×&Ñ& uÓ-ˆDØ�L‰L×(Ñ(¨¨t¯©ÀÇÁÔPà�L‰L×'Ñ'¨¯©Ô8à�‰×Ñ˜DŸJ™J×-Ñ-¨eÑ4Ô5Ø�‰×Ñ˜$×*Ñ*Õ+r@   c                óR  — t        |j                  «      D ]j  \  }}t        «       | _        t        «       | _        |j                  | «       | j                  |«       | j                  j                  | j                  «       Œl | j                  j                  | j                  «       y r:   )Ú	enumerateÚpatternsr   r3   r4   r;   rJ   r2   rB   Úgoto_and_activater5   )r<   ÚmÚiÚpatterns       r>   Úvisit_match_stmtzMatchVisitor.visit_match_stmtY   sz   € Ü# A§J¡JÓ/ò 	9‰JˆAˆwÜ(›lˆDŒOÜ(›lˆDŒOà�N‰N˜4Ô à×!Ñ! !Ô$Ø�L‰L×'Ñ'¨¯©Õ8ð	9ð 	�‰×&Ñ& t×'7Ñ'7Õ8r@   c                óJ  — | j                   j                  |j                  «      }| j                   j                  | j                  |d|j                  j
                  «      }| j                  |«       | j                   j                  || j                  | j                  «       y )Nú==)
r2   r;   ÚexprÚ	binary_opr6   ÚlineÚbind_as_patternrD   r3   r4   )r<   rQ   ÚvaluerI   s       r>   Úvisit_value_patternz MatchVisitor.visit_value_patterne   sn   € Ø—‘×#Ñ# G§L¡LÓ1ˆà�|‰|×%Ñ% d§l¡l°E¸4ÀÇÁ×ARÑARÓSˆà×Ñ˜UÔ#à�‰×$Ñ$ T¨4¯?©?¸D¿O¹OÕLr@   c                ó
  — | j                   }| j                  }|j                  D ]©  }t        «       | _         t        «       | _        | j                  }|j                  | «       || _        | j                  j                  | j                   «       | j                  j                  |«       | j                  j                  | j                  «       Œ« || _         || _        | j                  j                  | j                  «       y r:   )	r3   r4   rM   r   r8   r;   r2   rB   rF   )r<   rQ   r3   r4   ÚpÚbackups         r>   Úvisit_or_patternzMatchVisitor.visit_or_patternn   s¼   € Ø—_‘_ˆ
Ø—_‘_ˆ
à×!Ñ!ò 	9ˆAÜ(›lˆDŒOÜ(›lˆDŒOð —_‘_ˆFØ�H‰H�TŒNØ$ˆDŒOà�L‰L×'Ñ'¨¯©Ô8Ø�L‰L×Ñ˜jÔ)Ø�L‰L×'Ñ'¨¯©Õ8ð	9ð %ˆŒØ$ˆŒØ�‰×Ñ˜$Ÿ/™/Õ*r@   c                ó  — | j                   j                  |j                  «      rt        nt        }| j                   j                  || j                  | j                   j                  |j                  «      g|j                  «      }| j                   j                  || j                  | j                  «       | j                  | j                  d¬«       |j                  �rW|j                  j                  t        v rS| j                   j!                  | j                  «       t#        «       | _
        |j                  d   j                  | «       y |j                  j$                  }t'        |t(        «      sJ |«       ‚t+        |«      }t-        |j                  «      D ]˜  \  }}| j                   j!                  | j                  «       t#        «       | _
        | j                   j/                  | j                  ||   |j                  «      }| j1                  |«      5  |j                  | «       d d d «       Œš t3        |j4                  |j6                  «      D ]•  \  }	}
| j                   j!                  | j                  «       t#        «       | _
        | j                   j/                  | j                  |	|
j                  «      }| j1                  |«      5  |
j                  | «       d d d «       Œ— y # 1 sw Y   �Œ^xY w# 1 sw Y   Œ¯xY w)NT)Ú	new_blockr   )r2   Úis_builtin_ref_exprÚ	class_refr#   r$   Úprimitive_opr6   r;   rW   rD   r3   r4   rX   ÚpositionalsÚfullnameÚMATCHABLE_BUILTINSrB   r   ÚnodeÚ
isinstancer   Úextract_dunder_match_args_namesrL   Úpy_get_attrÚenter_subpatternÚzipÚkeyword_keysÚkeyword_values)r<   rQ   Úisinstance_oprI   rg   Ú
match_argsrP   rU   Ú
positionalÚkeyrY   Úattrs               r>   Úvisit_class_patternz MatchVisitor.visit_class_pattern„   sb  € ð
 �|‰|×/Ñ/°×0AÑ0AÔBõ ä#ð 	ð �|‰|×(Ñ(Ø˜DŸL™L¨$¯,©,×*=Ñ*=¸g×>OÑ>OÓ*PÐQÐSZ×S_ÑS_ó
ˆð 	�‰×$Ñ$ T¨4¯?©?¸D¿O¹OÔLà×Ñ˜TŸ\™\°TÐÔ:à×ÓØ× Ñ ×)Ñ)Ô-?Ñ?Ø—‘×+Ñ+¨D¯O©OÔ<Ü",£,�”à×#Ñ# AÑ&×-Ñ-¨dÔ3àà×$Ñ$×)Ñ)ˆDÜ˜d¤HÔ-Ð3¨tÓ3Ð-Ü8¸Ó>ˆJä$ W×%8Ñ%8Ó9ò 	&‘��4Ø—‘×+Ñ+¨D¯O©OÔ<Ü",£,�”ð "Ÿ\™\×5Ñ5°d·l±lÀJÈqÁMÐSW×S\ÑS\Ó]�
à×*Ñ*¨:Ó6ñ &Ø—K‘K Ô%÷&ð &ð	&ô ˜g×2Ñ2°G×4JÑ4JÓKò 	#‰JˆC�Ø�L‰L×'Ñ'¨¯©Ô8Ü(›lˆDŒOð —<‘<×+Ñ+¨D¯L©L¸#¸u¿z¹zÓJˆDà×&Ñ& tÓ,ñ #Ø—‘˜TÔ"÷#ð #ñ	#÷&ñ &ú÷#ð #ús   ÈK3ËL Ë3K=	Ì L		c                ó–  — |j                   r6| j                  }|| _        |j                   j                  | «       || _        nb|j                  rV| j                  j                  |j                  «      }| j                  j                  || j                  |j                  «       | j                  j                  | j                  «       y r:   )rQ   r8   r;   Únamer2   Úget_assignment_targetÚassignr6   rW   rF   r3   )r<   rQ   Úold_patternÚtargets       r>   Úvisit_as_patternzMatchVisitor.visit_as_pattern·   s…   € Ø�?Š?ØŸ/™/ˆKØ%ˆDŒOØ�O‰O×"Ñ" 4Ô(Ø)ˆD�Oà�\Š\Ø—\‘\×7Ñ7¸¿¹ÓEˆFà�L‰L×Ñ ¨¯©°g·l±lÔCà�‰×Ñ˜$Ÿ/™/Õ*r@   c                óž  — |j                   €| j                  j                  «       }nC|j                   du r| j                  j                  «       }n| j                  j	                  «       }| j                  j                  | j                  |d|j                  «      }| j                  j                  || j                  | j                  «       y )NTÚis)rY   r2   Únone_objectÚtrueÚfalserV   r6   rW   rD   r3   r4   )r<   rQ   ÚobjrI   s       r>   Úvisit_singleton_patternz$MatchVisitor.visit_singleton_patternÅ   sŽ   € Ø�=‰=Ð Ø—,‘,×*Ñ*Ó,‰CØ�]‰]˜dÑ"Ø—,‘,×#Ñ#Ó%‰Cà—,‘,×$Ñ$Ó&ˆCà�|‰|×%Ñ% d§l¡l°C¸¸w¿|¹|ÓLˆà�‰×$Ñ$ T¨4¯?©?¸D¿O¹OÕLr@   c                ó–  — | j                   j                  t        | j                  g|j                  «      }| j                   j                  || j                  | j                  «       g }t        |j                  |j                  «      D �]e  \  }}| j                   j                  | j                  «       t        «       | _        | j                   j                  |«      }|j                  |«       | j                   j                  t        | j                  |g|j                  «      }| j                   j                  || j                  | j                  «       | j                   j                  | j                  «       t        «       | _        | j                   j!                  | j                  d|gt"        |j                  «      }| j%                  |«      5  |j                  | «       d d d «       �Œh |j&                  �r=| j                   j                  | j                  «       t        «       | _        | j                   j)                  t*        | j                  g|j&                  j                  «      }	| j                   j-                  |j&                  «      }
| j                   j/                  |
|	|j&                  j                  «       t1        |«      D ]?  \  }}| j                   j                  t2        |	|g|j                  |   j                  «       ŒA | j                   j5                  | j                  «       y y # 1 sw Y   �Œ¾xY w)NÚ__getitem__)r2   Úcall_cr   r6   rW   rD   r3   r4   rl   ÚkeysÚvaluesrB   r   r;   Úappendr   Úgen_method_callr   rk   Úrestrc   r   rw   rx   rL   r   rF   )r<   rQ   Úis_dictr†   rr   rY   Ú	key_valueÚexistsÚitemrŠ   rz   rP   Úkey_names                r>   Úvisit_mapping_patternz"MatchVisitor.visit_mapping_patternÑ   sY  € Ø—,‘,×%Ñ%Ô&?À$Ç,Á,ÀÐQX×Q]ÑQ]Ó^ˆà�‰×$Ñ$ W¨d¯o©o¸t¿¹ÔOàˆä˜gŸl™l¨G¯N©NÓ;ó 	#‰JˆC�Ø�L‰L×'Ñ'¨¯©Ô8Ü(›lˆDŒOàŸ™×+Ñ+¨CÓ0ˆIØ�K‰K˜	Ô"à—\‘\×(Ñ(¬¸4¿<¹<ÈÐ:SÐU\×UaÑUaÓbˆFà�L‰L×(Ñ(¨°·±À$Ç/Á/ÔRØ�L‰L×'Ñ'¨¯©Ô8Ü(›lˆDŒOà—<‘<×/Ñ/Ø—‘˜m¨i¨[Ô:KÈWÏ\É\óˆDð ×&Ñ& tÓ,ñ #Ø—‘˜TÔ"÷#ñ #ð#	#ð( �<‹<Ø�L‰L×'Ñ'¨¯©Ô8Ü(›lˆDŒOà—<‘<×,Ñ,¬Y¸¿¹¸ÈÏÉ×HYÑHYÓZˆDà—\‘\×7Ñ7¸¿¹ÓEˆFà�L‰L×Ñ ¨¨g¯l©l×.?Ñ.?Ô@ä(¨›ò [‘��8Ø—‘×#Ñ#¤M°D¸(Ð3CÀWÇ\Á\ÐRSÁ_×EYÑEYÕZð[ð �L‰L×Ñ˜dŸo™oÕ.ð ÷#ñ #ús   ÇL>Ì>M	c                ót  — t        |«      \  }}}| j                  j                  t        | j                  g|j
                  «      }| j                  j                  || j                  | j                  «       | j                  j                  | j                  «       t        «       | _        | j                  j                  t        | j                  g|j
                  «      }t        |«      }| j                  j                  || j                  j                  |«      |€dnd|j
                  «      }| j                  j                  || j                  | j                  «       t        |«      D �]  \  }	}
| j                  j                  | j                  «       t        «       | _        |�J|	|k\  rE| j                  j                  || j                  j                  ||	z
  «      d|
j
                  «      }n| j                  j                  |	«      }| j                  j                  t         | j                  |g|
j
                  «      }| j#                  |«      5  |
j%                  | «       d d d «       �Œ |�r5|��1| j                  j                  | j                  «       t        «       | _        | j                  j                  || j                  j                  ||z
  «      d|j
                  «      }| j                  j                  t&        | j                  | j                  j                  |«      |g|j
                  «      }| j                  j)                  |«      }| j                  j+                  |||j
                  «       | j                  j-                  | j                  «       y y y # 1 sw Y   �ŒJxY w)NrT   z>=ú-)Úprep_sequence_patternr2   r…   r"   r6   rW   rD   r3   r4   rB   r   r   ÚlenrV   Úload_intrL   r    rk   r;   r!   rw   rx   rF   )r<   Úseq_patternÚ
star_indexÚcapturerM   Úis_listÚ
actual_lenÚmin_lenÚis_long_enoughrP   rQ   ÚcurrentrŽ   Úcapture_endrŠ   rz   s                   r>   Úvisit_sequence_patternz#MatchVisitor.visit_sequence_patternû   sÓ  € Ü(=¸kÓ(JÑ%ˆ
�G˜Xà—,‘,×%Ñ%Ô&@À4Ç<Á<À.ÐR]×RbÑRbÓcˆà�‰×$Ñ$ W¨d¯o©o¸t¿¹ÔOà�‰×#Ñ# D§O¡OÔ4Ü$›,ˆŒà—\‘\×(Ñ(Ô)?À$Ç,Á,ÀÐQ\×QaÑQaÓbˆ
Ü�h“-ˆàŸ™×/Ñ/ØØ�L‰L×!Ñ! 'Ó*ØÐ&‰D¨DØ×Ñó	
ˆð 	�‰×$Ñ$ ^°T·_±_ÀdÇoÁoÔVä# HÓ-ó 	%‰JˆAˆwØ�L‰L×'Ñ'¨¯©Ô8Ü(›lˆDŒOàÐ%¨!¨zª/ØŸ,™,×0Ñ0Ø §¡× 5Ñ 5°gÀ±kÓ BÀCÈÏÉó‘ð
 Ÿ,™,×/Ñ/°Ó2�à—<‘<×&Ñ&Ô'8¸4¿<¹<ÈÐ:QÐSZ×S_ÑS_Ó`ˆDà×&Ñ& tÓ,ñ %Ø—‘˜tÔ$÷%ñ %ð	%ò" �zÑ-Ø�L‰L×'Ñ'¨¯©Ô8Ü(›lˆDŒOàŸ,™,×0Ñ0Ø˜DŸL™L×1Ñ1°'¸JÑ2FÓGÈÈgÏlÉlóˆKð —<‘<×&Ñ&Ü"Ø—‘˜tŸ|™|×4Ñ4°ZÓ@À+ÐNØ—‘óˆDð —\‘\×7Ñ7¸Ó@ˆFØ�L‰L×Ñ ¨¨g¯l©lÔ;à�L‰L×Ñ˜dŸo™oÕ.ð# .ˆ7÷%ñ %ús   ÉN-Î-N7	c                ó  — | j                   rþ| j                   j                  rç| j                   j                  rÐ|r4| j                  j	                  | j
                  «       t        «       | _        | j                  j                  | j                   j                  «      }| j                  j                  ||| j                   j                  j                  «       d | _         |r&| j                  j                  | j
                  «       y y y y y r:   )r8   rQ   rv   r2   rB   r3   r   rw   rx   rW   rF   )r<   rY   r`   rz   s       r>   rX   zMatchVisitor.bind_as_pattern5  s·   € Ø�?Š?˜tŸ™×6Ò6¸4¿?¹?×;OÒ;OÙØ—‘×+Ñ+¨D¯O©OÔ<Ü",£,�”à—\‘\×7Ñ7¸¿¹×8LÑ8LÓMˆFØ�L‰L×Ñ ¨¨t¯©×/FÑ/F×/KÑ/KÔLà"ˆDŒOáØ—‘×!Ñ! $§/¡/Õ2ð ð <PÐ6ˆ?r@   c              #  óH   K  — | j                   }|| _         d –— || _         y ­wr:   )r6   )r<   r6   Úold_subjects      r>   rk   zMatchVisitor.enter_subpatternC  s    è ø€ à—l‘lˆØˆŒÛØ"ˆ�ùs   ‚ ")r2   r   r=   r   ÚreturnÚNone)rG   Úintr£   r¤   )rO   r   r£   r¤   )rQ   r   r£   r¤   )rQ   r   r£   r¤   )rQ   r
   r£   r¤   )rQ   r	   r£   r¤   )rQ   r   r£   r¤   )rQ   r   r£   r¤   )r–   r   r£   r¤   )F)rY   r   r`   Úboolr£   r¤   )r6   r   r£   zGenerator[None])Ú__name__Ú
__module__Ú__qualname__Ú__annotations__r8   r?   rJ   rR   rZ   r^   rt   r{   r‚   r�   rŸ   rX   r   rk   © r@   r>   r1   r1   5   s€   … ØÓØÓØÓØÓØƒNØÓà#'€JÐ Ó'ó:ó,ó 
9óMó+ó,1#óf+ó
Mó(/óT8/ôt3ð ò#ó ñ#r@   r1   c                ó²   — d }d }g }t        | j                  «      D ]5  \  }}t        |t        «      r|}|j                  }Œ%|j                  |«       Œ7 |||fS r:   )rL   rM   rh   r   r˜   rˆ   )r–   r—   r˜   rM   rP   rQ   s         r>   r“   r“   K  sf   € ð "€JØ#€GØ €Hä × 4Ñ 4Ó5ò %‰
ˆˆ7Ü�gœ~Ô.ØˆJØ—o‘o‰Gð �O‰O˜GÕ$ð%ð �w Ð(Ð(r@   c                óÐ  — | j                   j                  d«      }|sJ ‚t        |j                  «      }t	        |t
        «      sJ |«       ‚g }|j                  D ]‰  }t        |«      }d }t	        |t        «      r#|j                  r|j                  j                  }nt	        |t        «      r|j                  }t	        |t        «      s
J d|› �«       ‚|j                  |«       Œ‹ |S )NÚ__match_args__z"Unrecognized __match_args__ item: )ÚnamesÚgetr   Útyperh   r   Úitemsr   Úlast_known_valuerY   r   Ústrrˆ   )ÚinfoÚtyÚmatch_args_typerp   rŽ   Úproper_itemÚ	match_args          r>   ri   ri   ]  sÔ   € Ø	�‰�‰Ð(Ó	)€BÙ€Iˆ2Ü% b§g¡gÓ.€OÜ�o¤yÔ1ÐB°?ÓBÐ1à€JØ×%Ñ%ò 
%ˆÜ% dÓ+ˆàˆ	Ü�k¤8Ô,°×1MÒ1MØ#×4Ñ4×:Ñ:‰IÜ˜¤[Ô1Ø#×)Ñ)ˆIÜ˜)¤SÔ)ÐVÐ-OÐPTÈvÐ+VÓVÐ)à×Ñ˜)Õ$ð
%ð Ðr@   N)r–   r   r£   z1tuple[int | None, NameExpr | None, list[Pattern]])rµ   r   r£   z	list[str])4Ú
__future__r   Úcollections.abcr   Ú
contextlibr   Ú
mypy.nodesr   r   r   Úmypy.patternsr	   r
   r   r   r   r   r   r   r   Úmypy.traverserr   Ú
mypy.typesr   r   r   r   Úmypyc.ir.opsr   r   Úmypyc.ir.rtypesr   Úmypyc.irbuild.builderr   Úmypyc.primitives.dict_opsr   r   r   r   Úmypyc.primitives.generic_opsr   Úmypyc.primitives.list_opsr    r!   r"   Úmypyc.primitives.misc_opsr#   r$   rf   r1   r“   ri   r«   r@   r>   ú<module>rÈ      s‰   ðÝ "å %Ý %ç 4Ñ 4÷
÷ 
õ 
õ ,ß HÓ Hß *Ý -Ý +÷ó õ @÷ñ ÷
 MòÐ ôS#Ð#ô S#ðl)Ø ð)à6ó)ô$r@   