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   úYC:\Users\psant\Downloads\Anu Raj Backend\school\venv\Lib\site-packages\pycparser/c_ast.pyÚ	<genexpr>   s   € z_repr.<locals>.<genexpr>z
]N)Ú
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   ZleadZnvlistZattrstrZ
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$   rL   Ú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,   rS   )r$   rL   r=   Úcr   r   r   rP   À   s   ÿzNodeVisitor.generic_visit)r    rB   rC   Ú__doc__rN   r   rS   rP   r   r   r   r   rK   Ž   s
    !rK   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<   )rX   rY   rZ   r   )r$   rX   rY   rZ   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 )NrX   rY   )rX   ÚappendrY   rD   ©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<   )rX   rY   r+   r   r   r   Ú__iter__Ù   ó   €

ÿzArrayDecl.__iter__)rZ   r<   ©r    rB   rC   r!   r]   r,   re   r   r   r   r   r   rW   È   ó    
rW   c                   @   rV   )ÚArrayRef)r(   Ú	subscriptr   r[   Nc                 C   ó   || _ || _|| _d S r<   )r(   rj   r   )r$   r(   rj   r   r   r   r   r]   å   ó   
zArrayRef.__init__c                 C   r_   )Nr(   rj   )r(   r`   rj   rD   ra   r   r   r   r,   ê   rc   zArrayRef.childrenc                 c   rd   r<   )r(   rj   r+   r   r   r   re   ò   rf   zArrayRef.__iter__r   r<   rg   r   r   r   r   ri   â   ó    
ri   c                   @   rV   )Ú
Assignment)ÚopÚlvalueÚrvaluer   r[   Nc                 C   r\   r<   )ro   rp   rq   r   )r$   ro   rp   rq   r   r   r   r   r]   þ   r^   zAssignment.__init__c                 C   r_   )Nrp   rq   )rp   r`   rq   rD   ra   r   r   r   r,     rc   zAssignment.childrenc                 c   rd   r<   )rp   rq   r+   r   r   r   re     rf   zAssignment.__iter__©ro   r<   rg   r   r   r   r   rn   û   rh   rn   c                   @   rV   )ÚAlignas)Ú	alignmentr   r[   Nc                 C   ó   || _ || _d S r<   )rt   r   )r$   rt   r   r   r   r   r]     ó   
zAlignas.__init__c                 C   ó&   g }| j d ur| d| j f¡ t|ƒS )Nrt   )rt   r`   rD   ra   r   r   r   r,     ó   
zAlignas.childrenc                 c   ó   � | j d ur| j V  d S d S r<   )rt   r+   r   r   r   re   "  ó   €
ÿzAlignas.__iter__r   r<   rg   r   r   r   r   rs     ó    
rs   c                   @   rV   )ÚBinaryOp)ro   ÚleftÚrightr   r[   Nc                 C   r\   r<   )ro   r}   r~   r   )r$   ro   r}   r~   r   r   r   r   r]   ,  r^   zBinaryOp.__init__c                 C   r_   )Nr}   r~   )r}   r`   r~   rD   ra   r   r   r   r,   2  rc   zBinaryOp.childrenc                 c   rd   r<   )r}   r~   r+   r   r   r   re   :  rf   zBinaryOp.__iter__rr   r<   rg   r   r   r   r   r|   )  rh   r|   c                   @   rV   )ÚBreak©r   r[   Nc                 C   ó
   || _ d S r<   ©r   ©r$   r   r   r   r   r]   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   re   L  ó   €zBreak.__iter__r   r<   rg   r   r   r   r   r   C  ó    
