| Current Path : /snap/certbot/5451/lib/python3.12/site-packages/pycparser/__pycache__/ |
| Current File : //snap/certbot/5451/lib/python3.12/site-packages/pycparser/__pycache__/_ast_gen.cpython-312.pyc |
�
q[�i, � � � d dl mZ d dlZd dlmZ G d� d� Z G d� d� ZdZd Ze d
k( r�ej j ej j e
� � Zej j ed� Zej j ed� Z ee� Z eed
� 5 Zej+ e� ddd� yy# 1 sw Y yxY w)� )�TemplateN)�IOc �0 � e Zd Zdd�Zdee ddfd�Zd� Zy)�ASTCodeGeneratorc � � || _ | j |� D ��cg c] \ }}t ||� �� c}}| _ yc c}}w )zIInitialize the code generator from a configuration
file.
N)�cfg_filename�
parse_cfgfile�NodeCfg�node_cfg)�selfr �name�contentss ��/build/snapcraft-certbot-8ace4148c346cc61c23dfdbf9a13f72e/parts/certbot/install/lib/python3.12/site-packages/pycparser/_ast_gen.py�__init__zASTCodeGenerator.__init__ sC � � )��� %)�$6�$6�|�$D�
� ��x�
�D�(�#�
��
��
s �<�file�returnNc �� � t t � j | j �� }|t z
}| j
D ] }||j
� dz z
}� |j |� y)z2Generates the code into file, an open file buffer.)r z
N)r �_PROLOGUE_COMMENT�
substituter �_PROLOGUE_CODEr �generate_source�write)r r �srcr s r �generatezASTCodeGenerator.generate sc � ��(�)�4�4�$�BS�BS�4�T���~����
�
� 7�H��8�+�+�-��6�6�C� 7�
�
�
�3�� c # �� K � t |d� 5 }|D ]� }|j � }|r|j d� r�'|j d� }|j d� }|j d� }|dk s
||k s||k rt d|� d|� d �� �|d
| }||dz | }|r-|j d� D � cg c] } | j � �� c} ng }
||
f�� �� d
d
d
� y
c c} w # 1 sw Y y
xY w�w)z`Parse the configuration file and yield pairs of
(name, contents) for each node.
�r�#�:�[�]� zInvalid line in �:
�
N�,)�open�strip�
startswith�find�RuntimeError�split)r �filename�f�line�colon_i�
lbracket_i�
rbracket_ir
�val�v�vallists r r zASTCodeGenerator.parse_cfgfile* s� � �� � �(�C�
� $�A��
$���z�z�|���t���s�3���)�)�C�.��!�Y�Y�s�^�
�!�Y�Y�s�^�
��Q�;�*��"7�:��;S�&�)9�(��3�t�f�B�'O�P�P��H�W�~���:��>�J�7��AD�c�i�i��n�=��1�7�7�9�=�"���G�m�#�
$� $� $�� >� $� $�s/ �
C.�B C"�/C�
C"� C.�C"�"C+�'C.)�
_c_ast.cfg)�__name__�
__module__�__qualname__r r �strr r � r r r r s# � �
��R��W� �� �$r r c �4 � e Zd ZdZd� Zd� Zd� Zd� Zd� Zd� Z y) r
z�Node configuration.
name: node name
contents: a list of contents - attributes and child nodes
See comment at the top of the configuration file for details.
c � � || _ g | _ g | _ g | _ g | _ |D ]� }|j d� }| j j
|� |j d� r| j j
|� �\|j d� r| j j
|� ��| j j
|� �� y )N�*z**)r
�all_entries�attr�child� seq_child�rstrip�append�endswith)r r
r �entry�clean_entrys r r zNodeCfg.__init__G s� � ��� ������ ���
����� (�E��,�,�s�+�K����#�#�K�0��~�~�d�#����%�%�k�2�����$��
�
�!�!�+�.�� � � � ��'� (r c � � | j � }|d| j � z z
}|d| j � z z
}|d| j � z z
}|S )Nr$ )� _gen_init�
_gen_children� _gen_iter�_gen_attr_names�r r s r r zNodeCfg.generate_sourceY sY � ��n�n����t�d�(�(�*�*�*���t�d�n�n�&�&�&���t�d�*�*�,�,�,���
r c �> � d| j � d�}| j rIdj | j � }dj d� | j D � � }|dz
}d|� d�}nd}d }|d
|� d�z
}|d|� d
�z
}| j dgz D ] }|d|� d|� d�z
}� |S )Nzclass z(Node):
�, c 3 �( K � | ]
}d |� d ��� � y�w)�'Nr: )�.0�es r � <genexpr>z$NodeCfg._gen_init.<locals>.<genexpr>e s � �� �A�1��!��A�h�A�s �z, 'coord', '__weakref__'z(self, z
, coord=None)z'coord', '__weakref__'z(self, coord=None)z __slots__ = (z)
z def __init__r# �coordz
self.z = r$ )r
r>