File: //var/opt/nydus/ops/pycparser/__pycache__/c_generator.cpython-39.pyc
a
�,�h~E � @ s d dl mZ G dd� de�ZdS )� )�c_astc @ s6 e Zd ZdZd�dd�Zdd� Zdd� Zd d
� Zdd� Zd
d� Z dd� Z
dd� Zdd� Zdd� Z
dd� Zdddddddddddd d d!d!d"d"d"d#�Zd$d%� Zd&d'� Zd(d)� Zd*d+� Zd�d,d-�Zd.d/� Zd0d1� Zd2d3� Zd4d5� Zd6d7� Zd8d9� Zd:d;� Zd<d=� Zd>d?� Zd@dA� ZdBdC� ZdDdE� Z dFdG� Z!dHdI� Z"dJdK� Z#dLdM� Z$dNdO� Z%dPdQ� Z&dRdS� Z'dTdU� Z(dVdW� Z)dXdY� Z*dZd[� Z+d\d]� Z,d^d_� Z-d`da� Z.dbdc� Z/ddde� Z0dfdg� Z1dhdi� Z2djdk� Z3dldm� Z4dndo� Z5dpdq� Z6drds� Z7dtdu� Z8dvdw� Z9dxdy� Z:dzd{� Z;d|d}� Z<d�d~d�Z=d�d�� Z>g d�fd�d��Z?d�d�� Z@d�d�� ZAd�d�� ZBd�S )��
CGeneratorz� Uses the same visitor pattern as c_ast.NodeVisitor, but modified to
return a value from each visit method, using string accumulation in
generic_visit.
Fc C s d| _ || _dS )z� Constructs C-code generator
reduce_parentheses:
if True, eliminates needless parentheses on binary operators
� N)�indent_level�reduce_parentheses)�selfr � r �F/opt/nydus/tmp/pip-target-wkfpz8uv/lib/python/pycparser/c_generator.py�__init__ s zCGenerator.__init__c C s
d| j S �N� )r �r r r r �_make_indent s zCGenerator._make_indentc C s d|j j }t| || j�|�S )N�visit_)� __class__�__name__�getattr�
generic_visit)r �node�methodr r r �visit s zCGenerator.visitc s, |d u rdS d� � fdd�|�� D ��S d S )N� c 3 s | ]\}}� � |�V qd S �N�r )�.0Zc_name�cr
r r � <genexpr>'