r   c                   @   rV   )ÚCase)ÚexprÚstmtsr   r[   Nc                 C   rk   r<   )r‹   rŒ   r   )r$   r‹   rŒ   r   r   r   r   r]   V  rl   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‹   r`   Ú	enumeraterŒ   rD   ©r$   rb   ÚirA   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$   rA   r   r   r   re   c  ó   €
ÿzCase.__iter__r   r<   rg   r   r   r   r   rŠ   S  rm   rŠ   c                   @   rV   )ÚCast)Úto_typer‹   r   r[   Nc                 C   rk   r<   )r˜   r‹   r   )r$   r˜   r‹   r   r   r   r   r]   o  rl   zCast.__init__c                 C   r_   )Nr˜   r‹   )r˜   r`   r‹   rD   ra   r   r   r   r,   t  rc   zCast.childrenc                 c   rd   r<   )r˜   r‹   r+   r   r   r   re   |  rf   zCast.__iter__r   r<   rg   r   r   r   r   r—   l  rm   r—   c                   @   rV   )ÚCompound)Úblock_itemsr   r[   Nc                 C   ru   r<   )rš   r   )r$   rš   r   r   r   r   r]   ˆ  rv   zCompound.__init__c                 C   ó:   g }t | jpg ƒD ]\}}| d|› d�|f¡ q	t|ƒS )Nzblock_items[r�   )r�   rš   r`   rD   r‘   r   r   r   r,   Œ  ó   zCompound.childrenc                 c   ó   � | j pg D ]}|V  qd S r<   )rš   r•   r   r   r   re   ’  ó   €ÿzCompound.__iter__r   r<   rg   r   r   r   r   r™   …  r{   r™   c                   @   rV   )ÚCompoundLiteral)rX   Úinitr   r[   Nc                 C   rk   r<   )rX   r    r   )r$   rX   r    r   r   r   r   r]   œ  rl   zCompoundLiteral.__init__c                 C   r_   )NrX   r    )rX   r`   r    rD   ra   r   r   r   r,   ¡  rc   zCompoundLiteral.childrenc                 c   rd   r<   )rX   r    r+   r   r   r   re   ©  rf   zCompoundLiteral.__iter__r   r<   rg   r   r   r   r   rŸ   ™  rm   rŸ   c                   @   rV   )ÚConstant)rX   r;   r   r[   Nc                 C   rk   r<   )rX   r;   r   )r$   rX   r;   r   r   r   r   r]   µ  rl   zConstant.__init__c                 C   ó   g }t |ƒS r<   ©rD   ra   r   r   r   r,   º  ó   zConstant.childrenc                 c   r‡   r<   r   r+   r   r   r   re   ¾  rˆ   zConstant.__iter__)rX   r;   r<   rg   r   r   r   r   r¡   ²  s    
r¡   c                   @   rV   )ÚContinuer€   Nc                 C   r�   r<   r‚   rƒ   r   r   r   r]   Ë  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   re   Ñ  rˆ   zContinue.__iter__r   r<   rg   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ÚfuncspecrX   r    Úbitsizer   r[   Nc
           
      C   s:   || _ || _|| _|| _|| _|| _|| _|| _|	| _d S r<   )	r(   r§   r¨   r©   rª   rX   r    r«   r   )
r$   r(   r§   r¨   r©   rª   rX   r    r«   r   r   r   r   r]   æ  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 )NrX   r    r«   )rX   r`   r    r«   rD   ra   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<   )rX   r    r«   r+   r   r   r   re   ý  ó   €


ÿzDecl.__iter__)r(   r§   r¨   r©   rª   r<   rg   r   r   r   r   r¦   Ø  s    
ÿ
r¦   c                   @   rV   )ÚDeclList)Údeclsr   r[   Nc                 C   ru   r<   )r±   r   )r$   r±   r   r   r   r   r]     rv   zDeclList.__init__c                 C   r›   ©Nzdecls[r�   ©r�   r±   r`   rD   r‘   r   r   r   r,     rœ   zDeclList.childrenc                 c   r�   r<   ©r±   r•   r   r   r   re     rž   zDeclList.__iter__r   r<   rg   r   r   r   r   r°     r{   r°   c                   @   rV   )ÚDefault)rŒ   r   r[   Nc                 C   ru   r<   )rŒ   r   )r$   rŒ   r   r   r   r   r]   %  rv   zDefault.__init__c                 C   r›   )NrŽ   r�   )r�   rŒ   r`   rD   r‘   r   r   r   r,   )  rœ   zDefault.childrenc                 c   r�   r<   )rŒ   r•   r   r   r   re   /  rž   zDefault.__iter__r   r<   rg   r   r   r   r   rµ   "  r{   rµ   c                   @   rV   )ÚDoWhile©ÚcondÚstmtr   r[   Nc                 C   rk   r<   ©r¸   r¹   r   ©r$   r¸   r¹   r   r   r   r   r]   9  rl   zDoWhile.__init__c                 C   r_   ©Nr¸   r¹   ©r¸   r`   r¹   rD   ra   r   r   r   r,   >  rc   zDoWhile.childrenc                 c   rd   r<   ©r¸   r¹   r+   r   r   r   re   F  rf   zDoWhile.__iter__r   r<   rg   r   r   r   r   r¶   6  rm   r¶   c                   @   rV   )ÚEllipsisParamr€   Nc                 C   r�   r<   r‚   rƒ   r   r   r   r]   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   re   X  rˆ   zEllipsisParam.__iter__r   r<   rg   r   r   r   r   r¿   O  r‰   r¿   c                   @   rV   )ÚEmptyStatementr€   Nc                 C   r�   r<   r‚   rƒ   r   r   r   r]   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   re   h  rˆ   zEmptyStatement.__iter__r   r<   rg   r   r   r   r   rÀ   _  r‰   rÀ   c                   @   rV   )ÚEnum)r(   Úvaluesr   r[   Nc                 C   rk   r<   )r(   rÂ   r   )r$   r(   rÂ   r   r   r   r   r]   r  rl   zEnum.__init__c                 C   rw   )NrÂ   )rÂ   r`   rD   ra   r   r   r   r,   w  rx   zEnum.childrenc                 c   ry   r<   )rÂ   r+   r   r   r   re   }  rz   zEnum.__iter__©r(   r<   rg   r   r   r   r   rÁ   o  ó    
rÁ   c                   @   rV   )Ú
Enumerator)r(   r;   r   r[   Nc                 C   rk   r<   )r(   r;   r   )r$   r(   r;   r   r   r   r   r]   ‡  rl   zEnumerator.__init__c                 C   rw   )Nr;   )r;   r`   rD   ra   r   r   r   r,   Œ  rx   zEnumerator.childrenc                 c   ry   r<   )r;   r+   r   r   r   re   ’  rz   zEnumerator.__iter__rÃ   r<   rg   r   r   r   r   rÅ   „  rÄ   rÅ   c                   @   rV   )ÚEnumeratorList)Úenumeratorsr   r[   Nc                 C   ru   r<   )rÇ   r   )r$   rÇ   r   r   r   r   r]   œ  rv   zEnumeratorList.__init__c                 C   r›   )Nzenumerators[r�   )r�   rÇ   r`   rD   r‘   r   r   r   r,      rœ   zEnumeratorList.childrenc                 c   r�   r<   )rÇ   r•   r   r   r   re   ¦  rž   zEnumeratorList.__iter__r   r<   rg   r   r   r   r   rÆ   ™  r{   rÆ   c                   @   rV   )ÚExprList©Úexprsr   r[   Nc                 C   ru   r<   ©rÊ   r   ©r$   rÊ   r   r   r   r   r]   °  rv   zExprList.__init__c                 C   r›   ©Nzexprs[r�   ©r�   rÊ   r`   rD   r‘   r   r   r   r,   ´  rœ   zExprList.childrenc                 c   r�   r<   ©rÊ   r•   r   r   r   re   º  rž   zExprList.__iter__r   r<   rg   r   r   r   r   rÈ   ­  r{   rÈ   c                   @   rV   )ÚFileAST)Úextr   r[   Nc                 C   ru   r<   )rÑ   r   )r$   rÑ   r   r   r   r   r]   Ä  rv   zFileAST.__init__c                 C   r›   )Nzext[r�   )r�   rÑ   r`   rD   r‘   r   r   r   r,   È  rœ   zFileAST.childrenc                 c   r�   r<   )rÑ   r•   r   r   r   re   Î  rž   zFileAST.__iter__r   r<   rg   r   r   r   r   rÐ   Á  r{   rÐ   c                   @   rV   )Ú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   r]   Ø  ó
   
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    r`   r¸   rÓ   r¹   rD   ra   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   re   ë  s   €



ÿzFor.__iter__r   r<   rg   r   r   r   r   rÒ   Õ  s    

rÒ   c                   @   rV   )ÚFuncCall)r(   Úargsr   r[   Nc                 C   rk   r<   )r(   r×   r   )r$   r(   r×   r   r   r   r   r]   û  rl   zFuncCall.__init__c                 C   r_   )Nr(   r×   )r(   r`   r×   rD   ra   r   r   r   r,      rc   zFuncCall.childrenc                 c   rd   r<   )r(   r×   r+   r   r   r   re     rf   zFuncCall.__iter__r   r<   rg   r   r   r   r   rÖ   ø  rm   rÖ   c                   @   rV   )ÚFuncDecl)r×   rX   r   r[   Nc                 C   rk   r<   )r×   rX   r   )r$   r×   rX   r   r   r   r   r]     rl   zFuncDecl.__init__c                 C   r_   )Nr×   rX   )r×   r`   rX   rD   ra   r   r   r   r,     rc   zFuncDecl.childrenc                 c   rd   r<   )r×   rX   r+   r   r   r   re   !  rf   zFuncDecl.__iter__r   r<   rg   r   r   r   r   rØ     rm   rØ   c                   @   rV   )ÚFuncDef)ÚdeclÚparam_declsÚbodyr   r[   Nc                 C   r\   r<   )rÚ   rÛ   rÜ   r   )r$   rÚ   rÛ   rÜ   r   r   r   r   r]   -  r^   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Ú   r`   rÜ   r�   rÛ   rD   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   re   =  s   €

ÿzFuncDef.__iter__r   r<   rg   r   r   r   r   rÙ   *  ó    

rÙ   c                   @   rV   )ÚGoto©r(   r   r[   Nc                 C   ru   r<   ©r(   r   ©r$   r(   r   r   r   r   r]   K  rv   zGoto.__init__c                 C   r¢   r<   r£   ra   r   r   r   r,   O  r¤   zGoto.childrenc                 c   r‡   r<   r   r+   r   r   r   re   S  rˆ   zGoto.__iter__rÃ   r<   rg   r   r   r   r   rÞ   H  ó    
rÞ   c                   @   rV   )ÚIDrß   Nc                 C   ru   r<   rà   rá   r   r   r   r]   ]  rv   zID.__init__c                 C   r¢   r<   r£   ra   r   r   r   r,   a  r¤   zID.childrenc                 c   r‡   r<   r   r+   r   r   r   re   e  rˆ   zID.__iter__rÃ   r<   rg   r   r   r   r   rã   Z  râ   rã   c                   @   rV   )ÚIdentifierType)Únamesr   r[   Nc                 C   ru   r<   )rå   r   )r$   rå   r   r   r   r   r]   o  rv   zIdentifierType.__init__c                 C   r¢   r<   r£   ra   r   r   r   r,   s  r¤   zIdentifierType.childrenc                 c   r‡   r<   r   r+   r   r   r   re   w  rˆ   zIdentifierType.__iter__)rå   r<   rg   r   r   r   r   rä   l  râ   rä   c                   @   rV   )ÚIf©r¸   ÚiftrueÚiffalser   r[   Nc                 C   r\   r<   ©r¸   rè   ré   r   ©r$   r¸   rè   ré   r   r   r   r   r]   �  r^   zIf.__init__c                 C   r¬   ©Nr¸   rè   ré   ©r¸   r`   rè   ré   rD   ra   r   r   r   r,   ‡  r­   zIf.childrenc                 c   r®   r<   ©r¸   rè   ré   r+   r   r   r   re   ‘  r¯   zIf.__iter__r   r<   rg   r   r   r   r   ræ   ~  rÝ   ræ   c                   @   rV   )ÚInitListrÉ   Nc                 C   ru   r<   rË   rÌ   r   r   r   r]   Ÿ  rv   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   re   ©  rž   zInitList.__iter__r   r<   rg   r   r   r   r   rï   œ  r{   rï   c                   @   rV   )ÚLabel)r(   r¹   r   r[   Nc                 C   rk   r<   )r(   r¹   r   )r$   r(   r¹   r   r   r   r   r]   ³  rl   zLabel.__init__c                 C   rw   )Nr¹   )r¹   r`   rD   ra   r   r   r   r,   ¸  rx   zLabel.childrenc                 c   ry   r<   )r¹   r+   r   r   r   re   ¾  rz   zLabel.__iter__rÃ   r<   rg   r   r   r   r   rð   °  rÄ   rð   c                   @   rV   )ÚNamedInitializer)r(   r‹   r   r[   Nc                 C   rk   r<   )r(   r‹   r   )r$   r(   r‹   r   r   r   r   r]   È  rl   zNamedInitializer.__init__c                 C   r�   )Nr‹   zname[r�   )r‹   r`   r�   r(   rD   r‘   r   r   r   r,   Í  r“   zNamedInitializer.childrenc                 c   r”   r<   )r‹   r(   r•   r   r   r   re   Õ  r–   zNamedInitializer.__iter__r   r<   rg   r   r   r   r   rñ   Å  rm   rñ   c                   @   rV   )Ú	ParamList)Úparamsr   r[   Nc                 C   ru   r<   )ró   r   )r$   ró   r   r   r   r   r]   á  rv   zParamList.__init__c                 C   r›   )Nzparams[r�   )r�   ró   r`   rD   r‘   r   r   r   r,   å  rœ   zParamList.childrenc                 c   r�   r<   )ró   r•   r   r   r   re   ë  rž   zParamList.__iter__r   r<   rg   r   r   r   r   rò   Þ  r{   rò   c                   @   rV   )ÚPtrDecl)r§   rX   r   r[   Nc                 C   rk   r<   )r§   rX   r   )r$   r§   rX   r   r   r   r   r]   õ  rl   zPtrDecl.__init__c                 C   rw   ©NrX   ©rX   r`   rD   ra   r   r   r   r,   ú  rx   zPtrDecl.childrenc                 c   ry   r<   ©rX   r+   r   r   r   re      rz   zPtrDecl.__iter__)r§   r<   rg   r   r   r   r   rô   ò  rÄ   rô   c                   @   rV   )ÚReturn)r‹   r   r[   Nc                 C   ru   r<   )r‹   r   )r$   r‹   r   r   r   r   r]   
  rv   zReturn.__init__c                 C   rw   ©Nr‹   ©r‹   r`   rD   ra   r   r   r   r,     rx   zReturn.childrenc                 c   ry   r<   ©r‹   r+   r   r   r   re     rz   zReturn.__iter__r   r<   rg   r   r   r   r   rø     r{   rø   c                   @   rV   )ÚStaticAssert)r¸   Úmessager   r[   Nc                 C   rk   r<   )r¸   rý   r   )r$   r¸   rý   r   r   r   r   r]     rl   zStaticAssert.__init__c                 C   r_   )Nr¸   rý   )r¸   r`   rý   rD   ra   r   r   r   r,   #  rc   zStaticAssert.childrenc                 c   rd   r<   )r¸   rý   r+   r   r   r   re   +  rf   zStaticAssert.__iter__r   r<   rg   r   r   r   r   rü     rm   rü   c                   @   rV   )ÚStruct©r(   r±   r   r[   Nc                 C   rk   r<   ©r(   r±   r   ©r$   r(   r±   r   r   r   r   r]   7  rl   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   re   B  rž   zStruct.__iter__rÃ   r<   rg   r   r   r   r   rþ   4  rÄ   rþ   c                   @   rV   )Ú	StructRef)r(   rX   Úfieldr   r[   Nc                 C   r\   r<   )r(   rX   r  r   )r$   r(   rX   r  r   r   r   r   r]   L  r^   zStructRef.__init__c                 C   r_   )Nr(   r  )r(   r`   r  rD   ra   r   r   r   r,   R  rc   zStructRef.childrenc                 c   rd   r<   )r(   r  r+   r   r   r   re   Z  rf   zStructRef.__iter__r÷   r<   rg   r   r   r   r   r  I  rh   r  c                   @   rV   )ÚSwitchr·   Nc                 C   rk   r<   rº   r»   r   r   r   r]   f  rl   zSwitch.__init__c                 C   r_   r¼   r½   ra   r   r   r   r,   k  rc   zSwitch.childrenc                 c   rd   r<   r¾   r+   r   r   r   re   s  rf   zSwitch.__iter__r   r<   rg   r   r   r   r   r  c  rm   r  c                   @   rV   )Ú	TernaryOprç   Nc                 C   r\   r<   rê   rë   r   r   r   r]     r^   zTernaryOp.__init__c                 C   r¬   rì   rí   ra   r   r   r   r,   …  r­   zTernaryOp.childrenc                 c   r®   r<   rî   r+   r   r   r   re   �  r¯   zTernaryOp.__iter__r   r<   rg   r   r   r   r   r  |  rÝ   r  c                   @   rV   )ÚTypeDecl)Údeclnamer§   r¨   rX   r   r[   Nc                 C   rÔ   r<   )r  r§   r¨   rX   r   )r$   r  r§   r¨   rX   r   r   r   r   r]   �  rÕ   zTypeDecl.__init__c                 C   rw   rõ   rö   ra   r   r   r   r,   ¤  rx   zTypeDecl.childrenc                 c   ry   r<   r÷   r+   r   r   r   re   ª  rz   zTypeDecl.__iter__)r  r§   r¨   r<   rg   r   r   r   r   r  š  ó    
r  c                   @   rV   )ÚTypedef)r(   r§   r©   rX   r   r[   Nc                 C   rÔ   r<   )r(   r§   r©   rX   r   )r$   r(   r§   r©   rX   r   r   r   r   r]   ¸  rÕ   zTypedef.__init__c                 C   rw   rõ   rö   ra   r   r   r   r,   ¿  rx   zTypedef.childrenc                 c   ry   r<   r÷   r+   r   r   r   re   Å  rz   zTypedef.__iter__)r(   r§   r©   r<   rg   r   r   r   r   r	  µ  r  r	  c                   @   rV   )ÚTypename)r(   r§   r¨   rX   r   r[   Nc                 C   rÔ   r<   )r(   r§   r¨   rX   r   )r$   r(   r§   r¨   rX   r   r   r   r   r]   Ó  rÕ   zTypename.__init__c                 C   rw   rõ   rö   ra   r   r   r   r,   Ú  rx   zTypename.childrenc                 c   ry   r<   r÷   r+   r   r   r   re   à  rz   zTypename.__iter__)r(   r§   r¨   r<   rg   r   r   r   r   r
  Ð  r  r
  c                   @   rV   )ÚUnaryOp)ro   r‹   r   r[   Nc                 C   rk   r<   )ro   r‹   r   )r$   ro   r‹   r   r   r   r   r]   î  rl   zUnaryOp.__init__c                 C   rw   rù   rú   ra   r   r   r   r,   ó  rx   zUnaryOp.childrenc                 c   ry   r<   rû   r+   r   r   r   re   ù  rz   zUnaryOp.__iter__rr   r<   rg   r   r   r   r   r  ë  rÄ   r  c                   @   rV   )ÚUnionrÿ   Nc                 C   rk   r<   r   r  r   r   r   r]     rl   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   re     rž   zUnion.__iter__rÃ   r<   rg   r   r   r   r   r     rÄ   r  c                   @   rV   )ÚWhiler·   Nc                 C   rk   r<   rº   r»   r   r   r   r]     rl   zWhile.__init__c                 C   r_   r¼   r½   ra   r   r   r   r,     rc   zWhile.childrenc                 c   rd   r<   r¾   r+   r   r   r   re   %  rf   zWhile.__iter__r   r<   rg   r   r   r   r   r    rm   r  c                   @   rV   )ÚPragma)Ústringr   r[   Nc                 C   ru   r<   )r  r   )r$   r  r   r   r   r   r]   1  rv   zPragma.__init__c                 C   r¢   r<   r£   ra   r   r   r   r,   5  r¤   zPragma.childrenc                 c   r‡   r<   r   r+   r   r   r   re   9  rˆ   zPragma.__iter__)r  r<   rg   r   r   r   r   r  .  râ   r  ):rG   Útypingr   r   r   r   r	   r   rK   rW   ri   rn   rs   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#