o
    Þý°jº€  ã                   @   sX  d dl Z d dlmZmZmZmZ dd„ ZG dd„ dƒZG dd„ dƒZG d	d
„ d
eƒZ	G dd„ deƒZ
G dd„ deƒZG dd„ deƒZG dd„ deƒZG dd„ deƒZG dd„ deƒZG dd„ deƒZG dd„ deƒZG dd„ deƒZG dd„ deƒZG dd „ d eƒZG d!d"„ d"eƒZG d#d$„ d$eƒZG d%d&„ d&eƒZG d'd(„ d(eƒZG d)d*„ d*eƒZG d+d,„ d,eƒZG d-d.„ d.eƒZG d/d0„ d0eƒZG d1d2„ d2eƒZG d3d4„ d4eƒZG d5d6„ d6eƒZG d7d8„ d8eƒZ G d9d:„ d:eƒZ!G d;d<„ d<eƒZ"G d=d>„ d>eƒZ#G d?d@„ d@eƒZ$G dAdB„ dBeƒZ%G dCdD„ dDeƒZ&G dEdF„ dFeƒZ'G dGdH„ dHeƒZ(G dIdJ„ dJeƒZ)G dKdL„ dLeƒZ*G dMdN„ dNeƒZ+G dOdP„ dPeƒZ,G dQdR„ dReƒZ-G dSdT„ dTeƒZ.G dUdV„ dVeƒZ/G dWdX„ dXeƒZ0G dYdZ„ dZeƒZ1G d[d\„ d\eƒZ2G d]d^„ d^eƒZ3G d_d`„ d`eƒZ4G dadb„ dbeƒZ5G dcdd„ ddeƒZ6G dedf„ dfeƒZ7G dgdh„ dheƒZ8G didj„ djeƒZ9dS )ké    N)ÚAnyÚClassVarÚIOÚOptionalc                 C   s.   t | tƒrdd dd„ | D ƒ¡ d S t| ƒS )z[
    Get the representation of an object, with dedicated pprint-like format for lists.
    ú[z,
 c                 s   s    � | ]}t |ƒ d d¡V  qdS )Ú
ú
 N)Ú_reprÚreplace)Ú.0Úe© r   ú‚/root/aizidognhua/tmp/workspace/projects/ec89d86c-575f-41c9-af57-ac45cbdbf775/venv/lib/python3.10/site-packages/pycparser/c_ast.pyÚ	<genexpr>   s   € z_repr.<locals>.<genexpr>z
])Ú
isinstanceÚlistÚjoinÚrepr)Úobjr   r   r   r	      s   
r	   c                   @   sˆ   e Zd ZU dZ	 dZeeedf  ed< e	e
 ed< dd„ Zdd„ Zejd	d
dd
d
dfdee dededededede	e fdd„ZdS )ÚNoder   .Ú
attr_namesÚcoordc                 C   sš   | j jd }d}d}| jdd… D ]3}||7 }||7 }||d tt| |ƒƒ dddt|ƒt| j jƒ   ¡ 7 }d	}d
dt| j jƒ  }q||d 7 }|S )z5Generates a python representation of the current nodeú(Ú Néþÿÿÿú=r   z
  ú ú,r   ú))Ú	__class__Ú__name__Ú	__slots__r	   Úgetattrr
   Úlen)ÚselfÚresultÚindentÚ	separatorÚnamer   r   r   Ú__repr__'   s(   ÿþýÿzNode.__repr__c                 C   ó   dS )z)A sequence of all children that are NodesNr   ©r$   r   r   r   ÚchildrenB   s   zNode.childrenr   FTNÚbufÚoffsetÚ	attrnamesÚshowemptyattrsÚ	nodenamesÚ	showcoordÚ_my_node_namec              
      sü   d| }|r|dur|  |ˆjj d | d ¡ n|  |ˆjj d ¡ ˆjrTdd„ ‰ ‡ ‡‡fdd	„ˆjD ƒ}	|rEd
 dd„ |	D ƒ¡}
n
d
 dd„ |	D ƒ¡}
