ÿØÿà JFIF      ÿÛ „ 	 ( %!1!%)+//.383,7(-.+



-%%-////---/-.+/--+------/------/--0+--/-/-----.-----ÿÀ  ¥2" ÿÄ               ÿÄ J  	     ! 1AQ"aq2‘#BR‚¡ÁÑ3br’¢±Âð$CSƒ²á4c“%DsÓñÿÄ              ÿÄ *        !1AQa‘"2q3±ð#b¡ÿÚ   ? ¼QxJQaÍuò¸Zö Úü8,ÐÚú
"SSn<rçù–´âE—^ªBÖ9À\†¸ÔÁT­ÃÛ5
ëd´³Í#Ý;Þ38œî ¶H£M:wÎ3…³…âpÔF&‚FK¸9„â4àGEõªfÿ ‘ñ(ßw­pŽF|È¥ù®häðÍÑ¶¹‘[ÒinÙW¶ùñY˜Q{›K"išÒ[Ú8žë\F¹@-?v"ÔU”,ìöžkÿ {I‡£šÍ?e
ríV
..............................................................................................................................................................................
.............................................................................                                                  
                                                                                                                                                                                     ÿØÿà JFIF      ÿÛ „ 	 ( %!1!%)+//.383,7(-.+



-%%-////---/-.+/--+------/------/--0+--/-/-----.-----ÿÀ  ¥2" ÿÄ               ÿÄ J  	     ! 1AQ"aq2‘#BR‚¡ÁÑ3br’¢±Âð$CSƒ²á4c“%DsÓñÿÄ              ÿÄ *        !1AQa‘"2q3±ð#b¡ÿÚ   ? ¼QxJQaÍuò¸Zö Úü8,ÐÚú
"SSn<rçù–´âE—^ªBÖ9À\†¸ÔÁT­ÃÛ5
ëd´³Í#Ý;Þ38œî ¶H£M:wÎ3…³…âpÔF&‚FK¸9„â4àGEõªfÿ ‘ñ(ßw­pŽF|È¥ù®häðÍÑ¶¹‘[ÒinÙW¶ùñY˜Q{›K"išÒ[Ú8žë\F¹@-?v"ÔU”,ìöžkÿ {I‡£šÍ?e
ríV
..............................................................................................................................................................................
.............................................................................                                                  
                                                                                                                                                                                     3
]([                 @   s  d dl 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 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Z1dS )b    Nc               @   s0   e Zd Zf Zdd ZejdddddfddZdS )Nodec             C   s   dS )z3 A sequence of all children that are Nodes
        N )selfr   r   /usr/lib/python3.6/c_ast.pychildren   s    zNode.childrenr   FNc          	      s  d| }|r4|dk	r4|j | jj d | d  n|j | jj d   jr|r~ fdd jD }djd	d
 |D }	n( fdd jD }
djdd
 |
D }	|j |	 |r|j d j  |j d x. j D ]"\}}|j||d ||||d qW 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.
         Nz <z>: z: c                s   g | ]}|t  |fqS r   )getattr).0n)r   r   r   
<listcomp>=   s    zNode.show.<locals>.<listcomp>z, c             s   s   | ]}d | V  qdS )z%s=%sNr   )r	   Znvr   r   r   	<genexpr>>   s    zNode.show.<locals>.<genexpr>c                s   g | ]}t  |qS r   )r   )r	   r
   )r   r   r   r   @   s    c             s   s   | ]}d | V  qdS )z%sNr   )r	   vr   r   r   r   A   s    z (at %s)
   )offset	attrnames	nodenames	showcoord_my_node_name)write	__class____name__
attr_namesjoincoordr   show)r   Zbufr   r   r   r   r   ZleadZnvlistZattrstrZvlistZ
child_namechildr   )r   r   r      s,     

z	Node.show)r   
__module____qualname__	__slots__r   sysstdoutr   r   r   r   r   r      s   r   c               @   s    e 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)
    c             C   s"   d|j j }t| || j}||S )z Visit a node.
        Zvisit_)r   r   r   generic_visit)r   nodemethodZvisitorr   r   r   visits   s    zNodeVisitor.visitc             C   s$   x|j  D ]\}}| j| q
