a
    còfÕz  ã                   @   sD  d dl Z 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*d+„ d+eƒZG d,d-„ d-eƒZG d.d/„ d/eƒZG d0d1„ d1eƒZG d2d3„ d3eƒZG d4d5„ d5eƒZG d6d7„ d7eƒZG d8d9„ d9eƒZG d:d;„ d;eƒZG d<d=„ d=eƒZG d>d?„ d?eƒZ G d@dA„ dAeƒZ!G dBdC„ dCeƒZ"G dDdE„ dEeƒZ#G dFdG„ dGeƒZ$G dHdI„ dIeƒZ%G dJdK„ dKeƒZ&G dLdM„ dMeƒZ'G dNdO„ dOeƒZ(G dPdQ„ dQeƒZ)G dRdS„ dSeƒZ*G dTdU„ dUeƒZ+G dVdW„ dWeƒZ,G dXdY„ dYeƒZ-G dZd[„ d[eƒZ.G d\d]„ d]eƒZ/G d^d_„ d_eƒZ0G d`da„ daeƒZ1G dbdc„ dceƒZ2G ddde„ deeƒZ3G dfdg„ dgeƒZ4G dhdi„ dieƒZ5dS )jé    Nc                 C   s2   t | tƒr&dd dd„ | D ƒ¡ d S t| ƒS d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	   úL/home/httpd/docs/test/DocsMgr/lib/python3.9/site-packages/pycparser/c_ast.pyÚ	<genexpr>   ó    z_repr.<locals>.<genexpr>z
]N)Ú
isinstanceÚlistÚjoinÚrepr)Úobjr	   r	   r
   r      s    
r   c                   @   s8   e Zd ZdZdd„ Zdd„ Zejdddddfd	d
„ZdS )ÚNoder	   c                 C   sš   | j jd }d}d}| jdd… D ]f}||7 }||7 }||d tt| |ƒƒ dddt|ƒt| j jƒ   ¡ 7 }d	}d
dt| j jƒ  }q"||d 7 }|S )z? Generates 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   s   dS )z3 A sequence of all children that are Nodes
        Nr	   ©r   r	   r	   r
   Úchildren5   s    zNode.childrenr   FNc              	      sþ   d| }|r4|dur4|  |ˆ jj d | d ¡ n|  |ˆ jj d ¡ ˆ jr°|r~‡ fdd„ˆ jD ƒ}d d	d
„ |D ƒ¡}	n(‡ fdd„ˆ jD ƒ}
d dd
„ |
D ƒ¡}	|  |	¡ |rÄ|  dˆ j ¡ |  d¡ ˆ  ¡ D ]"\}}|j||d ||||d� qÖd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.

            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   g | ]}|t ˆ |ƒf‘qS r	   ©r   ©r   Únr%   r	   r
   Ú
<listcomp>X   r   zNode.show.<locals>.<listcomp>z, c                 s   s   | ]}d | V  qdS )z%s=%sNr	   )r   Únvr	   r	   r
   r   Y   r   zNode.show.<locals>.<genexpr>c                    s   g | ]}t ˆ |ƒ‘qS r	   r'   r(   r%   r	   r
   r*   [   r   c                 s   s   | ]}d | V  qdS )z%sNr	   )r   Úvr	   r	   r
   r   \   r   z (at %s)r   é   )ÚoffsetÚ	attrnamesÚ	nodenamesÚ	showcoordÚ_my_node_name)Úwriter   r   Ú
attr_namesr   Úcoordr&   Úshow)r   Úbufr.   r/   r0   r1   r2   ÚleadZnvlistZattrstrÚvlistZ
child_nameÚchildr	   r%   r
   r6   :   s.     

úz	Node.show)	r   Ú
__module__Ú__qualname__r   r$   r&   ÚsysÚstdoutr6   r	   r	   r	   r
   r      s   r   c                   @   s$   e Zd ZdZdZdd„ Z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)
    Nc                 C   sZ   | j du ri | _ | j  |jjd¡}|du rRd|jj }t| || jƒ}|| j |jj< ||ƒS )z Visit a node.
        NÚvisit_)Ú_method_cacheÚgetr   r   r   Úgeneric_visit)r   ÚnodeÚvisitorÚmethodr	   r	   r
   Úvisit‘   s    
zNodeVisitor.visitc                 C   s   |D ]}|   |¡ qdS )zy Called if no explicit visitor function exists for a
            node. Implements preorder visiting of the node.
        N)rG   )r   rD   Úcr	   r	   r
   rC       s    zNodeVisitor.generic_visit)r   r;   r<   Ú__doc__rA   rG   rC   r	   r	   r	   r
   r?   m   s   !r?   c                   @   s.   e Zd ZdZd
dd„Zdd„ Zdd„ Zd	ZdS )Ú	ArrayDecl)ÚtypeÚdimÚ	dim_qualsr5   Ú__weakref__Nc                 C   s   || _ || _|| _|| _d S ©N)rK   rL   rM   r5   )r   rK   rL   rM   r5   r	   r	   r
   Ú__init__©   s    zArrayDecl.__init__c                 C   s@   g }| j d ur| d| j f¡ | jd ur8| d| jf¡ t|ƒS )NrK   rL   )rK   ÚappendrL   Útuple©r   Únodelistr	   r	   r
   r&   ¯   s    zArrayDecl.childrenc                 c   s(   | j d ur| j V  | jd ur$| jV  d S rO   )rK   rL   r%   r	   r	   r
   Ú__iter__µ   s    