|  |
¡ |r`|  dˆj› d�¡ |  d¡ ˆ ¡ D ]\}}|j||d |ˆ|||d� qidS )a´  Pretty print the Node and all its attributes and
        children (recursively) to a buffer.

        buf:
            Open IO buffer into which the Node is printed.

        offset:
            Initial offset (amount of leading spaces)

        attrnames:
            True if you want to see the attribute names in
            name=value pairs. False to only see the values.

        showemptyattrs:
            False if you want to suppress printing empty attributes.

        nodenames:
            True if you want to see the actual node names
            within their parents.

        showcoord:
            Do you want the coordinates of each Node to be
            displayed.
        r   Nz <z>: z: c                 S   s.   | d u pt | dƒot| ƒdk d S  d S  d S )NÚ__len__r   )Úhasattrr#   )Úvr   r   r   Úis_emptyp   s   .zNode.show.<locals>.is_emptyc                    s,   g | ]}ˆsˆ t ˆ|ƒƒs|t ˆ|ƒf‘qS r   )r"   )r   Ún©r7   r$   r0   r   r   Ú
<listcomp>s   s    ýýÿzNode.show.<locals>.<listcomp>z, c                 s   s"   � | ]\}}|› d |› �V  qdS )r   Nr   )r   r(   Úvaluer   r   r   r   y   s   €  zNode.show.<locals>.<genexpr>c                 s   s   � | ]\}}|› V  qd S ©Nr   )r   Ú_r;   r   r   r   r   {   s   € z (at r   r   é   )r.   r/   r0   r1   r2   r3   )Úwriter   r    r   r   r   r,   Úshow)r$   r-   r.   r/   r0   r1   r2   r3   ÚleadÚnvlistÚattrstrÚ
child_nameÚchildr   r9   r   r@   F   s6   " þ

ùÿz	Node.show)r    Ú
__module__Ú__qualname__r!   r   r   ÚtupleÚstrÚ__annotations__r   r   r)   r,   ÚsysÚstdoutr   ÚintÚboolr@   r   r   r   r   r       s:   
 øþýüûúùør   c                   @   s0   e Zd ZdZdZdefdd„Zdefdd„ZdS )ÚNodeVisitoraÐ  A base NodeVisitor class for visiting c_ast nodes.
    Subclass it and define your own visit_XXX methods, where
    XXX is the class name you want to visit with these
    methods.

    For example:

    class ConstantVisitor(NodeVisitor):
        def __init__(self):
            self.values = []

        def visit_Constant(self, node):
            self.values.append(node.value)

    Creates a list of values of all the constant nodes
    encountered below the given node. To use it:

    cv = ConstantVisitor()
    cv.visit(node)

    Notes:

    *   generic_visit() will be called for AST nodes for which
        no visit_XXX method was defined.
    *   The children of nodes for which a visit_XXX was
        defined will not be visited - if you need this, call
        generic_visit() on the node.
        You can use:
            NodeVisitor.generic_visit(self, node)
    *   Modeled after Python's own AST visiting facilities
        (the ast module of Python 3.0)
    NÚnodec                 C   sZ   | j du ri | _ | j  |jjd¡}|du r)d|jj }t| || jƒ}|| j |jj< ||ƒS )zVisit a node.NÚvisit_)Ú_method_cacheÚgetr   r    r"   Úgeneric_visit)r$   rP   ÚvisitorÚmethodr   r   r   Úvisit²   s   
zNodeVisitor.visitc                 C   s    |  ¡ D ]	\}}|  |¡ qdS )ztCalled if no explicit visitor function exists for a
        node. Implements preorder visiting of the node.
        N)r,   rW   )r$   rP   r=   Úcr   r   r   rT   À   s   ÿzNodeVisitor.generic_visit)r    rF   rG   Ú__doc__rR   r   rW   rT   r   r   r   r   rO   Ž   s
    !rO   c                   @   ó.   e Zd ZdZd
dd„Zdd„ Zdd„ Zd	ZdS )Ú	ArrayDecl)ÚtypeÚdimÚ	dim_qualsr   Ú__weakref__Nc                 C   ó   || _ || _|| _|| _d S r<   )r\   r]   r^   r   )r$   r\   r]   r^   r   r   r   r   Ú__init__Ë   ó   
zArrayDecl.__init__c                 C   ó@   g }| j d ur| d| j f¡ | jd ur| d| jf¡ t|ƒS )Nr\   r]   )r\   Úappendr]   rH   ©r$   Únodelistr   r   r   r,   Ñ   ó   

zArrayDecl.childrenc                 c   ó.   � | j d ur
| j V  | jd ur| jV  d S d S r<   )r\   r]   r+   r   r   r   Ú__iter__Ù   ó   €

ÿzArrayDecl.__iter__)r^   r<   ©r    rF   rG   r!   ra   r,   ri   r   r   r   r   r   r[   È   ó    
r[   c                   @   rZ   )ÚArrayRef)r(   Ú	subscriptr   r_   Nc                 C   ó   || _ || _|| _d S r<   )r(   rn   r   )r$   r(   rn   r   r   r   r   ra   å   ó   
zArrayRef.__init__c                 C   rc   )Nr(   rn   )r(   rd   rn   rH   re   r   r   r   r,   ê   rg   zArrayRef.childrenc                 c   rh   r<   )r(   rn   r+   r   r   r   ri   ò   rj   zArrayRef.__iter__r   r<   rk   r   r   r   r   rm   â   ó    
rm   c                   @   rZ   )Ú
Assignment)ÚopÚlvalueÚrvaluer   r_   Nc                 C   r`   r<   )rs   rt   ru   r   )r$   rs   rt   ru   r   r   r   r   ra   þ   rb   zAssignment.__init__c                 C   rc   )Nrt   ru   )rt   rd   ru   rH   re   r   r   r   r,     rg   zAssignment.childrenc                 c   rh   r<   )rt   ru   r+   r   r   r   ri     rj   zAssignment.__iter__©rs   r<   rk   r   r   r   r   rr   û   rl   rr   c                   @   rZ   )ÚAlignas)Ú	alignmentr   r_   Nc                 C   ó   || _ || _d S r<   )rx   r   )r$   rx   r   r   r   r   ra     ó   
zAlignas.__init__c                 C   ó&   g }| j d ur| d| j f¡ t|ƒS )Nrx   )rx   rd   rH   re   r   r   r   r,     ó   
zAlignas.childrenc                 c   ó   � | j d ur| j V  d S d S r<   )rx   r+   r   r   r   ri   "  ó   €
ÿzAlignas.__iter__r   r<   rk   r   r   r   r   rw     ó    
rw   c                   @   rZ   )ÚBinaryOp)rs   ÚleftÚrightr   r_   Nc                 C   r`   r<   )rs   r�   r‚   r   )r$   rs   r�   r‚   r   r   r   r   ra   ,  rb   zBinaryOp.__init__c                 C   rc   )Nr�   r‚   )r�   rd   r‚   rH   re   r   r   r   r,   2  rg   zBinaryOp.childrenc                 c   rh   r<   )r�   r‚   r+   r   r   r   ri   :  rj   zBinaryOp.__iter__rv   r<   rk   r   r   r   r   r€   )  rl   r€   c                   @   rZ   )ÚBreak©r   r_   Nc                 C   ó
   || _ d S r<   ©r   ©r$   r   r   r   r   ra   F  ó   
zBreak.__init__c                 C   r*   ©Nr   r   r+   r   r   r   r,   I  ó   zBreak.childrenc                 c   ó   � d S r<   r   r+   r   r   r   ri   L  ó   €zBreak.__iter__r   r<   rk   r   r   r   r   rƒ   C  ó    
rƒ   c                   @   rZ   )ÚCase)ÚexprÚstmtsr   r_   Nc                 C   ro   r<   )r�   r�   r   )r$   r�   r�   r   r   r   r   ra   V  rp   zCase.__init__c                 C   óT   g }| j d ur| d| j f¡ t| jpg ƒD ]\}}| d|› d�|f¡ qt|ƒS )Nr�   ústmts[ú])r�   rd   Ú	enumerater�   rH   ©r$   rf   ÚirE   r   r   r   r,   [  ó   
zCase.childrenc                 c   ó.   � | j d ur
| j V  | jpg D ]}|V  qd S r<   )r�   r�   ©r$   rE   r   r   r   ri   c  ó   €
ÿzCase.__iter__r   r<   rk   r   r   r   r   rŽ   S  rq   rŽ   c                   @   rZ   )ÚCast)Úto_typer�   r   r_   Nc                 C   ro   r<   )rœ   r�   r   )r$   rœ   r�   r   r   r   r   ra   o  rp   zCast.__init__c                 C   rc   )Nrœ   r�   )rœ   rd   r�   rH   re   r   r   r   r,   t  rg   zCast.childrenc                 c   rh   r<   )rœ   r�   r+   r   r   r   ri   |  rj   zCast.__iter__r   r<   rk   r   r   r   r   r›   l  rq   r›   c                   @   rZ   )ÚCompound)Úblock_itemsr   r_   Nc                 C   ry   r<   )rž   r   )r$   rž   r   r   r   r   ra   ˆ  rz   zCompound.__init__c                 C   ó:   g }t | jpg ƒD ]\}}| d|› d�|f¡ q	t|ƒS )Nzblock_items[r“   )r”   rž   rd   rH   r•   r   r   r   r,   Œ  ó   zCompound.childrenc                 c   ó   � | j pg D ]}|V  qd S r<   )rž   r™   r   r   r   ri   ’  ó   €ÿzCompound.__iter__r   r<   rk   r   r   r   r   r�   …  r   r�   c                   @   rZ   )ÚCompoundLiteral)r\   Úinitr   r_   Nc                 C   ro   r<   )r\   r¤   r   )r$   r\   r¤   r   r   r   r   ra   œ  rp   zCompoundLiteral.__init__c                 C   rc   )Nr\   r¤   )r\   rd   r¤   rH   re   r   r   r   r,   ¡  rg   zCompoundLiteral.childrenc                 c   rh   r<   )r\   r¤   r+   r   r   r   ri   ©  rj   zCompoundLiteral.__iter__r   r<   rk   r   r   r   r   r£   ™  rq   r£   c                   @   rZ   )ÚConstant)r\   r;   r   r_   Nc                 C   ro   r<   )r\   r;   r   )r$   r\   r;   r   r   r   r   ra   µ  rp   zConstant.__init__c                 C   ó   g }t |ƒS r<   ©rH   re   r   r   r   r,   º  ó   zConstant.childrenc                 c   r‹   r<   r   r+   r   r   r   ri   ¾  rŒ   zConstant.__iter__)r\   r;   r<   rk   r   r   r   r   r¥   ²  s    
r¥   c                   @   rZ   )ÚContinuer„   Nc                 C   r…   r<   r†   r‡   r   r   r   ra   Ë  rˆ   zContinue.__init__c                 C   r*   r‰   r   r+   r   r   r   r,   Î  rŠ   zContinue.childrenc                 c   r‹   r<   r   r+   r   r   r   ri   Ñ  rŒ   zContinue.__iter__r   r<   rk   r   r   r   r   r©   È  r�   r©   c                   @   s0   e Zd ZdZ	d
dd„Zdd„ Zdd„ Zd	ZdS )ÚDecl)
r(   ÚqualsÚalignÚstorageÚfuncspecr\   r¤   Úbitsizer   r_   Nc
           
      C   s:   || _ || _|| _|| _|| _|| _|| _|| _|	| _d S r<   )	r(   r«   r¬   r­   r®   r\   r¤   r¯   r   )
r$   r(   r«   r¬   r­   r®   r\   r¤   r¯   r   r   r   r   ra   æ  s   
zDecl.__init__c                 C   óZ   g }| j d ur| d| j f¡ | jd ur| d| jf¡ | jd ur)| d| jf¡ t|ƒS )Nr\   r¤   r¯   )r\   rd   r¤   r¯   rH   re   r   r   r   r,   ó  ó   


zDecl.childrenc                 c   ó@   � | j d ur
| j V  | jd ur| jV  | jd ur| jV  d S d S r<   )r\   r¤   r¯   r+   r   r   r   ri   ý  ó   €


ÿzDecl.__iter__)r(   r«   r¬   r­   r®   r<   rk   r   r   r   r   rª   Ø  s    
ÿ
rª   c                   @   rZ   )ÚDeclList)Údeclsr   r_   Nc                 C   ry   r<   )rµ   r   )r$   rµ   r   r   r   r   ra     rz   zDeclList.__init__c                 C   rŸ   ©Nzdecls[r“   ©r”   rµ   rd   rH   r•   r   r   r   r,     r    zDeclList.childrenc                 c   r¡   r<   ©rµ   r™   r   r   r   ri     r¢   zDeclList.__iter__r   r<   rk   r   r   r   r   r´     r   r´   c                   @   rZ   )ÚDefault)r�   r   r_   Nc                 C   ry   r<   )r�   r   )r$   r�   r   r   r   r   ra   %  rz   zDefault.__init__c                 C   rŸ   )Nr’   r“   )r”   r�   rd   rH   r•   r   r   r   r,   )  r    zDefault.childrenc                 c   r¡   r<   )r�   r™   r   r   r   ri   /  r¢   zDefault.__iter__r   r<   rk   r   r   r   r   r¹   "  r   r¹   c                   @   rZ   )ÚDoWhile©ÚcondÚstmtr   r_   Nc                 C   ro   r<   ©r¼   r½   r   ©r$   r¼   r½   r   r   r   r   ra   9  rp   zDoWhile.__init__c                 C   rc   ©Nr¼   r½   ©r¼   rd   r½   rH   re   r   r   r   r,   >  rg   zDoWhile.childrenc                 c   rh   r<   ©r¼   r½   r+   r   r   r   ri   F  rj   zDoWhile.__iter__r   r<   rk   r   r   r   r   rº   6  rq   rº   c                   @   rZ   )ÚEllipsisParamr„   Nc                 C   r…   r<   r†   r‡   r   r   r   ra   R  rˆ   zEllipsisParam.__init__c                 C   r*   r‰   r   r+   r   r   r   r,   U  rŠ   zEllipsisParam.childrenc                 c   r‹   r<   r   r+   r   r   r   ri   X  rŒ   zEllipsisParam.__iter__r   r<   rk   r   r   r   r   rÃ   O  r�   rÃ   c                   @   rZ   )ÚEmptyStatementr„   Nc                 C   r…   r<   r†   r‡   r   r   r   ra   b  rˆ   zEmptyStatement.__init__c                 C   r*   r‰   r   r+   r   r   r   r,   e  rŠ   zEmptyStatement.childrenc                 c   r‹   r<   r   r+   r   r   r   ri   h  rŒ   zEmptyStatement.__iter__r   r<   rk   r   r   r   r   rÄ   _  r�   rÄ   c                   @   rZ   )ÚEnum)r(   Úvaluesr   r_   Nc                 C   ro   r<   )r(   rÆ   r   )r$   r(   rÆ   r   r   r   r   ra   r  rp   zEnum.__init__c                 C   r{   )NrÆ   )rÆ   rd   rH   re   r   r   r   r,   w  r|   zEnum.childrenc                 c   r}   r<   )rÆ   r+   r   r   r   ri   }  r~   zEnum.__iter__©r(   r<   rk   r   r   r   r   rÅ   o  ó    
rÅ   c                   @   rZ   )Ú
Enumerator)r(   r;   r   r_   Nc                 C   ro   r<   )r(   r;   r   )r$   r(   r;   r   r   r   r   ra   ‡  rp   zEnumerator.__init__c                 C   r{   )Nr;   )r;   rd   rH   re   r   r   r   r,   Œ  r|   zEnumerator.childrenc                 c   r}   r<   )r;   r+   r   r   r   ri   ’  r~   zEnumerator.__iter__rÇ   r<   rk   r   r   r   r   rÉ   „  rÈ   rÉ   c                   @   rZ   )ÚEnumeratorList)Úenumeratorsr   r_   Nc                 C   ry   r<   )rË   r   )r$   rË   r   r   r   r   ra   œ  rz   zEnumeratorList.__init__c                 C   rŸ   )Nzenumerators[r“   )r”   rË   rd   rH   r•   r   r   r   r,      r    zEnumeratorList.childrenc                 c   r¡   r<   )rË   r™   r   r   r   ri   ¦  r¢   zEnumeratorList.__iter__r   r<   rk   r   r   r   r   rÊ   ™  r   rÊ   c                   @   rZ   )ÚExprList©Úexprsr   r_   Nc                 C   ry   r<   ©rÎ   r   ©r$   rÎ   r   r   r   r   ra   °  rz   zExprList.__init__c                 C   rŸ   ©Nzexprs[r“   ©r”   rÎ   rd   rH   r•   r   r   r   r,   ´  r    zExprList.childrenc                 c   r¡   r<   ©rÎ   r™   r   r   r   ri   º  r¢   zExprList.__iter__r   r<   rk   r   r   r   r   rÌ   ­  r   rÌ   c                   @   rZ   )ÚFileAST)Úextr   r_   Nc                 C   ry   r<   )rÕ   r   )r$   rÕ   r   r   r   r   ra   Ä  rz   zFileAST.__init__c                 C   rŸ   )Nzext[r“   )r”   rÕ   rd   rH   r•   r   r   r   r,   È  r    zFileAST.childrenc                 c   r¡   r<   )rÕ   r™   r   r   r   ri   Î  r¢   zFileAST.__iter__r   r<   rk   r   r   r   r   rÔ   Á  r   rÔ   c                   @   rZ   )ÚFor)r¤   r¼   Únextr½   r   r_   Nc                 C   ó"   || _ || _|| _|| _|| _d S r<   )r¤   r¼   r×   r½   r   )r$   r¤   r¼   r×   r½   r   r   r   r   ra   Ø  ó
   
zFor.__init__c                 C   st   g }| j d ur| d| j f¡ | jd ur| d| jf¡ | jd ur)| d| jf¡ | jd ur6| d| jf¡ t|ƒS )Nr¤   r¼   r×   r½   )r¤   rd   r¼   r×   r½   rH   re   r   r   r   r,   ß  s   



zFor.childrenc                 c   sR   � | j d ur
| j V  | jd ur| jV  | jd ur| jV  | jd ur'| jV  d S d S r<   )r¤   r¼   r×   r½   r+   r   r   r   ri   ë  s   €



ÿzFor.__iter__r   r<   rk   r   r   r   r   rÖ   Õ  s    

rÖ   c                   @   rZ   )ÚFuncCall)r(   Úargsr   r_   Nc                 C   ro   r<   )r(   rÛ   r   )r$   r(   rÛ   r   r   r   r   ra   û  rp   zFuncCall.__init__c                 C   rc   )Nr(   rÛ   )r(   rd   rÛ   rH   re   r   r   r   r,      rg   zFuncCall.childrenc                 c   rh   r<   )r(   rÛ   r+   r   r   r   ri     rj   zFuncCall.__iter__r   r<   rk   r   r   r   r   rÚ   ø  rq   rÚ   c                   @   rZ   )ÚFuncDecl)rÛ   r\   r   r_   Nc                 C   ro   r<   )rÛ   r\   r   )r$   rÛ   r\   r   r   r   r   ra     rp   zFuncDecl.__init__c                 C   rc   )NrÛ   r\   )rÛ   rd   r\   rH   re   r   r   r   r,     rg   zFuncDecl.childrenc                 c   rh   r<   )rÛ   r\   r+   r   r   r   ri   !  rj   zFuncDecl.__iter__r   r<   rk   r   r   r   r   rÜ     rq   rÜ   c                   @   rZ   )ÚFuncDef)ÚdeclÚparam_declsÚbodyr   r_   Nc                 C   r`   r<   )rÞ   rß   rà   r   )r$   rÞ   rß   rà   r   r   r   r   ra   -  rb   zFuncDef.__init__c                 C   sn   g }| j d ur| d| j f¡ | jd ur| d| jf¡ t| jp!g ƒD ]\}}| d|› d�|f¡ q#t|ƒS )NrÞ   rà   zparam_decls[r“   )rÞ   rd   rà   r”   rß   rH   r•   r   r   r   r,   3  s   