W dS )zy Called if no explicit visitor function exists for a
            node. Implements preorder visiting of the node.
        N)r   r&   )r   r$   Zc_namecr   r   r   r#   z   s    zNodeVisitor.generic_visitN)r   r   r   __doc__r&   r#   r   r   r   r   r"   R   s    r"   c               @   s&   e Zd ZdZdddZd	d
 ZdZdS )	ArrayDecltypedim	dim_qualsr   __weakref__Nc             C   s   || _ || _|| _|| _d S )N)r*   r+   r,   r   )r   r*   r+   r,   r   r   r   r   __init__   s    zArrayDecl.__init__c             C   s@   g }| j d k	r|jd| j f | jd k	r8|jd| jf t|S )Nr*   r+   )r*   appendr+   tuple)r   nodelistr   r   r   r      s    
 
 zArrayDecl.children)r*   r+   r,   r   r-   )N)r,   )r   r   r   r   r.   r   r   r   r   r   r   r)      s   
r)   c               @   s&   e Zd Zd
ZdddZdd	 Zf ZdS )ArrayRefname	subscriptr   r-   Nc             C   s   || _ || _|| _d S )N)r3   r4   r   )r   r3   r4   r   r   r   r   r.      s    zArrayRef.__init__c             C   s@   g }| j d k	r|jd| j f | jd k	r8|jd| jf t|S )Nr3   r4   )r3   r/   r4   r0   )r   r1   r   r   r   r      s    
 
 zArrayRef.children)r3   r4   r   r-   )N)r   r   r   r   r.   r   r   r   r   r   r   r2      s   
r2   c               @   s&   e Zd ZdZdddZd	d
 ZdZdS )
Assignmentoplvaluervaluer   r-   Nc             C   s   || _ || _|| _|| _d S )N)r6   r7   r8   r   )r   r6   r7   r8   r   r   r   r   r.      s    zAssignment.__init__c             C   s@   g }| j d k	r|jd| j f | jd k	r8|jd| jf t|S )Nr7   r8   )r7   r/   r8   r0   )r   r1   r   r   r   r      s    
 
 zAssignment.children)r6   r7   r8   r   r-   )N)r6   )r   r   r   r   r.   r   r   r   r   r   r   r5      s   
r5   c               @   s&   e Zd ZdZdddZd	d
 ZdZdS )BinaryOpr6   leftrightr   r-   Nc             C   s   || _ || _|| _|| _d S )N)r6   r:   r;   r   )r   r6   r:   r;   r   r   r   r   r.      s    zBinaryOp.__init__c             C   s@   g }| j d k	r|jd| j f | jd k	r8|jd| jf t|S )Nr:   r;   )r:   r/   r;   r0   )r   r1   r   r   r   r      s    
 
 zBinaryOp.children)r6   r:   r;   r   r-   )N)r6   )r   r   r   r   r.   r   r   r   r   r   r   r9      s   
r9   c               @   s&   e Zd ZdZd	ddZdd Zf ZdS )
Breakr   r-   Nc             C   s
   || _ d S )N)r   )r   r   r   r   r   r.      s    zBreak.__init__c             C   s   f S )Nr   )r   r   r   r   r      s    zBreak.children)r   r-   )N)r   r   r   r   r.   r   r   r   r   r   r   r<      s   
r<   c               @   s&   e Zd Zd
ZdddZdd	 Zf ZdS )Caseexprstmtsr   r-   Nc             C   s   || _ || _|| _d S )N)r>   r?   r   )r   r>   r?   r   r   r   r   r.      s    zCase.__init__c             C   sT   g }| j d k	r|jd| j f x,t| jp*g D ]\}}|jd| |f q.W t|S )Nr>   z	stmts[%d])r>   r/   	enumerater?   r0   )r   r1   ir   r   r   r   r      s    
 zCase.children)r>   r?   r   r-   )N)r   r   r   r   r.   r   r   r   r   r   r   r=      s   