zArrayDecl.__iter__)rM   )N©r   r;   r<   r   rP   r&   rU   r4   r	   r	   r	   r
   rJ   §   s
   
rJ   c                   @   s.   e Zd ZdZd
dd„Zdd„ Zdd„ Zd	ZdS )ÚArrayRef)r#   Ú	subscriptr5   rN   Nc                 C   s   || _ || _|| _d S rO   )r#   rX   r5   )r   r#   rX   r5   r	   r	   r
   rP   ¿   s    zArrayRef.__init__c                 C   s@   g }| j d ur| d| j f¡ | jd ur8| d| jf¡ t|ƒS )Nr#   rX   )r#   rQ   rX   rR   rS   r	   r	   r
   r&   Ä   s    zArrayRef.childrenc                 c   s(   | j d ur| j V  | jd ur$| jV  d S rO   )r#   rX   r%   r	   r	   r
   rU   Ê   s    

zArrayRef.__iter__r	   )NrV   r	   r	   r	   r
   rW   ½   s
   
rW   c                   @   s.   e Zd ZdZd
dd„Zdd„ Zdd„ Zd	ZdS )Ú
Assignment)ÚopÚlvalueÚrvaluer5   rN   Nc                 C   s   || _ || _|| _|| _d S rO   )rZ   r[   r\   r5   )r   rZ   r[   r\   r5   r	   r	   r
   rP   Ô   s    zAssignment.__init__c                 C   s@   g }| j d ur| d| j f¡ | jd ur8| d| jf¡ t|ƒS )Nr[   r\   )r[   rQ   r\   rR   rS   r	   r	   r
   r&   Ú   s    zAssignment.childrenc                 c   s(   | j d ur| j V  | jd ur$| jV  d S rO   )r[   r\   r%   r	   r	   r
   rU   à   s    

zAssignment.__iter__©rZ   )NrV   r	   r	   r	   r
   rY   Ò   s
   
rY   c                   @   s.   e Zd ZdZd
dd„Zdd„ Zdd„ Zd	ZdS )ÚAlignas)Ú	alignmentr5   rN   Nc                 C   s   || _ || _d S rO   )r_   r5   )r   r_   r5   r	   r	   r
   rP   ê   s    zAlignas.__init__c                 C   s&   g }| j d ur| d| j f¡ t|ƒS )Nr_   )r_   rQ   rR   rS   r	   r	   r
   r&   î   s    zAlignas.childrenc                 c   s   | j d ur| j V  d S rO   )r_   r%   r	   r	   r
   rU   ó   s    
zAlignas.__iter__r	   )NrV   r	   r	   r	   r
   r^   è   s
   
r^   c                   @   s.   e Zd ZdZd
dd„Zdd„ Zdd„ Zd	ZdS )ÚBinaryOp)rZ   ÚleftÚrightr5   rN   Nc                 C   s   || _ || _|| _|| _d S rO   )rZ   ra   rb   r5   )r   rZ   ra   rb   r5   r	   r	   r
   rP   û   s    zBinaryOp.__init__c                 C   s@   g }| j d ur| d| j f¡ | jd ur8| d| jf¡ t|ƒS )Nra   rb   )ra   rQ   rb   rR   rS   r	   r	   r
   r&     s    zBinaryOp.childrenc                 c   s(   | j d ur| j V  | jd ur$| jV  d S rO   )ra   rb   r%   r	   r	   r
   rU     s    

zBinaryOp.__iter__r]   )NrV   r	   r	   r	   r
   r`   ù   s
   
r`   c                   @   s.   e Zd ZdZd
dd„Zdd„ Zdd„ Zd	ZdS )ÚBreak©r5   rN   Nc                 C   s
   || _ d S rO   ©r5   ©r   r5   r	   r	   r
   rP     s    zBreak.__init__c                 C   s   dS ©Nr	   r	   r%   r	   r	   r
   r&     s    zBreak.childrenc                 c   s   d S rO   r	   r%   r	   r	   r
   rU     s    zBreak.__iter__r	   )NrV   r	   r	   r	   r
   rc     s
   
rc   c                   @   s.   e Zd ZdZd
dd„Zdd„ Zdd„ Zd	ZdS )ÚCase)ÚexprÚstmtsr5   rN   Nc                 C   s   || _ || _|| _d S rO   )ri   rj   r5   )r   ri   rj   r5   r	   r	   r
   rP     s    zCase.__init__c                 C   sP   g }| j d ur| d| j f¡ t| jp(g ƒD ]\}}| d| |f¡ q,t|ƒS )Nri   ú	stmts[%d])ri   rQ   Ú	enumeraterj   rR   ©r   rT   Úir:   r	   r	   r
   r&   $  s
    zCase.childrenc                 c   s,   | j d ur| j V  | jpg D ]
}|V  qd S rO   )ri   rj   ©r   r:   r	   r	   r
   rU   +  s    
zCase.__iter__r	   )NrV   r	   r	   r	   r
   rh     s
   
