????

Your IP : 3.144.158.54


Current Path : /lib/python3.9/site-packages/pycparser/__pycache__/
Upload File :
Current File : //lib/python3.9/site-packages/pycparser/__pycache__/c_ast.cpython-39.pyc

a

�,Nbv�@s$ddlZdd�ZGdd�de�ZGdd�de�ZGdd	�d	e�ZGd
d�de�ZGdd
�d
e�ZGdd�de�ZGdd�de�Z	Gdd�de�Z
Gdd�de�ZGdd�de�ZGdd�de�Z
Gdd�de�ZGdd�de�ZGdd�de�ZGd d!�d!e�ZGd"d#�d#e�ZGd$d%�d%e�ZGd&d'�d'e�ZGd(d)�d)e�ZGd*d+�d+e�ZGd,d-�d-e�ZGd.d/�d/e�ZGd0d1�d1e�ZGd2d3�d3e�ZGd4d5�d5e�ZGd6d7�d7e�ZGd8d9�d9e�ZGd:d;�d;e�ZGd<d=�d=e�ZGd>d?�d?e�Z Gd@dA�dAe�Z!GdBdC�dCe�Z"GdDdE�dEe�Z#GdFdG�dGe�Z$GdHdI�dIe�Z%GdJdK�dKe�Z&GdLdM�dMe�Z'GdNdO�dOe�Z(GdPdQ�dQe�Z)GdRdS�dSe�Z*GdTdU�dUe�Z+GdVdW�dWe�Z,GdXdY�dYe�Z-GdZd[�d[e�Z.Gd\d]�d]e�Z/Gd^d_�d_e�Z0Gd`da�dae�Z1Gdbdc�dce�Z2Gddde�dee�Z3dS)f�NcCs2t|t�r&dd�dd�|D��dSt|�SdS)z[
    Get the representation of an object, with dedicated pprint-like format for lists.
    �[z,
 css|]}t|��dd�VqdS)�
�
 N)�_repr�replace)�.0�e�r	�3/usr/lib/python3.9/site-packages/pycparser/c_ast.py�	<genexpr>�z_repr.<locals>.<genexpr>z
]N)�
isinstance�list�join�repr)�objr	r	r
rs
rc@s8eZdZdZdd�Zdd�Zejdddddfd	d
�ZdS)�Noder	cCs�|jjd}d}d}|jdd�D]f}||7}||7}||dtt||���dddt|�t|jj��7}d	}d
dt|jj�}q"||d7}|S)z? Generates a python representation of the current node
        �(�N����=rz
  � �,r�))�	__class__�__name__�	__slots__r�getattrr�len)�self�result�indent�	separator�namer	r	r
�__repr__"s:z
Node.__repr__cCsdS)z3 A sequence of all children that are Nodes
        Nr	�rr	r	r
�children5sz
Node.childrenrFNc
	s�d|}|r4|dur4|�|�jjd|d�n|�|�jjd��jr�|r~�fdd��jD�}d�d	d
�|D��}	n(�fdd��jD�}
d�dd
�|
D��}	|�|	�|r�|�d
�j�|�d����D]"\}}|j||d||||d�q�dS)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.
        rNz <z>: z: csg|]}|t�|�f�qSr	�r�r�nr%r	r
�
<listcomp>XrzNode.show.<locals>.<listcomp>z, css|]}d|VqdS)z%s=%sNr	)r�nvr	r	r
rYrzNode.show.<locals>.<genexpr>csg|]}t�|��qSr	r'r(r%r	r
r*[rcss|]}d|VqdS)z%sNr	)r�vr	r	r
r\rz (at %s)r�)�offset�	attrnames�	nodenames�	showcoord�
_my_node_name)�writerr�
attr_namesr�coordr&�show)
r�bufr.r/r0r1r2ZleadZnvlistZattrstrZvlistZ
child_name�childr	r%r
r6:s. 

�z	Node.show)	r�
__module__�__qualname__rr$r&�sys�stdoutr6r	r	r	r
rsrc@s$eZdZdZdZdd�Zdd�ZdS)�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)
    NcCsZ|jduri|_|j�|jjd�}|durRd|jj}t|||j�}||j|jj<||�S)z Visit a node.
        NZvisit_)�
_method_cache�getrrr�
generic_visit)r�nodeZvisitor�methodr	r	r
�visit�s
zNodeVisitor.visitcCs|D]}|�|�qdS)zy Called if no explicit visitor function exists for a
            node. Implements preorder visiting of the node.
        N)rC)rrA�cr	r	r
r@�szNodeVisitor.generic_visit)rr9r:�__doc__r>rCr@r	r	r	r
r=ms!r=c@s.eZdZdZd
dd�Zdd�Zdd�Zd	ZdS)�	ArrayDecl)�type�dim�	dim_qualsr5�__weakref__NcCs||_||_||_||_dS�N)rGrHrIr5)rrGrHrIr5r	r	r
�__init__�szArrayDecl.__init__cCs@g}|jdur|�d|jf�|jdur8|�d|jf�t|�S)NrGrH)rG�appendrH�tuple�r�nodelistr	r	r
r&�szArrayDecl.childrenccs(|jdur|jV|jdur$|jVdSrK)rGrHr%r	r	r
�__iter__�s

zArrayDecl.__iter__)rI)N�rr9r:rrLr&rQr4r	r	r	r
rF�s

rFc@s.eZdZdZd
dd�Zdd�Zdd�Zd	ZdS)�ArrayRef)r#�	subscriptr5rJNcCs||_||_||_dSrK)r#rTr5)rr#rTr5r	r	r
rL�szArrayRef.__init__cCs@g}|jdur|�d|jf�|jdur8|�d|jf�t|�S)Nr#rT)r#rMrTrNrOr	r	r
r&�szArrayRef.childrenccs(|jdur|jV|jdur$|jVdSrK)r#rTr%r	r	r
rQ�s

zArrayRef.__iter__r	)NrRr	r	r	r
rS�s

rSc@s.eZdZdZd
dd�Zdd�Zdd�Zd	ZdS)�
Assignment)�op�lvalue�rvaluer5rJNcCs||_||_||_||_dSrK)rVrWrXr5)rrVrWrXr5r	r	r
rL�szAssignment.__init__cCs@g}|jdur|�d|jf�|jdur8|�d|jf�t|�S)NrWrX)rWrMrXrNrOr	r	r
r&�szAssignment.childrenccs(|jdur|jV|jdur$|jVdSrK)rWrXr%r	r	r
rQ�s

zAssignment.__iter__�rV)NrRr	r	r	r
rU�s

rUc@s.eZdZdZd
dd�Zdd�Zdd�Zd	ZdS)�BinaryOp)rV�left�rightr5rJNcCs||_||_||_||_dSrK)rVr[r\r5)rrVr[r\r5r	r	r
rL�szBinaryOp.__init__cCs@g}|jdur|�d|jf�|jdur8|�d|jf�t|�S)Nr[r\)r[rMr\rNrOr	r	r
r&�szBinaryOp.childrenccs(|jdur|jV|jdur$|jVdSrK)r[r\r%r	r	r
rQ�s

zBinaryOp.__iter__rY)NrRr	r	r	r
rZ�s

rZc@s.eZdZdZd
dd�Zdd�Zdd�Zd	ZdS)�Break�r5rJNcCs
||_dSrK�r5�rr5r	r	r
rLszBreak.__init__cCsdS�Nr	r	r%r	r	r
r&szBreak.childrenccsdSrKr	r%r	r	r
rQszBreak.__iter__r	)NrRr	r	r	r
r]�s

r]c@s.eZdZdZd
dd�Zdd�Zdd�Zd	ZdS)�Case)�expr�stmtsr5rJNcCs||_||_||_dSrK)rcrdr5)rrcrdr5r	r	r
rLsz
Case.__init__cCsPg}|jdur|�d|jf�t|jp(g�D]\}}|�d||f�q,t|�S)Nrc�	stmts[%d])rcrM�	enumeraterdrN�rrP�ir8r	r	r
r&s
z
Case.childrenccs,|jdur|jV|jpgD]
}|VqdSrK)rcrd�rr8r	r	r
rQs
z
Case.__iter__r	)NrRr	r	r	r
rbs

rbc@s.eZdZdZd
dd�Zdd�Zdd�Zd	ZdS)�Cast)�to_typercr5rJNcCs||_||_||_dSrK)rkrcr5)rrkrcr5r	r	r
rL$sz
Cast.__init__cCs@g}|jdur|�d|jf�|jdur8|�d|jf�t|�S)Nrkrc)rkrMrcrNrOr	r	r
r&)sz
Cast.childrenccs(|jdur|jV|jdur$|jVdSrK)rkrcr%r	r	r
rQ/s