r=   c               @   s&   e Zd Zd
ZdddZdd	 Zf ZdS )Castto_typer>   r   r-   Nc             C   s   || _ || _|| _d S )N)rC   r>   r   )r   rC   r>   r   r   r   r   r.      s    zCast.__init__c             C   s@   g }| j d k	r|jd| j f | jd k	r8|jd| jf t|S )NrC   r>   )rC   r/   r>   r0   )r   r1   r   r   r   r      s    
 
 zCast.children)rC   r>   r   r-   )N)r   r   r   r   r.   r   r   r   r   r   r   rB      s   
rB   c               @   s&   e Zd Zd	Zd
ddZdd Zf ZdS )Compoundblock_itemsr   r-   Nc             C   s   || _ || _d S )N)rE   r   )r   rE   r   r   r   r   r.      s    zCompound.__init__c             C   s:   g }x,t | jpg D ]\}}|jd| |f qW t|S )Nzblock_items[%d])r@   rE   r/   r0   )r   r1   rA   r   r   r   r   r      s    zCompound.children)rE   r   r-   )N)r   r   r   r   r.   r   r   r   r   r   r   rD      s   
rD   c               @   s&   e Zd Zd
ZdddZdd	 Zf ZdS )CompoundLiteralr*   initr   r-   Nc             C   s   || _ || _|| _d S )N)r*   rG   r   )r   r*   rG   r   r   r   r   r.      s    zCompoundLiteral.__init__c             C   s@   g }| j d k	r|jd| j f | jd k	r8|jd| jf t|S )Nr*   rG   )r*   r/   rG   r0   )r   r1   r   r   r   r      s    
 
 zCompoundLiteral.children)r*   rG   r   r-   )N)r   r   r   r   r.   r   r   r   r   r   r   rF      s   
rF   c               @   s&   e Zd Zd
ZdddZdd	 ZdZdS )Constantr*   valuer   r-   Nc             C   s   || _ || _|| _d S )N)r*   rI   r   )r   r*   rI   r   r   r   r   r.   	  s    zConstant.__init__c             C   s   g }t |S )N)r0   )r   r1   r   r   r   r     s    zConstant.children)r*   rI   r   r-   )N)r*   rI   )r   r   r   r   r.   r   r   r   r   r   r   rH     s   
rH   c               @   s&   e Zd ZdZd	ddZdd Zf ZdS )
Continuer   r-   Nc             C   s
   || _ d S )N)r   )r   r   r   r   r   r.     s    zContinue.__init__c             C   s   f S )Nr   )r   r   r   r   r     s    zContinue.children)r   r-   )N)r   r   r   r   r.   r   r   r   r   r   r   rJ     s   
rJ   c            	   @   s&   e Zd ZdZdddZdd ZdZd
S )Declr3   qualsstoragefuncspecr*   rG   bitsizer   r-   Nc	       	      C   s4   || _ || _|| _|| _|| _|| _|| _|| _d S )N)r3   rL   rM   rN   r*   rG   rO   r   )	r   r3   rL   rM   rN   r*   rG   rO   r   r   r   r   r.      s    zDecl.__init__c             C   sZ   g }| j d k	r|jd| j f | jd k	r8|jd| jf | jd k	rR|jd| jf t|S )Nr*   rG   rO   )r*   r/   rG   rO   r0   )r   r1   r   r   r   r   *  s    
 
 
 zDecl.children)	r3   rL   rM   rN   r*   rG   rO   r   r-   )N)r3   rL   rM   rN   )r   r   r   r   r.   r   r   r   r   r   r   rK     s   

rK   c               @   s&   e Zd Zd	Zd
ddZdd Zf ZdS )DeclListdeclsr   r-   Nc             C   s   || _ || _d S )N)rQ   r   )r   rQ   r   r   r   r   r.   5  s    zDeclList.__init__c             C   s:   g }x,t | jpg D ]\}}|jd| |f qW t|S )Nz	decls[%d])r@   rQ   r/   r0   )r   r1   rA   r   r   r   r   r   9  s    zDeclList.children)rQ   r   r-   )N)r   r   r   r   r.   r   r   r   r   r   r   rP   3  s   
rP   c               @   s&   e Zd Zd	Zd
ddZdd Zf ZdS )Defaultr?   r   r-   Nc             C   s   || _ || _d S )N)r?   r   )r   r?   r   r   r   r   r.   C  s    zDefault.__init__c             C   s:   g }x,t | jpg D ]\}}|jd| |f qW t|S )Nz	stmts[%d])r@   r?   r/   r0   )r   r1   rA   r   r   r   r   r   G  s    zDefault.children)r?   r   r-   )N)r   r   r   r   r.   r   r   r   r   r   r   rR   A  s   
rR   c               @   s&   e Zd Zd
ZdddZdd	 Zf ZdS )DoWhilecondstmtr   r-   Nc             C   s   || _ || _|| _d S )N)rT   rU   r   )r   rT   rU   r   r   r   r   r.   Q  s    zDoWhile.__init__c             C   s@   g }| j d k	r|jd| j f | jd k	r8|jd| jf t|S )NrT   rU   )rT   r/   rU   r0   )r   r1   r   r   r   r   V  s    
 
 zDoWhile.children)rT   rU   r   r-   )N)r   r   r   r   r.   r   r   r   r   r   r   rS   O  s   
rS   c               @   s&   e Zd ZdZd	ddZdd Zf ZdS )
EllipsisParamr   r-   Nc             C   s
   || _ d S )N)r   )r   r   r   r   r   r.   `  s    zEllipsisParam.__init__c             C   s   f S )Nr   )r   r   r   r   r   c  s    zEllipsisParam.children)r   r-   )N)r   r   r   r   r.   r   r   r   r   r   r   rV   ^  s   
rV   c               @   s&   e Zd ZdZd	ddZdd Zf ZdS )
EmptyStatementr   r-   Nc             C   s
   || _ d S )N)r   )r   r   r   r   r   r.   j  s    zEmptyStatement.__init__c             C   s   f S )Nr   )r   r   r   r   r   m  s    zEmptyStatement.children)r   r-   )N)r   r   r   r   r.   r   r   r   r   r   r   rW   h  s   
rW   c               @   s&   e Zd Zd
ZdddZdd	 ZdZdS )Enumr3   valuesr   r-   Nc             C   s   || _ || _|| _d S )N)r3   rY   r   )r   r3   rY   r   r   r   r   r.   t  s    zEnum.__init__c             C   s&   g }| j d k	r|jd| j f t|S )NrY   )rY   r/   r0   )r   r1   r   r   r   r   y  s    
 zEnum.children)r3   rY   r   r-   )N)r3   )r   r   r   r   r.   r   r   r   r   r   r   rX   r  s   
rX   c               @   s&   e Zd Zd
ZdddZdd	 ZdZdS )
Enumeratorr3   rI   r   r-   Nc             C   s   || _ || _|| _d S )N)r3   rI   r   )r   r3   rI   r   r   r   r   r.     s    zEnumerator.__init__c             C   s&   g }| j d k	r|jd| j f t|S )NrI   )rI   r/   r0   )r   r1   r   r   r   r     s    
 zEnumerator.children)r3   rI   r   r-   )N)r3   )r   r   r   r   r.   r   r   r   r   r   r   rZ     s   
rZ   c               @   s&   e Zd Zd	Zd
ddZdd Zf ZdS )EnumeratorListenumeratorsr   r-   Nc             C   s   || _ || _d S )N)r\   r   )r   r\   r   r   r   r   r.     s    zEnumeratorList.__init__c             C   s:   g }x,t | jpg D ]\}}|jd| |f qW t|S )Nzenumerators[%d])r@   r\   r/   r0   )r   r1   rA   r   r   r   r   r     s    zEnumeratorList.children)r\   r   r-   )N)r   r   r   r   r.   r   r   r   r   r   r   r[     s   
r[   c               @   s&   e Zd Zd	Zd
ddZdd Zf ZdS )ExprListexprsr   r-   Nc             C   s   || _ || _d S )N)r^   r   )r   r^   r   r   r   r   r.     s    zExprList.__init__c             C   s:   g }x,t | jpg D ]\}}|jd| |f qW t|S )Nz	exprs[%d])r@   r^   r/   r0   )r   r1   rA   r   r   r   r   r     s    zExprList.children)r^   r   r-   )N)r   r   r   r   r.   r   r   r   r   r   r   r]     s   
r]   c               @   s&   e Zd Zd	Zd
ddZdd Zf ZdS )FileASTextr   r-   Nc             C   s   || _ || _d S )N)r`   r   )r   r`   r   r   r   r   r.     s    zFileAST.__init__c             C   s:   g }x,t | jpg D ]\}}|jd| |f qW t|S )Nzext[%d])r@   r`   r/   r0   )r   r1   rA   r   r   r   r   r     s    zFileAST.children)r`   r   r-   )N)r   r   r   r   r.   r   r   r   r   r   r   r_     s   
r_   c               @   s&   e Zd ZdZddd	Zd
d Zf ZdS )ForrG   rT   nextrU   r   r-   Nc             C   s"   || _ || _|| _|| _|| _d S )N)rG   rT   rb   rU   r   )r   rG   rT   rb   rU   r   r   r   r   r.     s
    zFor.__init__c             C   st   g }| j d k	r|jd| j f | jd k	r8|jd| jf | jd k	rR|jd| jf | jd k	rl|jd| jf t|S )NrG   rT   rb   rU   )rG   r/   rT   rb   rU   r0   )r   r1   r   r   r   r     s    
 
 
 
 zFor.children)rG   rT   rb   rU   r   r-   )N)r   r   r   r   r.   r   r   r   r   r   r   ra     s   
ra   c               @   s&   e Zd Zd
ZdddZdd	 Zf ZdS )FuncCallr3   argsr   r-   Nc             C   s   || _ || _|| _d S )N)r3   rd   r   )r   r3   rd   r   r   r   r   r.     s    zFuncCall.__init__c             C   s@   g }| j d k	r|jd| j f | jd k	r8|jd| jf t|S )Nr3   rd   )r3   r/   rd   r0   )r   r1   r   r   r   r     s    
 
 zFuncCall.children)r3   rd   r   r-   )N)r   r   r   r   r.   r   r   r   r   r   r   rc     s   
rc   c               @   s&   e Zd Zd
ZdddZdd	 Zf ZdS )FuncDeclrd   r*   r   r-   Nc             C   s   || _ || _|| _d S )N)rd   r*   r   )r   rd   r*   r   r   r   r   r.     s    zFuncDecl.__init__c             C   s@   g }| j d k	r|jd| j f | jd k	r8|jd| jf t|S )Nrd   r*   )rd   r/   r*   r0   )r   r1   r   r   r   r     s    
 
 zFuncDecl.children)rd   r*   r   r-   )N)r   r   r   r   r.   r   r   r   r   r   r   re     s   
re   c               @   s&   e Zd ZdZdddZd	d
 Zf ZdS )FuncDefdeclparam_declsbodyr   r-   Nc             C   s   || _ || _|| _|| _d S )N)rg   rh   ri   r   )r   rg   rh   ri   r   r   r   r   r.     s    zFuncDef.__init__c             C   sn   g }| j d k	r|jd| j f | jd k	r8|jd| jf x,t| jpDg D ]\}}|jd| |f qHW t|S )Nrg   ri   zparam_decls[%d])rg   r/   ri   r@   rh   r0   )r   r1   rA   r   r   r   r   r     s    
 
 zFuncDef.children)rg   rh   ri   r   r-   )N)r   r   r   r   r.   r   r   r   r   r   r   rf     s   
rf   c               @   s&   e Zd Zd	Zd
ddZdd ZdZdS )Gotor3   r   r-   Nc             C   s   || _ || _d S )N)r3   r   )r   r3   r   r   r   r   r.     s    zGoto.__init__c             C   s   g }t |S )N)r0   )r   r1   r   r   r   r     s    zGoto.children)r3   r   r-   )N)r3   )r   r   r   r   r.   r   r   r   r   r   r   rj     s   
rj   c               @   s&   e Zd Zd	Zd
ddZdd ZdZdS )IDr3   r   r-   Nc             C   s   || _ || _d S )N)r3   r   )r   r3   r   r   r   r   r.   	  s    zID.__init__c             C   s   g }t |S )N)r0   )r   r1   r   r   r   r     s    zID.children)r3   r   r-   )N)r3   )r   r   r   r   r.   r   r   r   r   r   r   rk     s   
rk   c               @   s&   e Zd Zd	Zd
ddZdd ZdZdS )IdentifierTypenamesr   r-   Nc             C   s   || _ || _d S )N)rm   r   )r   rm   r   r   r   r   r.     s    zIdentifierType.__init__c             C   s   g }t |S )N)r0   )r   r1   r   r   r   r     s    zIdentifierType.children)rm   r   r-   )N)rm   )r   r   r   r   r.   r   r   r   r   r   r   rl     s   
rl   c               @   s&   e Zd ZdZdddZd	d
 Zf ZdS )IfrT   iftrueiffalser   r-   Nc             C   s   || _ || _|| _|| _d S )N)rT   ro   rp   r   )r   rT   ro   rp   r   r   r   r   r.   !  s    zIf.__init__c             C   sZ   g }| j d k	r|jd| j f | jd k	r8|jd| jf | jd k	rR|jd| jf t|S )NrT   ro   rp   )rT   r/   ro   rp   r0   )r   r1   r   r   r   r   '  s    
 
 
 zIf.children)rT   ro   rp   r   r-   )N)r   r   r   r   r.   r   r   r   r   r   r   rn     s   
rn   c               @   s&   e Zd Zd	Zd
ddZdd Zf ZdS )InitListr^   r   r-   Nc             C   s   || _ || _d S )N)r^   r   )r   r^   r   r   r   r   r.   2  s    zInitList.__init__c             C   s:   g }x,t | jpg D ]\}}|jd| |f qW t|S )Nz	exprs[%d])r@   r^   r/   r0   )r   r1   rA   r   r   r   r   r   6  s    zInitList.children)r^   r   r-   )N)r   r   r   r   r.   r   r   r   r   r   r   rq   0  s   
rq   c               @   s&   e Zd Zd
ZdddZdd	 ZdZdS )Labelr3   rU   r   r-   Nc             C   s   || _ || _|| _d S )N)r3   rU   r   )r   r3   rU   r   r   r   r   r.   @  s    zLabel.__init__c             C   s&   g }| j d k	r|jd| j f t|S )NrU   )rU   r/   r0   )r   r1   r   r   r   r   E  s    
 zLabel.children)r3   rU   r   r-   )N)r3   )r   r   r   r   r.   r   r   r   r   r   r   rr   >  s   
rr   c               @   s&   e Zd Zd
ZdddZdd	 Zf ZdS )NamedInitializerr3   r>   r   r-   Nc             C   s   || _ || _|| _d S )N)r3   r>   r   )r   r3   r>   r   r   r   r   r.   N  s    zNamedInitializer.__init__c             C   sT   g }| j d k	r|jd| j f x,t| jp*g D ]\}}|jd| |f q.W t|S )Nr>   zname[%d])r>   r/   r@   r3   r0   )r   r1   rA   r   r   r   r   r   S  s    
 zNamedInitializer.children)r3   r>   r   r-   )N)r   r   r   r   r.   r   r   r   r   r   r   rs   L  s   
rs   c               @   s&   e Zd Zd	Zd
ddZdd Zf ZdS )	ParamListparamsr   r-   Nc             C   s   || _ || _d S )N)ru   r   )r   ru   r   r   r   r   r.   ^  s    zParamList.__init__c             C   s:   g }x,t | jpg D ]\}}|jd| |f qW t|S )Nz
params[%d])r@   ru   r/   r0   )r   r1   rA   r   r   r   r   r   b  s    zParamList.children)ru   r   r-   )N)r   r   r   r   r.   r   r   r   r   r   r   rt   \  s   
rt   c               @   s&   e Zd Zd
ZdddZdd	 ZdZdS )PtrDeclrL   r*   r   r-   Nc             C   s   || _ || _|| _d S )N)rL   r*   r   )r   rL   r*   r   r   r   r   r.   l  s    zPtrDecl.__init__c             C   s&   g }| j d k	r|jd| j f t|S )Nr*   )r*   r/   r0   )r   r1   r   r   r   r   q  s    
 zPtrDecl.children)rL   r*   r   r-   )N)rL   )r   r   r   r   r.   r   r   r   r   r   r   rv   j  s   
rv   c               @   s&   e Zd Zd	Zd
ddZdd Zf ZdS )Returnr>   r   r-   Nc             C   s   || _ || _d S )N)r>   r   )r   r>   r   r   r   r   r.   z  s    zReturn.__init__c             C   s&   g }| j d k	r|jd| j f t|S )Nr>   )r>   r/   r0   )r   r1   r   r   r   r   ~  s    
 zReturn.children)r>   r   r-   )N)r   r   r   r   r.   r   r   r   r   r   r   rw   x  s   
rw   c               @   s&   e Zd Zd
ZdddZdd	 ZdZdS )Structr3   rQ   r   r-   Nc             C   s   || _ || _|| _d S )N)r3   rQ   r   )r   r3   rQ   r   r   r   r   r.     s    zStruct.__init__c             C   s:   g }x,t | jpg D ]\}}|jd| |f qW t|S )Nz	decls[%d])r@   rQ   r/   r0   )r   r1   rA   r   r   r   r   r     s    zStruct.children)r3   rQ   r   r-   )N)r3   )r   r   r   r   r.   r   r   r   r   r   r   rx     s   
rx   c               @   s&   e Zd ZdZdddZd	d
 ZdZdS )	StructRefr3   r*   fieldr   r-   Nc             C   s   || _ || _|| _|| _d S )N)r3   r*   rz   r   )r   r3   r*   rz   r   r   r   r   r.     s    zStructRef.__init__c             C   s@   g }| j d k	r|jd| j f | jd k	r8|jd| jf t|S )Nr3   rz   )r3   r/   rz   r0   )r   r1   r   r   r   r     s    
 
 zStructRef.children)r3   r*   rz   r   r-   )N)r*   )r   r   r   r   r.   r   r   r   r   r   r   ry     s   
ry   c               @   s&   e Zd Zd
ZdddZdd	 Zf ZdS )SwitchrT   rU   r   r-   Nc             C   s   || _ || _|| _d S )N)rT   rU   r   )r   rT   rU   r   r   r   r   r.     s    zSwitch.__init__c             C   s@   g }| j d k	r|jd| j f | jd k	r8|jd| jf t|S )NrT   rU   )rT   r/   rU   r0   )r   r1   r   r   r   r     s    
 
 zSwitch.children)rT   rU   r   r-   )N)r   r   r   r   r.   r   r   r   r   r   r   r{     s   
r{   c               @   s&   e Zd ZdZdddZd	d
 Zf ZdS )	TernaryOprT   ro   rp   r   r-   Nc             C   s   || _ || _|| _|| _d S )N)rT   ro   rp   r   )r   rT   ro   rp   r   r   r   r   r.     s    zTernaryOp.__init__c             C   sZ   g }| j d k	r|jd| j f | jd k	r8|jd| jf | jd k	rR|jd| jf t|S )NrT   ro   rp   )rT   r/   ro   rp   r0   )r   r1   r   r   r   r     s    
 
 
 zTernaryOp.children)rT   ro   rp   r   r-   )N)r   r   r   r   r.   r   r   r   r   r   r   r|     s   
r|   c               @   s&   e Zd ZdZdddZd	d
 ZdZdS )TypeDecldeclnamerL   r*   r   r-   Nc             C   s   || _ || _|| _|| _d S )N)r~   rL   r*   r   )r   r~   rL   r*   r   r   r   r   r.     s    zTypeDecl.__init__c             C   s&   g }| j d k	r|jd| j f t|S )Nr*   )r*   r/   r0   )r   r1   r   r   r   r     s    
 zTypeDecl.children)r~   rL   r*   r   r-   )N)r~   rL   )r   r   r   r   r.   r   r   r   r   r   r   r}     s   
r}   c               @   s&   e Zd ZdZddd	Zd
d ZdZdS )Typedefr3   rL   rM   r*   r   r-   Nc             C   s"   || _ || _|| _|| _|| _d S )N)r3   rL   rM   r*   r   )r   r3   rL   rM   r*   r   r   r   r   r.     s
    zTypedef.__init__c             C   s&   g }| j d k	r|jd| j f t|S )Nr*   )r*   r/   r0   )r   r1   r   r   r   r     s    
 zTypedef.children)r3   rL   rM   r*   r   r-   )N)r3   rL   rM   )r   r   r   r   r.   r   r   r   r   r   r   r     s   
r   c               @   s&   e Zd ZdZdddZd	d
 ZdZdS )Typenamer3   rL   r*   r   r-   Nc             C   s   || _ || _|| _|| _d S )N)r3   rL   r*   r   )r   r3   rL   r*   r   r   r   r   r.     s    zTypename.__init__c             C   s&   g }| j d k	r|jd| j f t|S )Nr*   )r*   r/   r0   )r   r1   r   r   r   r     s    
 zTypename.children)r3   rL   r*   r   r-   )N)r3   rL   )r   r   r   r   r.   r   r   r   r   r   r   r     s   
r   c               @   s&   e Zd Zd
ZdddZdd	 ZdZdS )UnaryOpr6   r>   r   r-   Nc             C   s   || _ || _|| _d S )N)r6   r>   r   )r   r6   r>   r   r   r   r   r.     s    zUnaryOp.__init__c             C   s&   g }| j d k	r|jd| j f t|S )Nr>   )r>   r/   r0   )r   r1   r   r   r   r     s    
 zUnaryOp.children)r6   r>   r   r-   )N)r6   )r   r   r   r   r.   r   r   r   r   r   r   r     s   
r   c               @   s&   e Zd Zd
ZdddZdd	 ZdZdS )Unionr3   rQ   r   r-   Nc             C   s   || _ || _|| _d S )N)r3   rQ   r   )r   r3   rQ   r   r   r   r   r.     s    zUnion.__init__c             C   s:   g }x,t | jpg D ]\}}|jd| |f qW t|S )Nz	decls[%d])r@   rQ   r/   r0   )r   r1   rA   r   r   r   r   r     s    zUnion.children)r3   rQ   r   r-   )N)r3   )r   r   r   r   r.   r   r   r   r   r   r   r      s   
r   c               @   s&   e Zd Zd
ZdddZdd	 Zf ZdS )WhilerT   rU   r   r-   Nc             C   s   || _ || _|| _d S )N)rT   rU   r   )r   rT   rU   r   r   r   r   r.     s    zWhile.__init__c             C   s@   g }| j d k	r|jd| j f | jd k	r8|jd| jf t|S )NrT   rU   )rT   r/   rU   r0   )r   r1   r   r   r   r     s    
 
 zWhile.children)rT   rU   r   r-   )N)r   r   r   r   r.   r   r   r   r   r   r   r     s   
r   )2r    objectr   r"   r)   r2   r5   r9   r<   r=   rB   rD   rF   rH   rJ   rK   rP   rR   rS   rV   rW   rX   rZ   r[   r]   r_   ra   rc   re   rf   rj   rk   rl   rn   rq   rr   rs   rt   rv   rw   rx   ry   r{   r|   r}   r   r   r   r   r   r   r   r   r   <module>   s`   <0