rh   c                   @   s.   e Zd ZdZd
dd„Zdd„ Zdd„ Zd	ZdS )ÚCast)Úto_typeri   r5   rN   Nc                 C   s   || _ || _|| _d S rO   )rq   ri   r5   )r   rq   ri   r5   r	   r	   r
   rP   5  s    zCast.__init__c                 C   s@   g }| j d ur| d| j f¡ | jd ur8| d| jf¡ t|ƒS )Nrq   ri   )rq   rQ   ri   rR   rS   r	   r	   r
   r&   :  s    zCast.childrenc                 c   s(   | j d ur| j V  | jd ur$| jV  d S rO   )rq   ri   r%   r	   r	   r
   rU   @  s    

zCast.__iter__r	   )NrV   r	   r	   r	   r
   rp   3  s
   
rp   c                   @   s.   e Zd ZdZd
dd„Zdd„ Zdd„ Zd	ZdS )ÚCompound)Úblock_itemsr5   rN   Nc                 C   s   || _ || _d S rO   )rs   r5   )r   rs   r5   r	   r	   r
   rP   J  s    zCompound.__init__c                 C   s6   g }t | jpg ƒD ]\}}| d| |f¡ qt|ƒS )Nzblock_items[%d])rl   rs   rQ   rR   rm   r	   r	   r
   r&   N  s    zCompound.childrenc                 c   s   | j pg D ]
}|V  q
d S rO   )rs   ro   r	   r	   r
   rU   T  s    zCompound.__iter__r	   )NrV   r	   r	   r	   r
   rr   H  s
   
rr   c                   @   s.   e Zd ZdZd
dd„Zdd„ Zdd„ Zd	ZdS )ÚCompoundLiteral)rK   Úinitr5   rN   Nc                 C   s   || _ || _|| _d S rO   )rK   ru   r5   )r   rK   ru   r5   r	   r	   r
   rP   \  s    zCompoundLiteral.__init__c                 C   s@   g }| j d ur| d| j f¡ | jd ur8| d| jf¡ t|ƒS )NrK   ru   )rK   rQ   ru   rR   rS   r	   r	   r
   r&   a  s    zCompoundLiteral.childrenc                 c   s(   | j d ur| j V  | jd ur$| jV  d S rO   )rK   ru   r%   r	   r	   r
   rU   g  s    

zCompoundLiteral.__iter__r	   )NrV   r	   r	   r	   r
   rt   Z  s
   
rt   c                   @   s.   e Zd ZdZd
dd„Zdd„ Zdd„ Zd	ZdS )ÚConstant)rK   Úvaluer5   rN   Nc                 C   s   || _ || _|| _d S rO   )rK   rw   r5   )r   rK   rw   r5   r	   r	   r
   rP   q  s    zConstant.__init__c                 C   s   g }t |ƒS rO   ©rR   rS   r	   r	   r
   r&   v  s    zConstant.childrenc                 c   s   d S rO   r	   r%   r	   r	   r
   rU   z  s    zConstant.__iter__)rK   rw   )NrV   r	   r	   r	   r
   rv   o  s
   
rv   c                   @   s.   e Zd ZdZd
dd„Zdd„ Zdd„ Zd	ZdS )ÚContinuerd   Nc                 C   s
   || _ d S rO   re   rf   r	   r	   r
   rP   ‚  s    zContinue.__init__c                 C   s   dS rg   r	   r%   r	   r	   r
   r&   …  s    zContinue.childrenc                 c   s   d S rO   r	   r%   r	   r	   r
   rU   ˆ  s    zContinue.__iter__r	   )NrV   r	   r	   r	   r
   ry   €  s
   
ry   c                   @   s.   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ÚfuncspecrK   ru   Úbitsizer5   rN   Nc
           
      C   s:   || _ || _|| _|| _|| _|| _|| _|| _|	| _d S rO   )	r#   r{   r|   r}   r~   rK   ru   r   r5   )
r   r#   r{   r|   r}   r~   rK   ru   r   r5   r	   r	   r
   rP   �  s    zDecl.__init__c                 C   sZ   g }| j d ur| d| j f¡ | jd ur8| d| jf¡ | jd urR| d| jf¡ t|ƒS )NrK   ru   r   )rK   rQ   ru   r   rR   rS   r	   r	   r
   r&   ›  s
    zDecl.childrenc                 c   s:   | j d ur| j V  | jd ur$| jV  | jd ur6| jV  d S rO   )rK   ru   r   r%   r	   r	   r
   rU   ¢  s    


zDecl.__iter__)r#   r{   r|   r}   r~   )NrV   r	   r	   r	   r
   rz   Ž  s
   
rz   c                   @   s.   e Zd ZdZd
dd„Zdd„ Zdd„ Zd	ZdS )ÚDeclList)Údeclsr5   rN   Nc                 C   s   || _ || _d S rO   )r�   r5   )r   r�   r5   r	   r	   r
   rP   ®  s    zDeclList.__init__c                 C   s6   g }t | jpg ƒD ]\}}| d| |f¡ qt|ƒS ©Nz	decls[%d]©rl   r�   rQ   rR   rm   r	   r	   r
   r&   ²  s    zDeclList.childrenc                 c   s   | j pg D ]
}|V  q
d S rO   ©r�   ro   r	   r	   r
   rU   ¸  s    zDeclList.__iter__r	   )NrV   r	   r	   r	   r
   r€   ¬  s
   