zFuncDef.childrenc                 c   s@   � | j d ur
| j V  | jd ur| jV  | jpg D ]}|V  qd S r<   )rÞ   rà   rß   r™   r   r   r   ri   =  s   €

ÿzFuncDef.__iter__r   r<   rk   r   r   r   r   rÝ   *  ó    

rÝ   c                   @   rZ   )ÚGoto©r(   r   r_   Nc                 C   ry   r<   ©r(   r   ©r$   r(   r   r   r   r   ra   K  rz   zGoto.__init__c                 C   r¦   r<   r§   re   r   r   r   r,   O  r¨   zGoto.childrenc                 c   r‹   r<   r   r+   r   r   r   ri   S  rŒ   zGoto.__iter__rÇ   r<   rk   r   r   r   r   râ   H  ó    
râ   c                   @   rZ   )ÚIDrã   Nc                 C   ry   r<   rä   rå   r   r   r   ra   ]  rz   zID.__init__c                 C   r¦   r<   r§   re   r   r   r   r,   a  r¨   zID.childrenc                 c   r‹   r<   r   r+   r   r   r   ri   e  rŒ   zID.__iter__rÇ   r<   rk   r   r   r   r   rç   Z  ræ   rç   c                   @   rZ   )ÚIdentifierType)Únamesr   r_   Nc                 C   ry   r<   )ré   r   )r$   ré   r   r   r   r   ra   o  rz   zIdentifierType.__init__c                 C   r¦   r<   r§   re   r   r   r   r,   s  r¨   zIdentifierType.childrenc                 c   r‹   r<   r   r+   r   r   r   ri   w  rŒ   zIdentifierType.__iter__)ré   r<   rk   r   r   r   r   rè   l  ræ   rè   c                   @   rZ   )ÚIf©r¼   ÚiftrueÚiffalser   r_   Nc                 C   r`   r<   ©r¼   rì   rí   r   ©r$   r¼   rì   rí   r   r   r   r   ra   �  rb   zIf.__init__c                 C   r°   ©Nr¼   rì   rí   ©r¼   rd   rì   rí   rH   re   r   r   r   r,   ‡  r±   zIf.childrenc                 c   r²   r<   ©r¼   rì   rí   r+   r   r   r   ri   ‘  r³   zIf.__iter__r   r<   rk   r   r   r   r   rê   ~  rá   rê   c                   @   rZ   )ÚInitListrÍ   Nc                 C   ry   r<   rÏ   rÐ   r   r   r   ra   Ÿ  rz   zInitList.__init__c                 C   rŸ   rÑ   rÒ   r•   r   r   r   r,   £  r    zInitList.childrenc                 c   r¡   r<   rÓ   r™   r   r   r   ri   ©  r¢   zInitList.__iter__r   r<   rk   r   r   r   r   ró   œ  r   ró   c                   @   rZ   )ÚLabel)r(   r½   r   r_   Nc                 C   ro   r<   )r(   r½   r   )r$   r(   r½   r   r   r   r   ra   ³  rp   zLabel.__init__c                 C   r{   )Nr½   )r½   rd   rH   re   r   r   r   r,   ¸  r|   zLabel.childrenc                 c   r}   r<   )r½   r+   r   r   r   ri   ¾  r~   zLabel.__iter__rÇ   r<   rk   r   r   r   r   rô   °  rÈ   rô   c                   @   rZ   )ÚNamedInitializer)r(   r�   r   r_   Nc                 C   ro   r<   )r(   r�   r   )r$   r(   r�   r   r   r   r   ra   È  rp   zNamedInitializer.__init__c                 C   r‘   )Nr�   zname[r“   )r�   rd   r”   r(   rH   r•   r   r   r   r,   Í  r—   zNamedInitializer.childrenc                 c   r˜   r<   )r�   r(   r™   r   r   r   ri   Õ  rš   zNamedInitializer.__iter__r   r<   rk   r   r   r   r   rõ   Å  rq   rõ   c                   @   rZ   )Ú	ParamList)Úparamsr   r_   Nc                 C   ry   r<   )r÷   r   )r$   r÷   r   r   r   r   ra   á  rz   zParamList.__init__c                 C   rŸ   )Nzparams[r“   )r”   r÷   rd   rH   r•   r   r   r   r,   å  r    zParamList.childrenc                 c   r¡   r<   )r÷   r™   r   r   r   ri   ë  r¢   zParamList.__iter__r   r<   rk   r   r   r   r   rö   Þ  r   rö   c                   @   rZ   )ÚPtrDecl)r«   r\   r   r_   Nc                 C   ro   r<   )r«   r\   r   )r$   r«   r\   r   r   r   r   ra   õ  rp   zPtrDecl.__init__c                 C   r{   ©Nr\   ©r\   rd   rH   re   r   r   r   r,   ú  r|   zPtrDecl.childrenc                 c   r}   r<   ©r\   r+   r   r   r   ri      r~   zPtrDecl.__iter__)r«   r<   rk   r   r   r   r   rø   ò  rÈ   rø   c                   @   rZ   )ÚReturn)r�   r   r_   Nc                 C   ry   r<   )r�   r   )r$   r�   r   r   r   r   ra   
  rz   zReturn.__init__c                 C   r{   ©Nr�   ©r�   rd   rH   re   r   r   r   r,     r|   zReturn.childrenc                 c   r}   r<   ©r�   r+   r   r   r   ri     r~   zReturn.__iter__r   r<   rk   r   r   r   r   rü     r   rü   c                   @   rZ   )ÚStaticAssert)r¼   Úmessager   r_   Nc                 C   ro   r<   )r¼   r  r   )r$   r¼   r  r   r   r   r   ra     rp   zStaticAssert.__init__c                 C   rc   )Nr¼   r  )r¼   rd   r  rH   re   r   r   r   r,   #  rg   zStaticAssert.childrenc                 c   rh   r<   )r¼   r  r+   r   r   r   ri   +  rj   zStaticAssert.__iter__r   r<   rk   r   r   r   r   r     rq   r   c                   @   rZ   )ÚStruct©r(   rµ   r   r_   Nc                 C   ro   r<   ©r(   rµ   r   ©r$   r(   rµ   r   r   r   r   ra   7  rp   zStruct.__init__c                 C   rŸ   r¶   r·   r•   r   r   r   r,   <  r    zStruct.childrenc                 c   r¡   r<   r¸   r™   r   r   r   ri   B  r¢   zStruct.__iter__rÇ   r<   rk   r   r   r   r   r  4  rÈ   r  c                   @   rZ   )Ú	StructRef)r(   r\   Úfieldr   r_   Nc                 C   r`   r<   )r(   r\   r  r   )r$   r(   r\   r  r   r   r   r   ra   L  rb   zStructRef.__init__c                 C   rc   )Nr(   r  )r(   rd   r  rH   re   r   r   r   r,   R  rg   zStructRef.childrenc                 c   rh   r<   )r(   r  r+   r   r   r   ri   Z  rj   zStructRef.__iter__rû   r<   rk   r   r   r   r   r  I  rl   r  c                   @   rZ   )ÚSwitchr»   Nc                 C   ro   r<   r¾   r¿   r   r   r   ra   f  rp   zSwitch.__init__c                 C   rc   rÀ   rÁ   re   r   r   r   r,   k  rg   zSwitch.childrenc                 c   rh   r<   rÂ   r+   r   r   r   ri   s  rj   zSwitch.__iter__r   r<   rk   r   r   r   r   r  c  rq   r  c                   @   rZ   )Ú	TernaryOprë   Nc                 C   r`   r<   rî   rï   r   r   r   ra     rb   zTernaryOp.__init__c                 C   r°   rð   rñ   re   r   r   r   r,   …  r±   zTernaryOp.childrenc                 c   r²   r<   rò   r+   r   r   r   ri   �  r³   zTernaryOp.__iter__r   r<   rk   r   r   r   r   r	  |  rá   r	  c                   @   rZ   )ÚTypeDecl)Údeclnamer«   r¬   r\   r   r_   Nc                 C   rØ   r<   )r  r«   r¬   r\   r   )r$   r  r«   r¬   r\   r   r   r   r   ra   �  rÙ   zTypeDecl.__init__c                 C   r{   rù   rú   re   r   r   r   r,   ¤  r|   zTypeDecl.childrenc                 c   r}   r<   rû   r+   r   r   r   ri   ª  r~   zTypeDecl.__iter__)r  r«   r¬   r<   rk   r   r   r   r   r
  š  ó    
r
  c                   @   rZ   )ÚTypedef)r(   r«   r­   r\   r   r_   Nc                 C   rØ   r<   )r(   r«   r­   r\   r   )r$   r(   r«   r­   r\   r   r   r   r   ra   ¸  rÙ   zTypedef.__init__c                 C   r{   rù   rú   re   r   r   r   r,   ¿  r|   zTypedef.childrenc                 c   r}   r<   rû   r+   r   r   r   ri   Å  r~   zTypedef.__iter__)r(   r«   r­   r<   rk   r   r   r   r   r  µ  r  r  c                   @   rZ   )ÚTypename)r(   r«   r¬   r\   r   r_   Nc                 C   rØ   r<   )r(   r«   r¬   r\   r   )r$   r(   r«   r¬   r\   r   r   r   r   ra   Ó  rÙ   zTypename.__init__c                 C   r{   rù   rú   re   r   r   r   r,   Ú  r|   zTypename.childrenc                 c   r}   r<   rû   r+   r   r   r   ri   à  r~   zTypename.__iter__)r(   r«   r¬   r<   rk   r   r   r   r   r  Ð  r  r  c                   @   rZ   )ÚUnaryOp)rs   r�   r   r_   Nc                 C   ro   r<   )rs   r�   r   )r$   rs   r�   r   r   r   r   ra   î  rp   zUnaryOp.__init__c                 C   r{   rý   rþ   re   r   r   r   r,   ó  r|   zUnaryOp.childrenc                 c   r}   r<   rÿ   r+   r   r   r   ri   ù  r~   zUnaryOp.__iter__rv   r<   rk   r   r   r   r   r  ë  rÈ   r  c                   @   rZ   )ÚUnionr  Nc                 C   ro   r<   r  r  r   r   r   ra     rp   zUnion.__init__c                 C   rŸ   r¶   r·   r•   r   r   r   r,     r    zUnion.childrenc                 c   r¡   r<   r¸   r™   r   r   r   ri     r¢   zUnion.__iter__rÇ   r<   rk   r   r   r   r   r     rÈ   r  c                   @   rZ   )ÚWhiler»   Nc                 C   ro   r<   r¾   r¿   r   r   r   ra     rp   zWhile.__init__c                 C   rc   rÀ   rÁ   re   r   r   r   r,     rg   zWhile.childrenc                 c   rh   r<   rÂ   r+   r   r   r   ri   %  rj   zWhile.__iter__r   r<   rk   r   r   r   r   r    rq   r  c                   @   rZ   )ÚPragma)Ústringr   r_   Nc                 C   ry   r<   )r  r   )r$   r  r   r   r   r   ra   1  rz   zPragma.__init__c                 C   r¦   r<   r§   re   r   r   r   r,   5  r¨   zPragma.childrenc                 c   r‹   r<   r   r+   r   r   r   ri   9  rŒ   zPragma.__iter__)r  r<   rk   r   r   r   r   r  .  ræ   r  ):rK   Útypingr   r   r   r   r	   r   rO   r[   rm   rr   rw   r€   rƒ   rŽ   r›   r�   r£   r¥   r©   rª   r´   r¹   rº   rÃ   rÄ   rÅ   rÉ   rÊ   rÌ   rÔ   rÖ   rÚ   rÜ   rÝ   râ   rç   rè   rê   ró   rô   rõ   rö   rø   rü   r   r  r  r  r	  r
  r  r  r  r  r  r  r   r   r   r   Ú<module>   sl   
n:6#