3
g¨wU5 ã @ s d dl mZ G dd„ deƒZdS )é )Úc_astc @ s¸ e Zd ZdZdd„ Zdd„ Zdd„ Zdd „ Zd
d„ Zdd
„ Z dd„ Z
dd„ Zdd„ Zdd„ Z
dd„ Zdd„ Zdd„ Zdd„ Zdldd „Zd!d"„ Zd#d$„ Zd%d&„ Zd'd(„ Zd)d*„ Zd+d,„ Zd-d.„ Zd/d0„ Zd1d2„ Zd3d4„ Zd5d6„ Zd7d8„ Zd9d:„ Zd;d<„ Z d=d>„ Z!d?d@„ Z"dAdB„ Z#dCdD„ Z$dEdF„ Z%dGdH„ Z&dIdJ„ Z'dKdL„ Z(dMdN„ Z)dOdP„ Z*dQdR„ Z+dSdT„ Z,dUdV„ Z-dWdX„ Z.dYdZ„ Z/d[d\„ Z0d]d^„ Z1dmd_d`„Z2dadb„ Z3g fdcdd„Z4dedf„ Z5dgdh„ Z6didj„ Z7dkS )nÚ
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.
c C s
d| _ d S )Né )Úindent_level)Úself© r ú!/usr/lib/python3.6/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 )NZvisit_)Ú __class__Ú__name__ÚgetattrÚ
generic_visit)r ÚnodeÚmethodr r r Úvisit s zCGenerator.visitc s, |d krdS dj ‡ fdd„|jƒ D ƒƒS d S )NÚ c 3 s | ]\}}ˆ j |ƒV qd S )N)r )Ú.0Zc_nameÚc)r r r ú