r€   c                   @   s.   e Zd ZdZd
dd„Zdd„ Zdd„ Zd	ZdS )ÚDefault)rj   r5   rN   Nc                 C   s   || _ || _d S rO   )rj   r5   )r   rj   r5   r	   r	   r
   rP   À  s    zDefault.__init__c                 C   s6   g }t | jpg ƒD ]\}}| d| |f¡ qt|ƒS )Nrk   )rl   rj   rQ   rR   rm   r	   r	   r
   r&   Ä  s    zDefault.childrenc                 c   s   | j pg D ]
}|V  q
d S rO   )rj   ro   r	   r	   r
   rU   Ê  s    zDefault.__iter__r	   )NrV   r	   r	   r	   r
   r…   ¾  s
   
r…   c                   @   s.   e Zd ZdZd
dd„Zdd„ Zdd„ Zd	ZdS )ÚDoWhile©ÚcondÚstmtr5   rN   Nc                 C   s   || _ || _|| _d S rO   ©rˆ   r‰   r5   ©r   rˆ   r‰   r5   r	   r	   r
   rP   Ò  s    zDoWhile.__init__c                 C   s@   g }| j d ur| d| j f¡ | jd ur8| d| jf¡ t|ƒS ©Nrˆ   r‰   ©rˆ   rQ   r‰   rR   rS   r	   r	   r
   r&   ×  s    zDoWhile.childrenc                 c   s(   | j d ur| j V  | jd ur$| jV  d S rO   ©rˆ   r‰   r%   r	   r	   r
   rU   Ý  s    

zDoWhile.__iter__r	   )NrV   r	   r	   r	   r
   r†   Ð  s
   
r†   c                   @   s.   e Zd ZdZd
dd„Zdd„ Zdd„ Zd	ZdS )ÚEllipsisParamrd   Nc                 C   s
   || _ d S rO   re   rf   r	   r	   r
   rP   ç  s    zEllipsisParam.__init__c                 C   s   dS rg   r	   r%   r	   r	   r
   r&   ê  s    zEllipsisParam.childrenc                 c   s   d S rO   r	   r%   r	   r	   r
   rU   í  s    zEllipsisParam.__iter__r	   )NrV   r	   r	   r	   r
   r�   å  s
   
r�   c                   @   s.   e Zd ZdZd
dd„Zdd„ Zdd„ Zd	ZdS )ÚEmptyStatementrd   Nc                 C   s
   || _ d S rO   re   rf   r	   r	   r
   rP   õ  s    zEmptyStatement.__init__c                 C   s   dS rg   r	   r%   r	   r	   r
   r&   ø  s    zEmptyStatement.childrenc                 c   s   d S rO   r	   r%   r	   r	   r
   rU   û  s    zEmptyStatement.__iter__r	   )NrV   r	   r	   r	   r
   r�   ó  s
   
r�   c                   @   s.   e Zd ZdZd
dd„Zdd„ Zdd„ Zd	ZdS )ÚEnum)r#   Úvaluesr5   rN   Nc                 C   s   || _ || _|| _d S rO   )r#   r’   r5   )r   r#   r’   r5   r	   r	   r
   rP     s    zEnum.__init__c                 C   s&   g }| j d ur| d| j f¡ t|ƒS )Nr’   )r’   rQ   rR   rS   r	   r	   r
   r&     s    zEnum.childrenc                 c   s   | j d ur| j V  d S rO   )r’   r%   r	   r	   r
   rU     s    
zEnum.__iter__©r#   )NrV   r	   r	   r	   r
   r‘     s
   
r‘   c                   @   s.   e Zd ZdZd
dd„Zdd„ Zdd„ Zd	ZdS )Ú
Enumerator)r#   rw   r5   rN   Nc                 C   s   || _ || _|| _d S rO   )r#   rw   r5   )r   r#   rw   r5   r	   r	   r
   rP     s    zEnumerator.__init__c                 C   s&   g }| j d ur| d| j f¡ t|ƒS )Nrw   )rw   rQ   rR   rS   r	   r	   r
   r&     s    zEnumerator.childrenc                 c   s   | j d ur| j V  d S rO   )rw   r%   r	   r	   r
   rU     s    
zEnumerator.__iter__r“   )NrV   r	   r	   r	   r
   r”     s
   
r”   c                   @   s.   e Zd ZdZd
dd„Zdd„ Zdd„ Zd	ZdS )ÚEnumeratorList)Úenumeratorsr5   rN   Nc                 C   s   || _ || _d S rO   )r–   r5   )r   r–   r5   r	   r	   r
   rP   '  s    zEnumeratorList.__init__c                 C   s6   g }t | jpg ƒD ]\}}| d| |f¡ qt|ƒS )Nzenumerators[%d])rl   r–   rQ   rR   rm   r	   r	   r
   r&   +  s    zEnumeratorList.childrenc                 c   s   | j pg D ]
}|V  q
d S rO   )r–   ro   r	   r	   r
   rU   1  s    zEnumeratorList.__iter__r	   )NrV   r	   r	   r	   r
   r•   %  s
   
r•   c                   @   s.   e Zd ZdZd
dd„Zdd„ Zdd„ Zd	ZdS )ÚExprList©Úexprsr5   rN   Nc                 C   s   || _ || _d S rO   ©r™   r5   ©r   r™   r5   r	   r	   r
   rP   9  s    zExprList.__init__c                 C   s6   g }t | jpg ƒD ]\}}| d| |f¡ qt|ƒS ©Nz	exprs[%d]©rl   r™   rQ   rR   rm   r	   r	   r
   r&   =  s    zExprList.childrenc                 c   s   | j pg D ]
}|V  q
d S rO   ©r™   ro   r	   r	   r
   rU   C  s    zExprList.__iter__r	   )NrV   r	   r	   r	   r
   r—   7  s
   
