403Webshell
Server IP : 3.96.16.70  /  Your IP : 216.73.216.15
Web Server : Apache
System : Linux ip-172-31-26-103.ca-central-1.compute.internal 6.1.163-186.299.amzn2023.x86_64 #1 SMP PREEMPT_DYNAMIC Tue Feb 24 16:35:42 UTC 2026 x86_64
User : ec2-user ( 1000)
PHP Version : 8.4.18
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : OFF
Directory :  /usr/lib/python3.9/site-packages/pycparser/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

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

6��cv�@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)
rZbufr.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)rB)rr@�cr	r	r
r?�szNodeVisitor.generic_visit)rr8r9�__doc__r=rBr?r	r	r	r
r<ms!r<c@s.eZdZdZd
dd�Zdd�Zdd�Zd	ZdS)�	ArrayDecl)�type�dim�	dim_qualsr5�__weakref__NcCs||_||_||_||_dS�N)rFrGrHr5)rrFrGrHr5r	r	r
�__init__�szArrayDecl.__init__cCs@g}|jdur|�d|jf�|jdur8|�d|jf�t|�S)NrFrG)rF�appendrG�tuple�r�nodelistr	r	r
r&�szArrayDecl.childrenccs(|jdur|jV|jdur$|jVdSrJ)rFrGr%r	r	r
�__iter__�s

zArrayDecl.__iter__)rH)N�rr8r9rrKr&rPr4r	r	r	r
rE�s

rEc@s.eZdZdZd
dd�Zdd�Zdd�Zd	ZdS)�ArrayRef)r#�	subscriptr5rINcCs||_||_||_dSrJ)r#rSr5)rr#rSr5r	r	r
rK�szArrayRef.__init__cCs@g}|jdur|�d|jf�|jdur8|�d|jf�t|�S)Nr#rS)r#rLrSrMrNr	r	r
r&�szArrayRef.childrenccs(|jdur|jV|jdur$|jVdSrJ)r#rSr%r	r	r
rP�s

zArrayRef.__iter__r	)NrQr	r	r	r
rR�s

rRc@s.eZdZdZd
dd�Zdd�Zdd�Zd	ZdS)�
Assignment)�op�lvalue�rvaluer5rINcCs||_||_||_||_dSrJ)rUrVrWr5)rrUrVrWr5r	r	r
rK�szAssignment.__init__cCs@g}|jdur|�d|jf�|jdur8|�d|jf�t|�S)NrVrW)rVrLrWrMrNr	r	r
r&�szAssignment.childrenccs(|jdur|jV|jdur$|jVdSrJ)rVrWr%r	r	r
rP�s

zAssignment.__iter__�rU)NrQr	r	r	r
rT�s

rTc@s.eZdZdZd
dd�Zdd�Zdd�Zd	ZdS)�BinaryOp)rU�left�rightr5rINcCs||_||_||_||_dSrJ)rUrZr[r5)rrUrZr[r5r	r	r
rK�szBinaryOp.__init__cCs@g}|jdur|�d|jf�|jdur8|�d|jf�t|�S)NrZr[)rZrLr[rMrNr	r	r
r&�szBinaryOp.childrenccs(|jdur|jV|jdur$|jVdSrJ)rZr[r%r	r	r
rP�s

zBinaryOp.__iter__rX)NrQr	r	r	r
rY�s

rYc@s.eZdZdZd
dd�Zdd�Zdd�Zd	ZdS)�Break�r5rINcCs
||_dSrJ�r5�rr5r	r	r
rKszBreak.__init__cCsdS�Nr	r	r%r	r	r
r&szBreak.childrenccsdSrJr	r%r	r	r
rPszBreak.__iter__r	)NrQr	r	r	r
r\�s

r\c@s.eZdZdZd
dd�Zdd�Zdd�Zd	ZdS)�Case)�expr�stmtsr5rINcCs||_||_||_dSrJ)rbrcr5)rrbrcr5r	r	r
rKsz
Case.__init__cCsPg}|jdur|�d|jf�t|jp(g�D]\}}|�d||f�q,t|�S)Nrb�	stmts[%d])rbrL�	enumeratercrM�rrO�ir7r	r	r
r&s
z
Case.childrenccs,|jdur|jV|jpgD]
}|VqdSrJ)rbrc�rr7r	r	r
rPs
z
Case.__iter__r	)NrQr	r	r	r
ras