z
Cast.__iter__r	)NrRr	r	r	r
rj"s

rjc@s.eZdZdZd
dd�Zdd�Zdd�Zd	ZdS)�Compound)�block_itemsr5rJNcCs||_||_dSrK)rmr5)rrmr5r	r	r
rL9szCompound.__init__cCs6g}t|jpg�D]\}}|�d||f�qt|�S)Nzblock_items[%d])rfrmrMrNrgr	r	r
r&=szCompound.childrenccs|jpgD]
}|Vq
dSrK)rmrir	r	r
rQCszCompound.__iter__r	)NrRr	r	r	r
rl7s

rlc@s.eZdZdZd
dd�Zdd�Zdd�Zd	ZdS)�CompoundLiteral)rG�initr5rJNcCs||_||_||_dSrK)rGror5)rrGror5r	r	r
rLKszCompoundLiteral.__init__cCs@g}|jdur|�d|jf�|jdur8|�d|jf�t|�S)NrGro)rGrMrorNrOr	r	r
r&PszCompoundLiteral.childrenccs(|jdur|jV|jdur$|jVdSrK)rGror%r	r	r
rQVs

zCompoundLiteral.__iter__r	)NrRr	r	r	r
rnIs

rnc@s.eZdZdZd
dd�Zdd�Zdd�Zd	ZdS)�Constant)rG�valuer5rJNcCs||_||_||_dSrK)rGrqr5)rrGrqr5r	r	r
rL`szConstant.__init__cCsg}t|�SrK�rNrOr	r	r
r&eszConstant.childrenccsdSrKr	r%r	r	r
rQiszConstant.__iter__)rGrq)NrRr	r	r	r
rp^s

rpc@s.eZdZdZd
dd�Zdd�Zdd�Zd	ZdS)�Continuer^NcCs
||_dSrKr_r`r	r	r
rLqszContinue.__init__cCsdSrar	r%r	r	r
r&tszContinue.childrenccsdSrKr	r%r	r	r
rQwszContinue.__iter__r	)NrRr	r	r	r
rsos

rsc@s.eZdZdZd
dd�Zdd�Zdd�Zd	ZdS)�Decl)	r#�quals�storage�funcspecrGro�bitsizer5rJNc		Cs4||_||_||_||_||_||_||_||_dSrK)r#rurvrwrGrorxr5)	rr#rurvrwrGrorxr5r	r	r
rLsz
Decl.__init__cCsZg}|jdur|�d|jf�|jdur8|�d|jf�|jdurR|�d|jf�t|�S)NrGrorx)rGrMrorxrNrOr	r	r
r&�s
z
Decl.childrenccs:|jdur|jV|jdur$|jV|jdur6|jVdSrK)rGrorxr%r	r	r
rQ�s


z
Decl.__iter__)r#rurvrw)NrRr	r	r	r
rt}s


rtc@s.eZdZdZd
dd�Zdd�Zdd�Zd	ZdS)�DeclList)�declsr5rJNcCs||_||_dSrK)rzr5)rrzr5r	r	r
rL�szDeclList.__init__cCs6g}t|jpg�D]\}}|�d||f�qt|�S�Nz	decls[%d]�rfrzrMrNrgr	r	r
r&�szDeclList.childrenccs|jpgD]
}|Vq
dSrK�rzrir	r	r
rQ�szDeclList.__iter__r	)NrRr	r	r	r
ry�s

ryc@s.eZdZdZd
dd�Zdd�Zdd�Zd	ZdS)�Default)rdr5rJNcCs||_||_dSrK)rdr5)rrdr5r	r	r
rL�szDefault.__init__cCs6g}t|jpg�D]\}}|�d||f�qt|�S)Nre)rfrdrMrNrgr	r	r
r&�szDefault.childrenccs|jpgD]
}|Vq
dSrK)rdrir	r	r
rQ�szDefault.__iter__r	)NrRr	r	r	r
r~�s

r~c@s.eZdZdZd
dd�Zdd�Zdd�Zd	ZdS)�DoWhile��cond�stmtr5rJNcCs||_||_||_dSrK�r�r�r5�rr�r�r5r	r	r
rL�szDoWhile.__init__cCs@g}|jdur|�d|jf�|jdur8|�d|jf�t|�S�Nr�r��r�rMr�rNrOr	r	r
r&�szDoWhile.childrenccs(|jdur|jV|jdur$|jVdSrK�r�r�r%r	r	r
rQ�s

zDoWhile.__iter__r	)NrRr	r	r	r
r�s