r—   c                   @   s.   e Zd ZdZd
dd„Zdd„ Zdd„ Zd	ZdS )ÚFileAST)Úextr5   rN   Nc                 C   s   || _ || _d S rO   )r    r5   )r   r    r5   r	   r	   r
   rP   K  s    zFileAST.__init__c                 C   s6   g }t | jpg ƒD ]\}}| d| |f¡ qt|ƒS )Nzext[%d])rl   r    rQ   rR   rm   r	   r	   r
   r&   O  s    zFileAST.childrenc                 c   s   | j pg D ]
}|V  q
d S rO   )r    ro   r	   r	   r
   rU   U  s    zFileAST.__iter__r	   )NrV   r	   r	   r	   r
   rŸ   I  s
   
rŸ   c                   @   s.   e Zd ZdZd
dd„Zdd„ Zdd„ Zd	ZdS )ÚFor)ru   rˆ   Únextr‰   r5   rN   Nc                 C   s"   || _ || _|| _|| _|| _d S rO   )ru   rˆ   r¢   r‰   r5   )r   ru   rˆ   r¢   r‰   r5   r	   r	   r
   rP   ]  s
    zFor.__init__c                 C   st   g }| j d ur| d| j f¡ | jd ur8| d| jf¡ | jd urR| d| jf¡ | jd url| d| jf¡ t|ƒS )Nru   rˆ   r¢   r‰   )ru   rQ   rˆ   r¢   r‰   rR   rS   r	   r	   r
   r&   d  s    zFor.childrenc                 c   sL   | j d ur| j V  | jd ur$| jV  | jd ur6| jV  | jd urH| jV  d S rO   )ru   rˆ   r¢   r‰   r%   r	   r	   r
   rU   l  s    



zFor.__iter__r	   )NrV   r	   r	   r	   r
   r¡   [  s
   

r¡   c                   @   s.   e Zd ZdZd
dd„Zdd„ Zdd„ Zd	ZdS )ÚFuncCall)r#   Úargsr5   rN   Nc                 C   s   || _ || _|| _d S rO   )r#   r¤   r5   )r   r#   r¤   r5   r	   r	   r
   rP   z  s    zFuncCall.__init__c                 C   s@   g }| j d ur| d| j f¡ | jd ur8| d| jf¡ t|ƒS )Nr#   r¤   )r#   rQ   r¤   rR   rS   r	   r	   r
   r&     s    zFuncCall.childrenc                 c   s(   | j d ur| j V  | jd ur$| jV  d S rO   )r#   r¤   r%   r	   r	   r
   rU   …  s    

zFuncCall.__iter__r	   )NrV   r	   r	   r	   r
   r£   x  s
   
r£   c                   @   s.   e Zd ZdZd
dd„Zdd„ Zdd„ Zd	ZdS )ÚFuncDecl)r¤   rK   r5   rN   Nc                 C   s   || _ || _|| _d S rO   )r¤   rK   r5   )r   r¤   rK   r5   r	   r	   r
   rP   �  s    zFuncDecl.__init__c                 C   s@   g }| j d ur| d| j f¡ | jd ur8| d| jf¡ t|ƒS )Nr¤   rK   )r¤   rQ   rK   rR   rS   r	   r	   r
   r&   ”  s    zFuncDecl.childrenc                 c   s(   | j d ur| j V  | jd ur$| jV  d S rO   )r¤   rK   r%   r	   r	   r
   rU   š  s    

zFuncDecl.__iter__r	   )NrV   r	   r	   r	   r
   r¥   �  s
   
r¥   c                   @   s.   e Zd ZdZd
dd„Zdd„ Zdd„ Zd	ZdS )ÚFuncDef)ÚdeclÚparam_declsÚbodyr5   rN   Nc                 C   s   || _ || _|| _|| _d S rO   )r§   r¨   r©   r5   )r   r§   r¨   r©   r5   r	   r	   r
   rP   ¤  s    zFuncDef.__init__c                 C   sj   g }| j d ur| d| j f¡ | jd ur8| d| jf¡ t| jpBg ƒD ]\}}| d| |f¡ qFt|ƒS )Nr§   r©   zparam_decls[%d])r§   rQ   r©   rl   r¨   rR   rm   r	   r	   r
   r&   ª  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 rO   )r§   r©   r¨   ro   r	   r	   r
   rU   ²  s    

zFuncDef.__iter__r	   )NrV   r	   r	   r	   r
   r¦   ¢  s
   
r¦   c                   @   s.   e Zd ZdZd
dd„Zdd„ Zdd„ Zd	ZdS )ÚGoto©r#   r5   rN   Nc                 C   s   || _ || _d S rO   ©r#   r5   ©r   r#   r5   r	   r	   r
   rP   ¾  s    zGoto.__init__c                 C   s   g }t |ƒS rO   rx   rS   r	   r	   r
   r&   Â  s    zGoto.childrenc                 c   s   d S rO   r	   r%   r	   r	   r
   rU   Æ  s    zGoto.__iter__r“   )NrV   r	   r	   r	   r
   rª   ¼  s
   