rac@s.eZdZdZd
dd�Zdd�Zdd�Zd	ZdS)�Cast)�to_typerbr5rINcCs||_||_||_dSrJ)rjrbr5)rrjrbr5r	r	r
rK$sz
Cast.__init__cCs@g}|jdur|�d|jf�|jdur8|�d|jf�t|�S)Nrjrb)rjrLrbrMrNr	r	r
r&)sz
Cast.childrenccs(|jdur|jV|jdur$|jVdSrJ)rjrbr%r	r	r
rP/s

z
Cast.__iter__r	)NrQr	r	r	r
ri"s

ric@s.eZdZdZd
dd�Zdd�Zdd�Zd	ZdS)�Compound)�block_itemsr5rINcCs||_||_dSrJ)rlr5)rrlr5r	r	r
rK9szCompound.__init__cCs6g}t|jpg�D]\}}|�d||f�qt|�S)Nzblock_items[%d])rerlrLrMrfr	r	r
r&=szCompound.childrenccs|jpgD]
}|Vq
dSrJ)rlrhr	r	r
rPCszCompound.__iter__r	)NrQr	r	r	r
rk7s

rkc@s.eZdZdZd
dd�Zdd�Zdd�Zd	ZdS)�CompoundLiteral)rF�initr5rINcCs||_||_||_dSrJ)rFrnr5)rrFrnr5r	r	r
rKKszCompoundLiteral.__init__cCs@g}|jdur|�d|jf�|jdur8|�d|jf�t|�S)NrFrn)rFrLrnrMrNr	r	r
r&PszCompoundLiteral.childrenccs(|jdur|jV|jdur$|jVdSrJ)rFrnr%r	r	r
rPVs

zCompoundLiteral.__iter__r	)NrQr	r	r	r
rmIs

rmc@s.eZdZdZd
dd�Zdd�Zdd�Zd	ZdS)�Constant)rF�valuer5rINcCs||_||_||_dSrJ)rFrpr5)rrFrpr5r	r	r
rK`szConstant.__init__cCsg}t|�SrJ�rMrNr	r	r
r&eszConstant.childrenccsdSrJr	r%r	r	r
rPiszConstant.__iter__)rFrp)NrQr	r	r	r
ro^s

roc@s.eZdZdZd
dd�Zdd�Zdd�Zd	ZdS)�Continuer]NcCs
||_dSrJr^r_r	r	r
rKqszContinue.__init__cCsdSr`r	r%r	r	r
r&tszContinue.childrenccsdSrJr	r%r	r	r
rPwszContinue.__iter__r	)NrQr	r	r	r
rros

rrc@s.eZdZdZd
dd�Zdd�Zdd�Zd	ZdS)�Decl)	r#�quals�storage�funcspecrFrn�bitsizer5rINc		Cs4||_||_||_||_||_||_||_||_dSrJ)r#rtrurvrFrnrwr5)	rr#rtrurvrFrnrwr5r	r	r
rKsz
Decl.__init__cCsZg}|jdur|�d|jf�|jdur8|�d|jf�|jdurR|�d|jf�t|�S)NrFrnrw)rFrLrnrwrMrNr	r	r
r&�s
z
Decl.childrenccs:|jdur|jV|jdur$|jV|jdur6|jVdSrJ)rFrnrwr%r	r	r
rP�s


z
Decl.__iter__)r#rtrurv)NrQr	r	r	r
rs}s


rsc@s.eZdZdZd
dd�Zdd�Zdd�Zd	ZdS)�DeclList)�declsr5rINcCs||_||_dSrJ)ryr5)rryr5r	r	r
rK�szDeclList.__init__cCs6g}t|jpg�D]\}}|�d||f�qt|�S�Nz	decls[%d]�reryrLrMrfr	r	r
r&�szDeclList.childrenccs|jpgD]
}|Vq
dSrJ�ryrhr	r	r
rP�szDeclList.__iter__r	)NrQr	r	r	r
rx�s

rxc@s.eZdZdZd
dd�Zdd�Zdd�Zd	ZdS)�Default)rcr5rINcCs||_||_dSrJ)rcr5)rrcr5r	r	r
rK�szDefault.__init__cCs6g}t|jpg�D]\}}|�d||f�qt|�S)Nrd)rercrLrMrfr	r	r
r&�szDefault.childrenccs|jpgD]
}|Vq
dSrJ)rcrhr	r	r
rP�szDefault.__iter__r	)NrQr	r	r	r
r}�s