rc@s.eZdZdZd
dd�Zdd�Zdd�Zd	ZdS)�
EllipsisParamr^NcCs
||_dSrKr_r`r	r	r
rL�szEllipsisParam.__init__cCsdSrar	r%r	r	r
r&�szEllipsisParam.childrenccsdSrKr	r%r	r	r
rQ�szEllipsisParam.__iter__r	)NrRr	r	r	r
r��s

r�c@s.eZdZdZd
dd�Zdd�Zdd�Zd	ZdS)�EmptyStatementr^NcCs
||_dSrKr_r`r	r	r
rL�szEmptyStatement.__init__cCsdSrar	r%r	r	r
r&�szEmptyStatement.childrenccsdSrKr	r%r	r	r
rQ�szEmptyStatement.__iter__r	)NrRr	r	r	r
r��s

r�c@s.eZdZdZd
dd�Zdd�Zdd�Zd	ZdS)�Enum)r#�valuesr5rJNcCs||_||_||_dSrK)r#r�r5)rr#r�r5r	r	r
rL�sz
Enum.__init__cCs&g}|jdur|�d|jf�t|�S)Nr�)r�rMrNrOr	r	r
r&�sz
Enum.childrenccs|jdur|jVdSrK)r�r%r	r	r
rQ�s
z
Enum.__iter__�r#)NrRr	r	r	r
r��s

r�c@s.eZdZdZd
dd�Zdd�Zdd�Zd	ZdS)�
Enumerator)r#rqr5rJNcCs||_||_||_dSrK)r#rqr5)rr#rqr5r	r	r
rLszEnumerator.__init__cCs&g}|jdur|�d|jf�t|�S)Nrq)rqrMrNrOr	r	r
r&szEnumerator.childrenccs|jdur|jVdSrK)rqr%r	r	r
rQ
s
zEnumerator.__iter__r�)NrRr	r	r	r
r�s

r�c@s.eZdZdZd
dd�Zdd�Zdd�Zd	ZdS)�EnumeratorList)�enumeratorsr5rJNcCs||_||_dSrK)r�r5)rr�r5r	r	r
rLszEnumeratorList.__init__cCs6g}t|jpg�D]\}}|�d||f�qt|�S)Nzenumerators[%d])rfr�rMrNrgr	r	r
r&szEnumeratorList.childrenccs|jpgD]
}|Vq
dSrK)r�rir	r	r
rQszEnumeratorList.__iter__r	)NrRr	r	r	r
r�s

r�c@s.eZdZdZd
dd�Zdd�Zdd�Zd	ZdS)�ExprList��exprsr5rJNcCs||_||_dSrK�r�r5�rr�r5r	r	r
rL'szExprList.__init__cCs6g}t|jpg�D]\}}|�d||f�qt|�S�Nz	exprs[%d]�rfr�rMrNrgr	r	r
r&+szExprList.childrenccs|jpgD]
}|Vq
dSrK�r�rir	r	r
rQ1szExprList.__iter__r	)NrRr	r	r	r
r�%s

r�c@s.eZdZdZd
dd�Zdd�Zdd�Zd	ZdS)�FileAST)�extr5rJNcCs||_||_dSrK)r�r5)rr�r5r	r	r
rL9szFileAST.__init__cCs6g}t|jpg�D]\}}|�d||f�qt|�S)Nzext[%d])rfr�rMrNrgr	r	r
r&=szFileAST.childrenccs|jpgD]
}|Vq
dSrK)r�rir	r	r
rQCszFileAST.__iter__r	)NrRr	r	r	r
r�7s

r�c@s.eZdZdZd
dd�Zdd�Zdd�Zd	ZdS)�For)ror��nextr�r5rJNcCs"||_||_||_||_||_dSrK)ror�r�r�r5)rror�r�r�r5r	r	r
rLKs
zFor.__init__cCstg}|jdur|�d|jf�|jdur8|�d|jf�|jdurR|�d|jf�|jdurl|�d|jf�t|�S)Nror�r�r�)rorMr�r�r�rNrOr	r	r
r&RszFor.childrenccsL|jdur|jV|jdur$|jV|jdur6|jV|jdurH|jVdSrK)ror�r�r�r%r	r	r
rQZs



zFor.__iter__r	)NrRr	r	r	r
r�Is


r�c@s.eZdZdZd
dd�Zdd�Zdd�Zd	ZdS)�FuncCall)r#�argsr5rJNcCs||_||_||_dSrK)r#r�r5)rr#r�r5r	r	r
rLhszFuncCall.__init__cCs@g}|jdur|�d|jf�|jdur8|�d|jf�t|�S)Nr#r�)r#rMr�rNrOr	r	r
r&mszFuncCall.childrenccs(|jdur|jV|jdur$|jVdSrK)r#r�r%r	r	r
rQss

zFuncCall.__iter__r	)NrRr	r	r	r
r�fs

r�c@s.eZdZdZd
dd�Zdd�Zdd�Zd	ZdS)�FuncDecl)r�rGr5rJNcCs||_||_||_dSrK)r�rGr5)rr�rGr5r	r	r
rL}szFuncDecl.__init__cCs@g}|jdur|�d|jf�|jdur8|�d|jf�t|�S)Nr�rG)r�rMrGrNrOr	r	r
r&�szFuncDecl.childrenccs(|jdur|jV|jdur$|jVdSrK)r�rGr%r	r	r
rQ�s

zFuncDecl.__iter__r	)NrRr	r	r	r
r�{s

r�c@s.eZdZdZd
dd�Zdd�Zdd�Zd	ZdS)�FuncDef)�decl�param_decls�bodyr5rJNcCs||_||_||_||_dSrK)r�r�r�r5)rr�r�r�r5r	r	r
rL�szFuncDef.__init__cCsjg}|jdur|�d|jf�|jdur8|�d|jf�t|jpBg�D]\}}|�d||f�qFt|�S)Nr�r�zparam_decls[%d])r�rMr�rfr�rNrgr	r	r
r&�szFuncDef.childrenccs>|jdur|jV|jdur$|jV|jp,gD]
}|Vq.dSrK)r�r�r�rir	r	r
rQ�s

zFuncDef.__iter__r	)NrRr	r	r	r
r��s

r�c@s.eZdZdZd
dd�Zdd�Zdd�Zd	ZdS)�Goto�r#r5rJNcCs||_||_dSrK�r#r5�rr#r5r	r	r
rL�sz
Goto.__init__cCsg}t|�SrKrrrOr	r	r
r&�sz
Goto.childrenccsdSrKr	r%r	r	r
rQ�sz
Goto.__iter__r�)NrRr	r	r	r
r��s

r�c@s.eZdZdZd
dd�Zdd�Zdd�Zd	ZdS)�IDr�NcCs||_||_dSrKr�r�r	r	r
rL�szID.__init__cCsg}t|�SrKrrrOr	r	r
r&�szID.childrenccsdSrKr	r%r	r	r
rQ�szID.__iter__r�)NrRr	r	r	r
r��s

r�c@s.eZdZdZd
dd�Zdd�Zdd�Zd	ZdS)�IdentifierType)�namesr5rJNcCs||_||_dSrK)r�r5)rr�r5r	r	r
rL�szIdentifierType.__init__cCsg}t|�SrKrrrOr	r	r
r&�szIdentifierType.childrenccsdSrKr	r%r	r	r
rQ�szIdentifierType.__iter__)r�)NrRr	r	r	r
r��s

r�c@s.eZdZdZd
dd�Zdd�Zdd�Zd	ZdS)�If�r��iftrue�iffalser5rJNcCs||_||_||_||_dSrK�r�r�r�r5�rr�r�r�r5r	r	r
rL�szIf.__init__cCsZg}|jdur|�d|jf�|jdur8|�d|jf�|jdurR|�d|jf�t|�S�Nr�r�r��r�rMr�r�rNrOr	r	r
r&�s
zIf.childrenccs:|jdur|jV|jdur$|jV|jdur6|jVdSrK�r�r�r�r%r	r	r
rQ�s


zIf.__iter__r	)NrRr	r	r	r
r��s

r�c@s.eZdZdZd
dd�Zdd�Zdd�Zd	ZdS)�InitListr�NcCs||_||_dSrKr�r�r	r	r
rL�szInitList.__init__cCs6g}t|jpg�D]\}}|�d||f�qt|�Sr�r�rgr	r	r
r&�szInitList.childrenccs|jpgD]
}|Vq
dSrKr�rir	r	r
rQ�szInitList.__iter__r	)NrRr	r	r	r
r��s

r�c@s.eZdZdZd
dd�Zdd�Zdd�Zd	ZdS)�Label)r#r�r5rJNcCs||_||_||_dSrK)r#r�r5)rr#r�r5r	r	r
rLszLabel.__init__cCs&g}|jdur|�d|jf�t|�S)Nr�)r�rMrNrOr	r	r
r&szLabel.childrenccs|jdur|jVdSrK)r�r%r	r	r
rQs
zLabel.__iter__r�)NrRr	r	r	r
r�s

r�c@s.eZdZdZd
dd�Zdd�Zdd�Zd	ZdS)�NamedInitializer)r#rcr5rJNcCs||_||_||_dSrK)r#rcr5)rr#rcr5r	r	r
rLszNamedInitializer.__init__cCsPg}|jdur|�d|jf�t|jp(g�D]\}}|�d||f�q,t|�S)Nrczname[%d])rcrMrfr#rNrgr	r	r
r&s
zNamedInitializer.childrenccs,|jdur|jV|jpgD]
}|VqdSrK)rcr#rir	r	r
rQ%s
zNamedInitializer.__iter__r	)NrRr	r	r	r
r�s

r�c@s.eZdZdZd
dd�Zdd�Zdd�Zd	ZdS)�	ParamList)�paramsr5rJNcCs||_||_dSrK)r�r5)rr�r5r	r	r
rL/szParamList.__init__cCs6g}t|jpg�D]\}}|�d||f�qt|�S)Nz
params[%d])rfr�rMrNrgr	r	r
r&3szParamList.childrenccs|jpgD]
}|Vq
dSrK)r�rir	r	r
rQ9szParamList.__iter__r	)NrRr	r	r	r
r�-s

r�c@s.eZdZdZd
dd�Zdd�Zdd�Zd	ZdS)�PtrDecl)rurGr5rJNcCs||_||_||_dSrK)rurGr5)rrurGr5r	r	r
rLAszPtrDecl.__init__cCs&g}|jdur|�d|jf�t|�S�NrG�rGrMrNrOr	r	r
r&FszPtrDecl.childrenccs|jdur|jVdSrK�rGr%r	r	r
rQKs
zPtrDecl.__iter__)ru)NrRr	r	r	r
r�?s

r�c@s.eZdZdZd
dd�Zdd�Zdd�Zd	ZdS)�Return)rcr5rJNcCs||_||_dSrK)rcr5)rrcr5r	r	r
rLSszReturn.__init__cCs&g}|jdur|�d|jf�t|�S�Nrc�rcrMrNrOr	r	r
r&WszReturn.childrenccs|jdur|jVdSrK�rcr%r	r	r
rQ\s
zReturn.__iter__r	)NrRr	r	r	r
r�Qs

r�c@s.eZdZdZd
dd�Zdd�Zdd�Zd	ZdS)�Struct�r#rzr5rJNcCs||_||_||_dSrK�r#rzr5�rr#rzr5r	r	r
rLdszStruct.__init__cCs6g}t|jpg�D]\}}|�d||f�qt|�Sr{r|rgr	r	r
r&iszStruct.childrenccs|jpgD]
}|Vq
dSrKr}rir	r	r
rQoszStruct.__iter__r�)NrRr	r	r	r
r�bs

r�c@s.eZdZdZd
dd�Zdd�Zdd�Zd	ZdS)�	StructRef)r#rG�fieldr5rJNcCs||_||_||_||_dSrK)r#rGr�r5)rr#rGr�r5r	r	r
rLwszStructRef.__init__cCs@g}|jdur|�d|jf�|jdur8|�d|jf�t|�S)Nr#r�)r#rMr�rNrOr	r	r
r&}szStructRef.childrenccs(|jdur|jV|jdur$|jVdSrK)r#r�r%r	r	r
rQ�s

zStructRef.__iter__r�)NrRr	r	r	r
r�us

r�c@s.eZdZdZd
dd�Zdd�Zdd�Zd	ZdS)�Switchr�NcCs||_||_||_dSrKr�r�r	r	r
rL�szSwitch.__init__cCs@g}|jdur|�d|jf�|jdur8|�d|jf�t|�Sr�r�rOr	r	r
r&�szSwitch.childrenccs(|jdur|jV|jdur$|jVdSrKr�r%r	r	r
rQ�s

zSwitch.__iter__r	)NrRr	r	r	r
r��s

r�c@s.eZdZdZd
dd�Zdd�Zdd�Zd	ZdS)�	TernaryOpr�NcCs||_||_||_||_dSrKr�r�r	r	r
rL�szTernaryOp.__init__cCsZg}|jdur|�d|jf�|jdur8|�d|jf�|jdurR|�d|jf�t|�Sr�r�rOr	r	r
r&�s
zTernaryOp.childrenccs:|jdur|jV|jdur$|jV|jdur6|jVdSrKr�r%r	r	r
rQ�s


zTernaryOp.__iter__r	)NrRr	r	r	r
r��s

r�c@s.eZdZdZd
dd�Zdd�Zdd�Zd	ZdS)�TypeDecl)�declnamerurGr5rJNcCs||_||_||_||_dSrK)r�rurGr5)rr�rurGr5r	r	r
rL�szTypeDecl.__init__cCs&g}|jdur|�d|jf�t|�Sr�r�rOr	r	r
r&�szTypeDecl.childrenccs|jdur|jVdSrKr�r%r	r	r
rQ�s
zTypeDecl.__iter__)r�ru)NrRr	r	r	r
r��s

r�c@s.eZdZdZd
dd�Zdd�Zdd�Zd	ZdS)�Typedef)r#rurvrGr5rJNcCs"||_||_||_||_||_dSrK)r#rurvrGr5)rr#rurvrGr5r	r	r
rL�s
zTypedef.__init__cCs&g}|jdur|�d|jf�t|�Sr�r�rOr	r	r
r&�szTypedef.childrenccs|jdur|jVdSrKr�r%r	r	r
rQ�s
zTypedef.__iter__)r#rurv)NrRr	r	r	r
r��s

r�c@s.eZdZdZd
dd�Zdd�Zdd�Zd	ZdS)�Typename)r#rurGr5rJNcCs||_||_||_||_dSrK)r#rurGr5)rr#rurGr5r	r	r
rL�szTypename.__init__cCs&g}|jdur|�d|jf�t|�Sr�r�rOr	r	r
r&�szTypename.childrenccs|jdur|jVdSrKr�r%r	r	r
rQ�s
zTypename.__iter__)r#ru)NrRr	r	r	r
r��s

r�c@s.eZdZdZd
dd�Zdd�Zdd�Zd	ZdS)�UnaryOp)rVrcr5rJNcCs||_||_||_dSrK)rVrcr5)rrVrcr5r	r	r
rL�szUnaryOp.__init__cCs&g}|jdur|�d|jf�t|�Sr�r�rOr	r	r
r&�szUnaryOp.childrenccs|jdur|jVdSrKr�r%r	r	r
rQ�s
zUnaryOp.__iter__rY)NrRr	r	r	r
r��s

r�c@s.eZdZdZd
dd�Zdd�Zdd�Zd	ZdS)�Unionr�NcCs||_||_||_dSrKr�r�r	r	r
rLszUnion.__init__cCs6g}t|jpg�D]\}}|�d||f�qt|�Sr{r|rgr	r	r
r&szUnion.childrenccs|jpgD]
}|Vq
dSrKr}rir	r	r
rQszUnion.__iter__r�)NrRr	r	r	r
r�s

r�c@s.eZdZdZd
dd�Zdd�Zdd�Zd	ZdS)�Whiler�NcCs||_||_||_dSrKr�r�r	r	r
rLszWhile.__init__cCs@g}|jdur|�d|jf�|jdur8|�d|jf�t|�Sr�r�rOr	r	r
r&szWhile.childrenccs(|jdur|jV|jdur$|jVdSrKr�r%r	r	r
rQ%s

zWhile.__iter__r	)NrRr	r	r	r
r�s

r�c@s.eZdZdZd
dd�Zdd�Zdd�Zd	ZdS)�Pragma)�stringr5rJNcCs||_||_dSrK)r�r5)rr�r5r	r	r
rL/szPragma.__init__cCsg}t|�SrKrrrOr	r	r
r&3szPragma.childrenccsdSrKr	r%r	r	r
rQ7szPragma.__iter__)r�)NrRr	r	r	r
r�-s

r�)4r;r�objectrr=rFrSrUrZr]rbrjrlrnrprsrtryr~rr�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>sd	O: