� c��j"��^� ddlZddlmZddlmZddlmZGd�de�ZGd�d e�Z y) �N�)�PatternCompiler)�pygram)�does_tree_importc���eZdZ dZdZdZdZdZejd�Z e �Z dZ dZdZdZdZdZej(Zd�Zd�Zd�Zd �Zd �Zdd �Zd �Zdd �Zd�Zd�Zd�Z y)�BaseFixNr�postF�c�B� ||_||_|j�y�N)�options�log�compile_pattern)�selfr rs �+/usr/lib64/python3.12/lib2to3/fixer_base.py�__init__zBaseFix.__init__/s#�� ��� ���� ����c�� |j�5t�}|j|jd��\|_|_yy)NT)� with_tree)�PATTERNrr�pattern� pattern_tree)r�PCs rrzBaseFix.compile_pattern;sJ�� � �<�<� #� �"�B�.0�.@�.@����KO�/A�/Q� +�D�L�$�+� $rc�� ||_yr )�filename)rrs r� set_filenamezBaseFix.set_filenameFs�� �!�� rc�L� d|i}|jj||�xr|S)N�node)r�match�rr�resultss rrz BaseFix.matchMs.�� ��4�.���|�|�!�!�$��0�<�W��>�"�D�N� �H�H�O�O�0�4�=�=�@� A� ������ rc�� |j�}|j�}d|_d}|j|||fz�|r|j|�yy)N�zLine %d: could not convert: %s)� get_lineno�clone�prefixr2)rr�reason�lineno� for_output�msgs r�cannot_convertzBaseFix.cannot_convertzs[�� � ���"���Z�Z�\� �� ��.�� ����� �3�3�4� � � � �V� $� rc�R� |j�}|jd||fz�y)Nz Line %d: %s)r5r2)rrr8r9s r�warningzBaseFix.warning�s-�� � ���"�� ����&�&�)9�9�:rc�� |j|_|j|�tjd�|_d|_y)NrT)r&r� itertools�countr)r/�r�treers r� start_treezBaseFix.start_tree�s9�� � �/�/��� ���(�#� ���q�)�� ���rc�� yr �rBs r� finish_treezBaseFix.finish_tree�s �� � r)�xxx_todo_changemer )!�__name__� __module__� __qualname__rrrr rr@rAr)�setr&�order�explicit� run_order� _accept_type�keep_line_order� BM_compatibler�python_symbols�symsrrrrr$r-r2r<r>rDrGrFrrrrs�����G��G��L��G��H��i�o�o�a� �G���J� �E��H��I��L��O��M� � � �D� � Q�!� =�$� �!� %�;� � rrc�*��eZdZ dZ�fd�Zd�Z�xZS)�ConditionalFixNc�4��tt|� |�d|_yr )�superrVrD� _should_skip)r�args� __class__s �rrDzConditionalFix.start_tree�s��� �n�d�.��5� ��rc���|j� |jS|jjd�}|d}dj|dd�}t |||�|_|jS)N�.�����)rY�skip_on�split�joinr)rr�pkgr,s r� should_skipzConditionalFix.should_skip�sh�� � � � (��$�$� $��l�l� � ��%���2�w���h�h�s�3�B�x� ��,�S�$��=���� � � r)rIrJrKr_rDrc� __classcell__)r[s@rrVrV�s���J��G�!�!rrV) r@�patcomprr4r� fixer_utilr�objectrrVrFrr�rhs5��9��%��(�X �f�X �v!�W�!r