r}c@s.eZdZdZd
dd�Zdd�Zdd�Zd	ZdS)�DoWhile��cond�stmtr5rINcCs||_||_||_dSrJ�r�r�r5�rr�r�r5r	r	r
rK�szDoWhile.__init__cCs@g}|jdur|�d|jf�|jdur8|�d|jf�t|�S�Nr�r��r�rLr�rMrNr	r	r
r&�szDoWhile.childrenccs(|jdur|jV|jdur$|jVdSrJ�r�r�r%r	r	r
rP�s

zDoWhile.__iter__r	)NrQr	r	r	r
r~�s

r~c@s.eZdZdZd
dd�Zdd�Zdd�Zd	ZdS)�
EllipsisParamr]NcCs
||_dSrJr^r_r	r	r
rK�szEllipsisParam.__init__cCsdSr`r	r%r	r	r
r&�szEllipsisParam.childrenccsdSrJr	r%r	r	r
rP�szEllipsisParam.__iter__r	)NrQr	r	r	r
r��s

r�c@s.eZdZdZd
dd�Zdd�Zdd�Zd	ZdS)�EmptyStatementr]NcCs
||_dSrJr^r_r	r	r
rK�szEmptyStatement.__init__cCsdSr`r	r%r	r	r
r&�szEmptyStatement.childrenccsdSrJr	r%r	r	r
rP�szEmptyStatement.__iter__r	)NrQr	r	r	r
r��s

r�c@s.eZdZdZd
dd�Zdd�Zdd�Zd	ZdS)�Enum)r#�valuesr5rINcCs||_||_||_dSrJ)r#r�r5)rr#r�r5r	r	r
rK�sz
Enum.__init__cCs&g}|jdur|�d|jf�t|�S)Nr�)r�rLrMrNr	r	r
r&�sz
Enum.childrenccs|jdur|jVdSrJ)r�r%r	r	r
rP�s
z
Enum.__iter__�r#)NrQr	r	r	r
r��s

r�c@s.eZdZdZd
dd�Zdd�Zdd�Zd	ZdS)�
Enumerator)r#rpr5rINcCs||_||_||_dSrJ)r#rpr5)rr#rpr5r	r	r
rKszEnumerator.__init__cCs&g}|jdur|�d|jf�t|�S)Nrp)rprLrMrNr	r	r
r&szEnumerator.childrenccs|jdur|jVdSrJ)rpr%r	r	r
rP
s
zEnumerator.__iter__r�)NrQr	r	r	r
r�s

r�c@s.eZdZdZd
dd�Zdd�Zdd�Zd	ZdS)�EnumeratorList)�enumeratorsr5rINcCs||_||_dSrJ)r�r5)rr�r5r	r	r
rKszEnumeratorList.__init__cCs6g}t|jpg�D]\}}|�d||f�qt|�S)Nzenumerators[%d])rer�rLrMrfr	r	r
r&szEnumeratorList.childrenccs|jpgD]
}|Vq
dSrJ)r�rhr	r	r
rPszEnumeratorList.__iter__r	)NrQr	r	r	r
r�s

r�c@s.eZdZdZd
dd�Zdd�Zdd�Zd	ZdS)�ExprList��exprsr5rINcCs||_||_dSrJ�r�r5�rr�r5r	r	r
rK'szExprList.__init__cCs6g}t|jpg�D]\}}|�d||f�qt|�S�Nz	exprs[%d]�rer�rLrMrfr	r	r
r&+szExprList.childrenccs|jpgD]
}|Vq
dSrJ�r�rhr	r	r
rP1szExprList.__iter__r	)NrQr	r	r	r
r�%s

r�c@s.eZdZdZd
dd�Zdd�Zdd�Zd	ZdS)�FileAST)�extr5rINcCs||_||_dSrJ)r�r5)rr�r5r	r	r
rK9szFileAST.__init__cCs6g}t|jpg�D]\}}|�d||f�qt|�S)Nzext[%d])rer�rLrMrfr	r	r
r&=szFileAST.childrenccs|jpgD]
}|Vq
dSrJ)r�rhr	r	r
rPCszFileAST.__iter__r	)NrQr	r	r	r
r�7s

r�c@s.eZdZdZd
dd�Zdd�Zdd�Zd	ZdS)�For)rnr��nextr�r5rINcCs"||_||_||_||_||_dSrJ)rnr�r�r�r5)rrnr�r�r�r5r	r	r
rKKs
zFor.__init__cCstg}|jdur|�d|jf�|jdur8|�d|jf�|jdurR|�d|jf�|jdurl|�d|jf�t|�S)Nrnr�r�r�)rnrLr�r�r�rMrNr	r	r
r&RszFor.childrenccsL|jdur|jV|jdur$|jV|jdur6|jV|jdurH|jVdSrJ)rnr�r�r�r%r	r	r
rPZs



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


r�c@s.eZdZdZd
dd�Zdd�Zdd�Zd	ZdS)�FuncCall)r#�argsr5rINcCs||_||_||_dSrJ)r#r�r5)rr#r�r5r	r	r
rKhszFuncCall.__init__cCs@g}|jdur|�d|jf�|jdur8|�d|jf�t|�S)Nr#r�)r#rLr�rMrNr	r	r
r&mszFuncCall.childrenccs(|jdur|jV|jdur$|jVdSrJ)r#r�r%r	r	r
rPss

zFuncCall.__iter__r	)NrQr	r	r	r
r�fs

r�c@s.eZdZdZd
dd�Zdd�Zdd�Zd	ZdS)�FuncDecl)r�rFr5rINcCs||_||_||_dSrJ)r�rFr5)rr�rFr5r	r	r
rK}szFuncDecl.__init__cCs@g}|jdur|�d|jf�|jdur8|�d|jf�t|�S)Nr�rF)r�rLrFrMrNr	r	r
r&�szFuncDecl.childrenccs(|jdur|jV|jdur$|jVdSrJ)r�rFr%r	r	r
rP�s

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

r�c@s.eZdZdZd
dd�Zdd�Zdd�Zd	ZdS)�FuncDef)�decl�param_decls�bodyr5rINcCs||_||_||_||_dSrJ)r�r�r�r5)rr�r�r�r5r	r	r
rK�szFuncDef.__init__cCsjg}|jdur|�d|jf�|jdur8|�d|jf�t|jpBg�D]\}}|�d||f�qFt|�S)Nr�r�zparam_decls[%d])r�rLr�rer�rMrfr	r	r
r&�szFuncDef.childrenccs>|jdur|jV|jdur$|jV|jp,gD]
}|Vq.dSrJ)r�r�r�rhr	r	r
rP�s

zFuncDef.__iter__r	)NrQr	r	r	r
r��s

r�c@s.eZdZdZd
dd�Zdd�Zdd�Zd	ZdS)�Goto�r#r5rINcCs||_||_dSrJ�r#r5�rr#r5r	r	r
rK�sz
Goto.__init__cCsg}t|�SrJrqrNr	r	r
r&�sz
Goto.childrenccsdSrJr	r%r	r	r
rP�sz
Goto.__iter__r�)NrQr	r	r	r
r��s

r�c@s.eZdZdZd
dd�Zdd�Zdd�Zd	ZdS)�IDr�NcCs||_||_dSrJr�r�r	r	r
rK�szID.__init__cCsg}t|�SrJrqrNr	r	r
r&�szID.childrenccsdSrJr	r%r	r	r
rP�szID.__iter__r�)NrQr	r	r	r
r��s

r�c@s.eZdZdZd
dd�Zdd�Zdd�Zd	ZdS)�IdentifierType)�namesr5rINcCs||_||_dSrJ)r�r5)rr�r5r	r	r
rK�szIdentifierType.__init__cCsg}t|�SrJrqrNr	r	r
r&�szIdentifierType.childrenccsdSrJr	r%r	r	r
rP�szIdentifierType.__iter__)r�)NrQr	r	r	r
r��s

r�c@s.eZdZdZd
dd�Zdd�Zdd�Zd	ZdS)�If�r��iftrue�iffalser5rINcCs||_||_||_||_dSrJ�r�r�r�r5�rr�r�r�r5r	r	r
rK�szIf.__init__cCsZg}|jdur|�d|jf�|jdur8|�d|jf�|jdurR|�d|jf�t|�S�Nr�r�r��r�rLr�r�rMrNr	r	r
r&�s
zIf.childrenccs:|jdur|jV|jdur$|jV|jdur6|jVdSrJ�r�r�r�r%r	r	r
rP�s


zIf.__iter__r	)NrQr	r	r	r
r��s

r�c@s.eZdZdZd
dd�Zdd�Zdd�Zd	ZdS)�InitListr�NcCs||_||_dSrJr�r�r	r	r
rK�szInitList.__init__cCs6g}t|jpg�D]\}}|�d||f�qt|�Sr�r�rfr	r	r
r&�szInitList.childrenccs|jpgD]
}|Vq
dSrJr�rhr	r	r
rP�szInitList.__iter__r	)NrQr	r	r	r
r��s

r�c@s.eZdZdZd
dd�Zdd�Zdd�Zd	ZdS)�Label)r#r�r5rINcCs||_||_||_dSrJ)r#r�r5)rr#r�r5r	r	r
rKszLabel.__init__cCs&g}|jdur|�d|jf�t|�S)Nr�)r�rLrMrNr	r	r
r&szLabel.childrenccs|jdur|jVdSrJ)r�r%r	r	r
rPs
zLabel.__iter__r�)NrQr	r	r	r
r�s

r�c@s.eZdZdZd
dd�Zdd�Zdd�Zd	ZdS)�NamedInitializer)r#rbr5rINcCs||_||_||_dSrJ)r#rbr5)rr#rbr5r	r	r
rKszNamedInitializer.__init__cCsPg}|jdur|�d|jf�t|jp(g�D]\}}|�d||f�q,t|�S)Nrbzname[%d])rbrLrer#rMrfr	r	r
r&s
zNamedInitializer.childrenccs,|jdur|jV|jpgD]
}|VqdSrJ)rbr#rhr	r	r
rP%s
zNamedInitializer.__iter__r	)NrQr	r	r	r
r�s

r�c@s.eZdZdZd
dd�Zdd�Zdd�Zd	ZdS)�	ParamList)�paramsr5rINcCs||_||_dSrJ)r�r5)rr�r5r	r	r
rK/szParamList.__init__cCs6g}t|jpg�D]\}}|�d||f�qt|�S)Nz
params[%d])rer�rLrMrfr	r	r
r&3szParamList.childrenccs|jpgD]
}|Vq
dSrJ)r�rhr	r	r
rP9szParamList.__iter__r	)NrQr	r	r	r
r�-s

r�c@s.eZdZdZd
dd�Zdd�Zdd�Zd	ZdS)�PtrDecl)rtrFr5rINcCs||_||_||_dSrJ)rtrFr5)rrtrFr5r	r	r
rKAszPtrDecl.__init__cCs&g}|jdur|�d|jf�t|�S�NrF�rFrLrMrNr	r	r
r&FszPtrDecl.childrenccs|jdur|jVdSrJ�rFr%r	r	r
rPKs
zPtrDecl.__iter__)rt)NrQr	r	r	r
r�?s

r�c@s.eZdZdZd
dd�Zdd�Zdd�Zd	ZdS)�Return)rbr5rINcCs||_||_dSrJ)rbr5)rrbr5r	r	r
rKSszReturn.__init__cCs&g}|jdur|�d|jf�t|�S�Nrb�rbrLrMrNr	r	r
r&WszReturn.childrenccs|jdur|jVdSrJ�rbr%r	r	r
rP\s
zReturn.__iter__r	)NrQr	r	r	r
r�Qs

r�c@s.eZdZdZd
dd�Zdd�Zdd�Zd	ZdS)�Struct�r#ryr5rINcCs||_||_||_dSrJ�r#ryr5�rr#ryr5r	r	r
rKdszStruct.__init__cCs6g}t|jpg�D]\}}|�d||f�qt|�Srzr{rfr	r	r
r&iszStruct.childrenccs|jpgD]
}|Vq
dSrJr|rhr	r	r
rPoszStruct.__iter__r�)NrQr	r	r	r
r�bs

r�c@s.eZdZdZd
dd�Zdd�Zdd�Zd	ZdS)�	StructRef)r#rF�fieldr5rINcCs||_||_||_||_dSrJ)r#rFr�r5)rr#rFr�r5r	r	r
rKwszStructRef.__init__cCs@g}|jdur|�d|jf�|jdur8|�d|jf�t|�S)Nr#r�)r#rLr�rMrNr	r	r
r&}szStructRef.childrenccs(|jdur|jV|jdur$|jVdSrJ)r#r�r%r	r	r
rP�s

zStructRef.__iter__r�)NrQr	r	r	r
r�us

r�c@s.eZdZdZd
dd�Zdd�Zdd�Zd	ZdS)�SwitchrNcCs||_||_||_dSrJr�r�r	r	r
rK�szSwitch.__init__cCs@g}|jdur|�d|jf�|jdur8|�d|jf�t|�Sr�r�rNr	r	r
r&�szSwitch.childrenccs(|jdur|jV|jdur$|jVdSrJr�r%r	r	r
rP�s

zSwitch.__iter__r	)NrQr	r	r	r
r��s

r�c@s.eZdZdZd
dd�Zdd�Zdd�Zd	ZdS)�	TernaryOpr�NcCs||_||_||_||_dSrJr�r�r	r	r
rK�szTernaryOp.__init__cCsZg}|jdur|�d|jf�|jdur8|�d|jf�|jdurR|�d|jf�t|�Sr�r�rNr	r	r
r&�s
zTernaryOp.childrenccs:|jdur|jV|jdur$|jV|jdur6|jVdSrJr�r%r	r	r
rP�s


zTernaryOp.__iter__r	)NrQr	r	r	r
r��s

r�c@s.eZdZdZd
dd�Zdd�Zdd�Zd	ZdS)�TypeDecl)�declnamertrFr5rINcCs||_||_||_||_dSrJ)r�rtrFr5)rr�rtrFr5r	r	r
rK�szTypeDecl.__init__cCs&g}|jdur|�d|jf�t|�Sr�r�rNr	r	r
r&�szTypeDecl.childrenccs|jdur|jVdSrJr�r%r	r	r
rP�s
zTypeDecl.__iter__)r�rt)NrQr	r	r	r
r��s

r�c@s.eZdZdZd
dd�Zdd�Zdd�Zd	ZdS)�Typedef)r#rtrurFr5rINcCs"||_||_||_||_||_dSrJ)r#rtrurFr5)rr#rtrurFr5r	r	r
rK�s
zTypedef.__init__cCs&g}|jdur|�d|jf�t|�Sr�r�rNr	r	r
r&�szTypedef.childrenccs|jdur|jVdSrJr�r%r	r	r
rP�s
zTypedef.__iter__)r#rtru)NrQr	r	r	r
r��s

r�c@s.eZdZdZd
dd�Zdd�Zdd�Zd	ZdS)�Typename)r#rtrFr5rINcCs||_||_||_||_dSrJ)r#rtrFr5)rr#rtrFr5r	r	r
rK�szTypename.__init__cCs&g}|jdur|�d|jf�t|�Sr�r�rNr	r	r
r&�szTypename.childrenccs|jdur|jVdSrJr�r%r	r	r
rP�s
zTypename.__iter__)r#rt)NrQr	r	r	r
r��s

r�c@s.eZdZdZd
dd�Zdd�Zdd�Zd	ZdS)�UnaryOp)rUrbr5rINcCs||_||_||_dSrJ)rUrbr5)rrUrbr5r	r	r
rK�szUnaryOp.__init__cCs&g}|jdur|�d|jf�t|�Sr�r�rNr	r	r
r&�szUnaryOp.childrenccs|jdur|jVdSrJr�r%r	r	r
rP�s
zUnaryOp.__iter__rX)NrQr	r	r	r
r��s

r�c@s.eZdZdZd
dd�Zdd�Zdd�Zd	ZdS)�Unionr�NcCs||_||_||_dSrJr�r�r	r	r
rKszUnion.__init__cCs6g}t|jpg�D]\}}|�d||f�qt|�Srzr{rfr	r	r
r&szUnion.childrenccs|jpgD]
}|Vq
dSrJr|rhr	r	r
rPszUnion.__iter__r�)NrQr	r	r	r
r�s

r�c@s.eZdZdZd
dd�Zdd�Zdd�Zd	ZdS)�WhilerNcCs||_||_||_dSrJr�r�r	r	r
rKszWhile.__init__cCs@g}|jdur|�d|jf�|jdur8|�d|jf�t|�Sr�r�rNr	r	r
r&szWhile.childrenccs(|jdur|jV|jdur$|jVdSrJr�r%r	r	r
rP%s

zWhile.__iter__r	)NrQr	r	r	r
r�s

r�c@s.eZdZdZd
dd�Zdd�Zdd�Zd	ZdS)�Pragma)�stringr5rINcCs||_||_dSrJ)r�r5)rr�r5r	r	r
rK/szPragma.__init__cCsg}t|�SrJrqrNr	r	r
r&3szPragma.childrenccsdSrJr	r%r	r	r
rP7szPragma.__iter__)r�)NrQr	r	r	r
r�-s

r�)4r:r�objectrr<rErRrTrYr\rarirkrmrorrrsrxr}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>sd	O:

Youez - 2016 - github.com/yon3zu
LinuXploit