Your IP : 216.73.216.196


Current Path : /opt/alt/python35/lib/python3.5/site-packages/pycparser/__pycache__/
Upload File :
Current File : //opt/alt/python35/lib/python3.5/site-packages/pycparser/__pycache__/c_ast.cpython-35.pyc



K�]([�@s0ddlZGdd�de�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�Z1dS)b�Nc@sCeZdZfZdd�Zejddddddd�ZdS)�NodecCsdS)z3 A sequence of all children that are Nodes
        N�)�selfrr�../pycparser/c_ast.py�childrensz
Node.childrenrFNc

scd|}|rB|dk	rB|j|�jjd|d�n|j|�jjd��jr�|r��fdd��jD�}djd	d
�|D��}	n8�fdd��jD�}
djdd
�|
D��}	|j|	�|r|jd
�j�|jd�xI�j�D];\}}|j|d|dd|d|d|d|�q WdS)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.
        � Nz <z>: z: cs%g|]}|t�|�f�qSr)�getattr)�.0�n)rrr�
<listcomp>=s	zNode.show.<locals>.<listcomp>z, css|]}d|VqdS)z%s=%sNr)r	Znvrrr�	<genexpr>>szNode.show.<locals>.<genexpr>csg|]}t�|��qSr)r)r	r
)rrrr@s	css|]}d|VqdS)z%sNr)r	�vrrrrAsz (at %s)�
�offset��	attrnames�	nodenames�	showcoord�
_my_node_name)�write�	__class__�__name__�
attr_names�join�coordr�show)
rZbufrrrrrZleadZnvlistZattrstrZvlistZ
child_name�childr)rrrs,
&	


z	Node.show)r�
__module__�__qualname__�	__slots__r�sys�stdoutrrrrrrsrc@s.eZdZdZdd�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)
    cCs/d|jj}t|||j�}||�S)z Visit a node.
        �visit_)rrr�
generic_visit)r�node�method�visitorrrr�visitsszNodeVisitor.visitcCs.x'|j�D]\}}|j|�q
WdS)zy Called if no explicit visitor function exists for a
            node. Implements preorder visiting of the node.
        N)rr()rr%Zc_name�crrrr$zszNodeVisitor.generic_visitN)rrr�__doc__r(r$rrrrr"Rs r"c@s7eZdZdZddd�Zd	d
�ZdZdS)
�	ArrayDecl�type�dim�	dim_qualsr�__weakref__NcCs(||_||_||_||_dS)N)r,r-r.r)rr,r-r.rrrr�__init__�s			zArrayDecl.__init__cCsZg}|jdk	r+|jd|jf�|jdk	rP|jd|jf�t|�S)Nr,r-)r,�appendr-�tuple)r�nodelistrrrr�szArrayDecl.children)r,r-r.rr/)r.)rrrrr0rrrrrrr+�sr+c@s7eZdZd
Zddd�Zdd	�ZfZdS)�ArrayRef�name�	subscriptrr/NcCs||_||_||_dS)N)r5r6r)rr5r6rrrrr0�s		zArrayRef.__init__cCsZg}|jdk	r+|jd|jf�|jdk	rP|jd|jf�t|�S)Nr5r6)r5r1r6r2)rr3rrrr�szArrayRef.children)r5r6rr/)rrrrr0rrrrrrr4�sr4c@s7eZdZdZddd�Zd	d
�ZdZdS)
�
Assignment�op�lvalue�rvaluerr/NcCs(||_||_||_||_dS)N)r8r9r:r)rr8r9r:rrrrr0�s			zAssignment.__init__cCsZg}|jdk	r+|jd|jf�|jdk	rP|jd|jf�t|�S)Nr9r:)r9r1r:r2)rr3rrrr�szAssignment.children)r8r9r:rr/)r8)rrrrr0rrrrrrr7�sr7c@s7eZdZdZddd�Zd	d
�ZdZdS)
�BinaryOpr8�left�rightrr/NcCs(||_||_||_||_dS)N)r8r<r=r)rr8r<r=rrrrr0�s			zBinaryOp.__init__cCsZg}|jdk	r+|jd|jf�|jdk	rP|jd|jf�t|�S)Nr<r=)r<r1r=r2)rr3rrrr�szBinaryOp.children)r8r<r=rr/)r8)rrrrr0rrrrrrr;�sr;c@s7eZdZdZddd�Zdd�ZfZdS)	�Breakrr/NcCs
||_dS)N)r)rrrrrr0�szBreak.__init__cCsfS)Nr)rrrrr�szBreak.children)rr/)rrrrr0rrrrrrr>�sr>c@s7eZdZd
Zddd�Zdd	�ZfZdS)�Case�expr�stmtsrr/NcCs||_||_||_dS)N)r@rAr)rr@rArrrrr0�s		z
Case.__init__cCsrg}|jdk	r+|jd|jf�x:t|jp=g�D]#\}}|jd||f�qAWt|�S)Nr@z	stmts[%d])r@r1�	enumeraterAr2)rr3�irrrrr�s"z
Case.children)r@rArr/)rrrrr0rrrrrrr?�sr?c@s7eZdZd
Zddd�Zdd	�ZfZdS)�Cast�to_typer@rr/NcCs||_||_||_dS)N)rEr@r)rrEr@rrrrr0�s		z
Cast.__init__cCsZg}|jdk	r+|jd|jf�|jdk	rP|jd|jf�t|�S)NrEr@)rEr1r@r2)rr3rrrr�sz
Cast.children)rEr@rr/)rrrrr0rrrrrrrD�srDc@s7eZdZd	Zddd�Zdd�ZfZdS)
�Compound�block_itemsrr/NcCs||_||_dS)N)rGr)rrGrrrrr0�s	zCompound.__init__cCsMg}x:t|jpg�D]#\}}|jd||f�qWt|�S)Nzblock_items[%d])rBrGr1r2)rr3rCrrrrr�s"zCompound.children)rGrr/)rrrrr0rrrrrrrF�srFc@s7eZdZd
Zddd�Zdd	�ZfZdS)�CompoundLiteralr,�initrr/NcCs||_||_||_dS)N)r,rIr)rr,rIrrrrr0�s		zCompoundLiteral.__init__cCsZg}|jdk	r+|jd|jf�|jdk	rP|jd|jf�t|�S)Nr,rI)r,r1rIr2)rr3rrrr�szCompoundLiteral.children)r,rIrr/)rrrrr0rrrrrrrH�srHc@s7eZdZd
Zddd�Zdd	�ZdZdS)�Constantr,�valuerr/NcCs||_||_||_dS)N)r,rKr)rr,rKrrrrr0	s		zConstant.__init__cCsg}t|�S)N)r2)rr3rrrrszConstant.children)r,rKrr/)r,rK)rrrrr0rrrrrrrJsrJc@s7eZdZdZddd�Zdd�ZfZdS)	�Continuerr/NcCs
||_dS)N)r)rrrrrr0szContinue.__init__cCsfS)Nr)rrrrrszContinue.children)rr/)rrrrr0rrrrrrrLsrLc	@s7eZdZdZd
dd�Zd
d�ZdZd
S)�Declr5�quals�storage�funcspecr,rI�bitsizerr/Nc		CsL||_||_||_||_||_||_||_||_dS)N)r5rNrOrPr,rIrQr)	rr5rNrOrPr,rIrQrrrrr0 s							z
Decl.__init__cCsg}|jdk	r+|jd|jf�|jdk	rP|jd|jf�|jdk	ru|jd|jf�t|�S)Nr,rIrQ)r,r1rIrQr2)rr3rrrr*sz
Decl.children)	r5rNrOrPr,rIrQrr/)r5rNrOrP)rrrrr0rrrrrrrMs
rMc@s7eZdZd	Zddd�Zdd�ZfZdS)
�DeclList�declsrr/NcCs||_||_dS)N)rSr)rrSrrrrr05s	zDeclList.__init__cCsMg}x:t|jpg�D]#\}}|jd||f�qWt|�S)Nz	decls[%d])rBrSr1r2)rr3rCrrrrr9s"zDeclList.children)rSrr/)rrrrr0rrrrrrrR3srRc@s7eZdZd	Zddd�Zdd�ZfZdS)
�DefaultrArr/NcCs||_||_dS)N)rAr)rrArrrrr0Cs	zDefault.__init__cCsMg}x:t|jpg�D]#\}}|jd||f�qWt|�S)Nz	stmts[%d])rBrAr1r2)rr3rCrrrrrGs"zDefault.children)rArr/)rrrrr0rrrrrrrTAsrTc@s7eZdZd
Zddd�Zdd	�ZfZdS)�DoWhile�cond�stmtrr/NcCs||_||_||_dS)N)rVrWr)rrVrWrrrrr0Qs		zDoWhile.__init__cCsZg}|jdk	r+|jd|jf�|jdk	rP|jd|jf�t|�S)NrVrW)rVr1rWr2)rr3rrrrVszDoWhile.children)rVrWrr/)rrrrr0rrrrrrrUOsrUc@s7eZdZdZddd�Zdd�ZfZdS)	�
EllipsisParamrr/NcCs
||_dS)N)r)rrrrrr0`szEllipsisParam.__init__cCsfS)Nr)rrrrrcszEllipsisParam.children)rr/)rrrrr0rrrrrrrX^srXc@s7eZdZdZddd�Zdd�ZfZdS)	�EmptyStatementrr/NcCs
||_dS)N)r)rrrrrr0jszEmptyStatement.__init__cCsfS)Nr)rrrrrmszEmptyStatement.children)rr/)rrrrr0rrrrrrrYhsrYc@s7eZdZd
Zddd�Zdd	�ZdZdS)�Enumr5�valuesrr/NcCs||_||_||_dS)N)r5r[r)rr5r[rrrrr0ts		z
Enum.__init__cCs5g}|jdk	r+|jd|jf�t|�S)Nr[)r[r1r2)rr3rrrrysz
Enum.children)r5r[rr/)r5)rrrrr0rrrrrrrZrsrZc@s7eZdZd
Zddd�Zdd	�ZdZdS)�
Enumeratorr5rKrr/NcCs||_||_||_dS)N)r5rKr)rr5rKrrrrr0�s		zEnumerator.__init__cCs5g}|jdk	r+|jd|jf�t|�S)NrK)rKr1r2)rr3rrrr�szEnumerator.children)r5rKrr/)r5)rrrrr0rrrrrrr\�sr\c@s7eZdZd	Zddd�Zdd�ZfZdS)
�EnumeratorList�enumeratorsrr/NcCs||_||_dS)N)r^r)rr^rrrrr0�s	zEnumeratorList.__init__cCsMg}x:t|jpg�D]#\}}|jd||f�qWt|�S)Nzenumerators[%d])rBr^r1r2)rr3rCrrrrr�s"zEnumeratorList.children)r^rr/)rrrrr0rrrrrrr]�sr]c@s7eZdZd	Zddd�Zdd�ZfZdS)
�ExprList�exprsrr/NcCs||_||_dS)N)r`r)rr`rrrrr0�s	zExprList.__init__cCsMg}x:t|jpg�D]#\}}|jd||f�qWt|�S)Nz	exprs[%d])rBr`r1r2)rr3rCrrrrr�s"zExprList.children)r`rr/)rrrrr0rrrrrrr_�sr_c@s7eZdZd	Zddd�Zdd�ZfZdS)
�FileAST�extrr/NcCs||_||_dS)N)rbr)rrbrrrrr0�s	zFileAST.__init__cCsMg}x:t|jpg�D]#\}}|jd||f�qWt|�S)Nzext[%d])rBrbr1r2)rr3rCrrrrr�s"zFileAST.children)rbrr/)rrrrr0rrrrrrra�srac@s7eZdZdZddd	�Zd
d�ZfZdS)
�ForrIrV�nextrWrr/NcCs1||_||_||_||_||_dS)N)rIrVrdrWr)rrIrVrdrWrrrrr0�s
				zFor.__init__cCs�g}|jdk	r+|jd|jf�|jdk	rP|jd|jf�|jdk	ru|jd|jf�|jdk	r�|jd|jf�t|�S)NrIrVrdrW)rIr1rVrdrWr2)rr3rrrr�szFor.children)rIrVrdrWrr/)rrrrr0rrrrrrrc�srcc@s7eZdZd
Zddd�Zdd	�ZfZdS)�FuncCallr5�argsrr/NcCs||_||_||_dS)N)r5rfr)rr5rfrrrrr0�s		zFuncCall.__init__cCsZg}|jdk	r+|jd|jf�|jdk	rP|jd|jf�t|�S)Nr5rf)r5r1rfr2)rr3rrrr�szFuncCall.children)r5rfrr/)rrrrr0rrrrrrre�srec@s7eZdZd
Zddd�Zdd	�ZfZdS)�FuncDeclrfr,rr/NcCs||_||_||_dS)N)rfr,r)rrfr,rrrrr0�s		zFuncDecl.__init__cCsZg}|jdk	r+|jd|jf�|jdk	rP|jd|jf�t|�S)Nrfr,)rfr1r,r2)rr3rrrr�szFuncDecl.children)rfr,rr/)rrrrr0rrrrrrrg�srgc@s7eZdZdZddd�Zd	d
�ZfZdS)�FuncDef�decl�param_decls�bodyrr/NcCs(||_||_||_||_dS)N)rirjrkr)rrirjrkrrrrr0�s			zFuncDef.__init__cCs�g}|jdk	r+|jd|jf�|jdk	rP|jd|jf�x:t|jpbg�D]#\}}|jd||f�qfWt|�S)Nrirkzparam_decls[%d])rir1rkrBrjr2)rr3rCrrrrr�s"zFuncDef.children)rirjrkrr/)rrrrr0rrrrrrrh�srhc@s7eZdZd	Zddd�Zdd�Zd
ZdS)�Gotor5rr/NcCs||_||_dS)N)r5r)rr5rrrrr0�s	z
Goto.__init__cCsg}t|�S)N)r2)rr3rrrrsz
Goto.children)r5rr/)r5)rrrrr0rrrrrrrl�srlc@s7eZdZd	Zddd�Zdd�Zd
ZdS)�IDr5rr/NcCs||_||_dS)N)r5r)rr5rrrrr0	s	zID.__init__cCsg}t|�S)N)r2)rr3rrrr
szID.children)r5rr/)r5)rrrrr0rrrrrrrmsrmc@s7eZdZd	Zddd�Zdd�Zd
ZdS)�IdentifierType�namesrr/NcCs||_||_dS)N)ror)rrorrrrr0s	zIdentifierType.__init__cCsg}t|�S)N)r2)rr3rrrrszIdentifierType.children)rorr/)ro)rrrrr0rrrrrrrnsrnc@s7eZdZdZddd�Zd	d
�ZfZdS)�IfrV�iftrue�iffalserr/NcCs(||_||_||_||_dS)N)rVrqrrr)rrVrqrrrrrrr0!s			zIf.__init__cCsg}|jdk	r+|jd|jf�|jdk	rP|jd|jf�|jdk	ru|jd|jf�t|�S)NrVrqrr)rVr1rqrrr2)rr3rrrr'szIf.children)rVrqrrrr/)rrrrr0rrrrrrrpsrpc@s7eZdZd	Zddd�Zdd�ZfZdS)
�InitListr`rr/NcCs||_||_dS)N)r`r)rr`rrrrr02s	zInitList.__init__cCsMg}x:t|jpg�D]#\}}|jd||f�qWt|�S)Nz	exprs[%d])rBr`r1r2)rr3rCrrrrr6s"zInitList.children)r`rr/)rrrrr0rrrrrrrs0srsc@s7eZdZd
Zddd�Zdd	�ZdZdS)�Labelr5rWrr/NcCs||_||_||_dS)N)r5rWr)rr5rWrrrrr0@s		zLabel.__init__cCs5g}|jdk	r+|jd|jf�t|�S)NrW)rWr1r2)rr3rrrrEszLabel.children)r5rWrr/)r5)rrrrr0rrrrrrrt>srtc@s7eZdZd
Zddd�Zdd	�ZfZdS)�NamedInitializerr5r@rr/NcCs||_||_||_dS)N)r5r@r)rr5r@rrrrr0Ns		zNamedInitializer.__init__cCsrg}|jdk	r+|jd|jf�x:t|jp=g�D]#\}}|jd||f�qAWt|�S)Nr@zname[%d])r@r1rBr5r2)rr3rCrrrrrSs"zNamedInitializer.children)r5r@rr/)rrrrr0rrrrrrruLsruc@s7eZdZd	Zddd�Zdd�ZfZdS)
�	ParamList�paramsrr/NcCs||_||_dS)N)rwr)rrwrrrrr0^s	zParamList.__init__cCsMg}x:t|jpg�D]#\}}|jd||f�qWt|�S)Nz
params[%d])rBrwr1r2)rr3rCrrrrrbs"zParamList.children)rwrr/)rrrrr0rrrrrrrv\srvc@s7eZdZd
Zddd�Zdd	�ZdZdS)�PtrDeclrNr,rr/NcCs||_||_||_dS)N)rNr,r)rrNr,rrrrr0ls		zPtrDecl.__init__cCs5g}|jdk	r+|jd|jf�t|�S)Nr,)r,r1r2)rr3rrrrqszPtrDecl.children)rNr,rr/)rN)rrrrr0rrrrrrrxjsrxc@s7eZdZd	Zddd�Zdd�ZfZdS)
�Returnr@rr/NcCs||_||_dS)N)r@r)rr@rrrrr0zs	zReturn.__init__cCs5g}|jdk	r+|jd|jf�t|�S)Nr@)r@r1r2)rr3rrrr~szReturn.children)r@rr/)rrrrr0rrrrrrryxsryc@s7eZdZd
Zddd�Zdd	�ZdZdS)�Structr5rSrr/NcCs||_||_||_dS)N)r5rSr)rr5rSrrrrr0�s		zStruct.__init__cCsMg}x:t|jpg�D]#\}}|jd||f�qWt|�S)Nz	decls[%d])rBrSr1r2)rr3rCrrrrr�s"zStruct.children)r5rSrr/)r5)rrrrr0rrrrrrrz�srzc@s7eZdZdZddd�Zd	d
�ZdZdS)
�	StructRefr5r,�fieldrr/NcCs(||_||_||_||_dS)N)r5r,r|r)rr5r,r|rrrrr0�s			zStructRef.__init__cCsZg}|jdk	r+|jd|jf�|jdk	rP|jd|jf�t|�S)Nr5r|)r5r1r|r2)rr3rrrr�szStructRef.children)r5r,r|rr/)r,)rrrrr0rrrrrrr{�sr{c@s7eZdZd
Zddd�Zdd	�ZfZdS)�SwitchrVrWrr/NcCs||_||_||_dS)N)rVrWr)rrVrWrrrrr0�s		zSwitch.__init__cCsZg}|jdk	r+|jd|jf�|jdk	rP|jd|jf�t|�S)NrVrW)rVr1rWr2)rr3rrrr�szSwitch.children)rVrWrr/)rrrrr0rrrrrrr}�sr}c@s7eZdZdZddd�Zd	d
�ZfZdS)�	TernaryOprVrqrrrr/NcCs(||_||_||_||_dS)N)rVrqrrr)rrVrqrrrrrrr0�s			zTernaryOp.__init__cCsg}|jdk	r+|jd|jf�|jdk	rP|jd|jf�|jdk	ru|jd|jf�t|�S)NrVrqrr)rVr1rqrrr2)rr3rrrr�szTernaryOp.children)rVrqrrrr/)rrrrr0rrrrrrr~�sr~c@s7eZdZdZddd�Zd	d
�ZdZdS)
�TypeDecl�declnamerNr,rr/NcCs(||_||_||_||_dS)N)r�rNr,r)rr�rNr,rrrrr0�s			zTypeDecl.__init__cCs5g}|jdk	r+|jd|jf�t|�S)Nr,)r,r1r2)rr3rrrr�szTypeDecl.children)r�rNr,rr/)r�rN)rrrrr0rrrrrrr�src@s7eZdZdZddd	�Zd
d�Zd
ZdS)�Typedefr5rNrOr,rr/NcCs1||_||_||_||_||_dS)N)r5rNrOr,r)rr5rNrOr,rrrrr0�s
				zTypedef.__init__cCs5g}|jdk	r+|jd|jf�t|�S)Nr,)r,r1r2)rr3rrrr�szTypedef.children)r5rNrOr,rr/)r5rNrO)rrrrr0rrrrrrr��sr�c@s7eZdZdZddd�Zd	d
�ZdZdS)
�Typenamer5rNr,rr/NcCs(||_||_||_||_dS)N)r5rNr,r)rr5rNr,rrrrr0�s			zTypename.__init__cCs5g}|jdk	r+|jd|jf�t|�S)Nr,)r,r1r2)rr3rrrr�szTypename.children)r5rNr,rr/)r5rN)rrrrr0rrrrrrr��sr�c@s7eZdZd
Zddd�Zdd	�ZdZdS)�UnaryOpr8r@rr/NcCs||_||_||_dS)N)r8r@r)rr8r@rrrrr0�s		zUnaryOp.__init__cCs5g}|jdk	r+|jd|jf�t|�S)Nr@)r@r1r2)rr3rrrr�szUnaryOp.children)r8r@rr/)r8)rrrrr0rrrrrrr��sr�c@s7eZdZd
Zddd�Zdd	�ZdZdS)�Unionr5rSrr/NcCs||_||_||_dS)N)r5rSr)rr5rSrrrrr0s		zUnion.__init__cCsMg}x:t|jpg�D]#\}}|jd||f�qWt|�S)Nz	decls[%d])rBrSr1r2)rr3rCrrrrrs"zUnion.children)r5rSrr/)r5)rrrrr0rrrrrrr�sr�c@s7eZdZd
Zddd�Zdd	�ZfZdS)�WhilerVrWrr/NcCs||_||_||_dS)N)rVrWr)rrVrWrrrrr0s		zWhile.__init__cCsZg}|jdk	r+|jd|jf�|jdk	rP|jd|jf�t|�S)NrVrW)rVr1rWr2)rr3rrrrszWhile.children)rVrWrr/)rrrrr0rrrrrrr�sr�)2r �objectrr"r+r4r7r;r>r?rDrFrHrJrLrMrRrTrUrXrYrZr\r]r_rarcrergrhrlrmrnrprsrtrurvrxryrzr{r}r~rr�r�r�r�r�rrrr�<module>s`<0