rª   c                   @   s.   e Zd ZdZd
dd„Zdd„ Zdd„ Zd	ZdS )ÚIDr«   Nc                 C   s   || _ || _d S rO   r¬   r­   r	   r	   r
   rP   Î  s    zID.__init__c                 C   s   g }t |ƒS rO   rx   rS   r	   r	   r
   r&   Ò  s    zID.childrenc                 c   s   d S rO   r	   r%   r	   r	   r
   rU   Ö  s    zID.__iter__r“   )NrV   r	   r	   r	   r
   r®   Ì  s
   
r®   c                   @   s.   e Zd ZdZd
dd„Zdd„ Zdd„ Zd	ZdS )ÚIdentifierType)Únamesr5   rN   Nc                 C   s   || _ || _d S rO   )r°   r5   )r   r°   r5   r	   r	   r
   rP   Þ  s    zIdentifierType.__init__c                 C   s   g }t |ƒS rO   rx   rS   r	   r	   r
   r&   â  s    zIdentifierType.childrenc                 c   s   d S rO   r	   r%   r	   r	   r
   rU   æ  s    zIdentifierType.__iter__)r°   )NrV   r	   r	   r	   r
   r¯   Ü  s
   
r¯   c                   @   s.   e Zd ZdZd
dd„Zdd„ Zdd„ Zd	ZdS )ÚIf©rˆ   ÚiftrueÚiffalser5   rN   Nc                 C   s   || _ || _|| _|| _d S rO   ©rˆ   r³   r´   r5   ©r   rˆ   r³   r´   r5   r	   r	   r
   rP   î  s    zIf.__init__c                 C   sZ   g }| j d ur| d| j f¡ | jd ur8| d| jf¡ | jd urR| d| jf¡ t|ƒS ©Nrˆ   r³   r´   ©rˆ   rQ   r³   r´   rR   rS   r	   r	   r
   r&   ô  s
    zIf.childrenc                 c   s:   | j d ur| j V  | jd ur$| jV  | jd ur6| jV  d S rO   ©rˆ   r³   r´   r%   r	   r	   r
   rU   û  s    


zIf.__iter__r	   )NrV   r	   r	   r	   r
   r±   ì  s
   
r±   c                   @   s.   e Zd ZdZd
dd„Zdd„ Zdd„ Zd	ZdS )ÚInitListr˜   Nc                 C   s   || _ || _d S rO   rš   r›   r	   r	   r
   rP     s    zInitList.__init__c                 C   s6   g }t | jpg ƒD ]\}}| d| |f¡ qt|ƒS rœ   r�   rm   r	   r	   r
   r&     s    zInitList.childrenc                 c   s   | j pg D ]
}|V  q
d S rO   rž   ro   r	   r	   r
   rU     s    zInitList.__iter__r	   )NrV   r	   r	   r	   r
   rº     s
   
rº   c                   @   s.   e Zd ZdZd
dd„Zdd„ Zdd„ Zd	ZdS )ÚLabel)r#   r‰   r5   rN   Nc                 C   s   || _ || _|| _d S rO   )r#   r‰   r5   )r   r#   r‰   r5   r	   r	   r
   rP     s    zLabel.__init__c                 C   s&   g }| j d ur| d| j f¡ t|ƒS )Nr‰   )r‰   rQ   rR   rS   r	   r	   r
   r&     s    zLabel.childrenc                 c   s   | j d ur| j V  d S rO   )r‰   r%   r	   r	   r
   rU   #  s    
zLabel.__iter__r“   )NrV   r	   r	   r	   r
   r»     s
   
r»   c                   @   s.   e Zd ZdZd
dd„Zdd„ Zdd„ Zd	ZdS )ÚNamedInitializer)r#   ri   r5   rN   Nc                 C   s   || _ || _|| _d S rO   )r#   ri   r5   )r   r#   ri   r5   r	   r	   r
   rP   +  s    zNamedInitializer.__init__c                 C   sP   g }| j d ur| d| j f¡ t| jp(g ƒD ]\}}| d| |f¡ q,t|ƒS )Nri   zname[%d])ri   rQ   rl   r#   rR   rm   r	   r	   r
   r&   0  s
    zNamedInitializer.childrenc                 c   s,   | j d ur| j V  | jpg D ]
}|V  qd S rO   )ri   r#   ro   r	   r	   r
   rU   7  s    
zNamedInitializer.__iter__r	   )NrV   r	   r	   r	   r
   r¼   )  s
   
r¼   c                   @   s.   e Zd ZdZd
dd„Zdd„ Zdd„ Zd	ZdS )Ú	ParamList)Úparamsr5   rN   Nc                 C   s   || _ || _d S rO   )r¾   r5   )r   r¾   r5   r	   r	   r
   rP   A  s    zParamList.__init__c                 C   s6   g }t | jpg ƒD ]\}}| d| |f¡ qt|ƒS )Nz
params[%d])rl   r¾   rQ   rR   rm   r	   r	   r
   r&   E  s    zParamList.childrenc                 c   s   | j pg D ]
}|V  q
d S rO   )r¾   ro   r	   r	   r
   rU   K  s    zParamList.__iter__r	   )NrV   r	   r	   r	   r
   r½   ?  s
   
r½   c                   @   s.   e Zd ZdZd
dd„Zdd„ Zdd„ Zd	ZdS )ÚPtrDecl)r{   rK   r5   rN   Nc                 C   s   || _ || _|| _d S rO   )r{   rK   r5   )r   r{   rK   r5   r	   r	   r
   rP   S  s    zPtrDecl.__init__c                 C   s&   g }| j d ur| d| j f¡ t|ƒS ©NrK   ©rK   rQ   rR   rS   r	   r	   r
   r&   X  s    zPtrDecl.childrenc                 c   s   | j d ur| j V  d S rO   ©rK   r%   r	   r	   r
   rU   ]  s    
zPtrDecl.__iter__)r{   )NrV   r	   r	   r	   r
   r¿   Q  s
   
r¿   c                   @   s.   e Zd ZdZd
dd„Zdd„ Zdd„ Zd	ZdS )ÚReturn)ri   r5   rN   Nc                 C   s   || _ || _d S rO   )ri   r5   )r   ri   r5   r	   r	   r
   rP   e  s    zReturn.__init__c                 C   s&   g }| j d ur| d| j f¡ t|ƒS ©Nri   ©ri   rQ   rR   rS   r	   r	   r
   r&   i  s    zReturn.childrenc                 c   s   | j d ur| j V  d S rO   ©ri   r%   r	   r	   r
   rU   n  s    
zReturn.__iter__r	   )NrV   r	   r	   r	   r
   rÃ   c  s
   
rÃ   c                   @   s.   e Zd ZdZd
dd„Zdd„ Zdd„ Zd	ZdS )ÚStaticAssert)rˆ   Úmessager5   rN   Nc                 C   s   || _ || _|| _d S rO   )rˆ   rÈ   r5   )r   rˆ   rÈ   r5   r	   r	   r
   rP   v  s    zStaticAssert.__init__c                 C   s@   g }| j d ur| d| j f¡ | jd ur8| d| jf¡ t|ƒS )Nrˆ   rÈ   )rˆ   rQ   rÈ   rR   rS   r	   r	   r
   r&   {  s    zStaticAssert.childrenc                 c   s(   | j d ur| j V  | jd ur$| jV  d S rO   )rˆ   rÈ   r%   r	   r	   r
   rU   �  s    

zStaticAssert.__iter__r	   )NrV   r	   r	   r	   r
   rÇ   t  s
   
rÇ   c                   @   s.   e Zd ZdZd
dd„Zdd„ Zdd„ Zd	ZdS )ÚStruct©r#   r�   r5   rN   Nc                 C   s   || _ || _|| _d S rO   ©r#   r�   r5   ©r   r#   r�   r5   r	   r	   r
   rP   ‹  s    zStruct.__init__c                 C   s6   g }t | jpg ƒD ]\}}| d| |f¡ qt|ƒS r‚   rƒ   rm   r	   r	   r
   r&   �  s    zStruct.childrenc                 c   s   | j pg D ]
}|V  q
d S rO   r„   ro   r	   r	   r
   rU   –  s    zStruct.__iter__r“   )NrV   r	   r	   r	   r
   rÉ   ‰  s
   
rÉ   c                   @   s.   e Zd ZdZd
dd„Zdd„ Zdd„ Zd	ZdS )Ú	StructRef)r#   rK   Úfieldr5   rN   Nc                 C   s   || _ || _|| _|| _d S rO   )r#   rK   rÎ   r5   )r   r#   rK   rÎ   r5   r	   r	   r
   rP   ž  s    zStructRef.__init__c                 C   s@   g }| j d ur| d| j f¡ | jd ur8| d| jf¡ t|ƒS )Nr#   rÎ   )r#   rQ   rÎ   rR   rS   r	   r	   r
   r&   ¤  s    zStructRef.childrenc                 c   s(   | j d ur| j V  | jd ur$| jV  d S rO   )r#   rÎ   r%   r	   r	   r
   rU   ª  s    

zStructRef.__iter__rÂ   )NrV   r	   r	   r	   r
   rÍ   œ  s
   
rÍ   c                   @   s.   e Zd ZdZd
dd„Zdd„ Zdd„ Zd	ZdS )ÚSwitchr‡   Nc                 C   s   || _ || _|| _d S rO   rŠ   r‹   r	   r	   r
   rP   ´  s    zSwitch.__init__c                 C   s@   g }| j d ur| d| j f¡ | jd ur8| d| jf¡ t|ƒS rŒ   r�   rS   r	   r	   r
   r&   ¹  s    zSwitch.childrenc                 c   s(   | j d ur| j V  | jd ur$| jV  d S rO   rŽ   r%   r	   r	   r
   rU   ¿  s    

zSwitch.__iter__r	   )NrV   r	   r	   r	   r
   rÏ   ²  s
   
rÏ   c                   @   s.   e Zd ZdZd
dd„Zdd„ Zdd„ Zd	ZdS )Ú	TernaryOpr²   Nc                 C   s   || _ || _|| _|| _d S rO   rµ   r¶   r	   r	   r
   rP   É  s    zTernaryOp.__init__c                 C   sZ   g }| j d ur| d| j f¡ | jd ur8| d| jf¡ | jd urR| d| jf¡ t|ƒS r·   r¸   rS   r	   r	   r
   r&   Ï  s
    zTernaryOp.childrenc                 c   s:   | j d ur| j V  | jd ur$| jV  | jd ur6| jV  d S rO   r¹   r%   r	   r	   r
   rU   Ö  s    


zTernaryOp.__iter__r	   )NrV   r	   r	   r	   r
   rÐ   Ç  s
   
rÐ   c                   @   s.   e Zd ZdZd
dd„Zdd„ Zdd„ Zd	ZdS )ÚTypeDecl)Údeclnamer{   r|   rK   r5   rN   Nc                 C   s"   || _ || _|| _|| _|| _d S rO   )rÒ   r{   r|   rK   r5   )r   rÒ   r{   r|   rK   r5   r	   r	   r
   rP   â  s
    zTypeDecl.__init__c                 C   s&   g }| j d ur| d| j f¡ t|ƒS rÀ   rÁ   rS   r	   r	   r
   r&   é  s    zTypeDecl.childrenc                 c   s   | j d ur| j V  d S rO   rÂ   r%   r	   r	   r
   rU   î  s    
zTypeDecl.__iter__)rÒ   r{   r|   )NrV   r	   r	   r	   r
   rÑ   à  s
   
rÑ   c                   @   s.   e Zd ZdZd
dd„Zdd„ Zdd„ Zd	ZdS )ÚTypedef)r#   r{   r}   rK   r5   rN   Nc                 C   s"   || _ || _|| _|| _|| _d S rO   )r#   r{   r}   rK   r5   )r   r#   r{   r}   rK   r5   r	   r	   r
   rP   ö  s
    zTypedef.__init__c                 C   s&   g }| j d ur| d| j f¡ t|ƒS rÀ   rÁ   rS   r	   r	   r
   r&   ý  s    zTypedef.childrenc                 c   s   | j d ur| j V  d S rO   rÂ   r%   r	   r	   r
   rU     s    
zTypedef.__iter__)r#   r{   r}   )NrV   r	   r	   r	   r
   rÓ   ô  s
   
rÓ   c                   @   s.   e Zd ZdZd
dd„Zdd„ Zdd„ Zd	ZdS )ÚTypename)r#   r{   r|   rK   r5   rN   Nc                 C   s"   || _ || _|| _|| _|| _d S rO   )r#   r{   r|   rK   r5   )r   r#   r{   r|   rK   r5   r	   r	   r
   rP   
  s
    zTypename.__init__c                 C   s&   g }| j d ur| d| j f¡ t|ƒS rÀ   rÁ   rS   r	   r	   r
   r&     s    zTypename.childrenc                 c   s   | j d ur| j V  d S rO   rÂ   r%   r	   r	   r
   rU     s    
zTypename.__iter__)r#   r{   r|   )NrV   r	   r	   r	   r
   rÔ     s
   
rÔ   c                   @   s.   e Zd ZdZd
dd„Zdd„ Zdd„ Zd	ZdS )ÚUnaryOp)rZ   ri   r5   rN   Nc                 C   s   || _ || _|| _d S rO   )rZ   ri   r5   )r   rZ   ri   r5   r	   r	   r
   rP     s    zUnaryOp.__init__c                 C   s&   g }| j d ur| d| j f¡ t|ƒS rÄ   rÅ   rS   r	   r	   r
   r&   #  s    zUnaryOp.childrenc                 c   s   | j d ur| j V  d S rO   rÆ   r%   r	   r	   r
   rU   (  s    
zUnaryOp.__iter__r]   )NrV   r	   r	   r	   r
   rÕ     s
   
rÕ   c                   @   s.   e Zd ZdZd
dd„Zdd„ Zdd„ Zd	ZdS )ÚUnionrÊ   Nc                 C   s   || _ || _|| _d S rO   rË   rÌ   r	   r	   r
   rP   0  s    zUnion.__init__c                 C   s6   g }t | jpg ƒD ]\}}| d| |f¡ qt|ƒS r‚   rƒ   rm   r	   r	   r
   r&   5  s    zUnion.childrenc                 c   s   | j pg D ]
}|V  q
d S rO   r„   ro   r	   r	   r
   rU   ;  s    zUnion.__iter__r“   )NrV   r	   r	   r	   r
   rÖ   .  s
   
rÖ   c                   @   s.   e Zd ZdZd
dd„Zdd„ Zdd„ Zd	ZdS )ÚWhiler‡   Nc                 C   s   || _ || _|| _d S rO   rŠ   r‹   r	   r	   r
   rP   C  s    zWhile.__init__c                 C   s@   g }| j d ur| d| j f¡ | jd ur8| d| jf¡ t|ƒS rŒ   r�   rS   r	   r	   r
   r&   H  s    zWhile.childrenc                 c   s(   | j d ur| j V  | jd ur$| jV  d S rO   rŽ   r%   r	   r	   r
   rU   N  s    

zWhile.__iter__r	   )NrV   r	   r	   r	   r
   r×   A  s
   
r×   c                   @   s.   e Zd ZdZd
dd„Zdd„ Zdd„ Zd	ZdS )ÚPragma)Ústringr5   rN   Nc                 C   s   || _ || _d S rO   )rÙ   r5   )r   rÙ   r5   r	   r	   r
   rP   X  s    zPragma.__init__c                 C   s   g }t |ƒS rO   rx   rS   r	   r	   r
   r&   \  s    zPragma.childrenc                 c   s   d S rO   r	   r%   r	   r	   r
   rU   `  s    zPragma.__iter__)rÙ   )NrV   r	   r	   r	   r
   rØ   V  s
   
rØ   )6r=   r   Úobjectr   r?   rJ   rW   rY   r^   r`   rc   rh   rp   rr   rt   rv   ry   rz   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>   sh   	O: