
    Yhz                     t   d dl Z d Z G d de      Z G d de      Z G d de      Z G d	 d
e      Z G d de      Z G d de      Z G d de      Z	 G d de      Z
 G d de      Z G d de      Z G d de      Z G d de      Z G d de      Z G d de      Z G d d e      Z G d! d"e      Z G d# d$e      Z G d% d&e      Z G d' d(e      Z G d) d*e      Z G d+ d,e      Z G d- d.e      Z G d/ d0e      Z G d1 d2e      Z G d3 d4e      Z G d5 d6e      Z G d7 d8e      Z G d9 d:e      Z G d; d<e      Z G d= d>e      Z  G d? d@e      Z! G dA dBe      Z" G dC dDe      Z# G dE dFe      Z$ G dG dHe      Z% G dI dJe      Z& G dK dLe      Z' G dM dNe      Z( G dO dPe      Z) G dQ dRe      Z* G dS dTe      Z+ G dU dVe      Z, G dW dXe      Z- G dY dZe      Z. G d[ d\e      Z/ G d] d^e      Z0 G d_ d`e      Z1 G da dbe      Z2 G dc dde      Z3 G de dfe      Z4 G dg dhe      Z5y)i    Nc                 t    t        | t              rddj                  d | D              z   dz   S t        |       S )z[
    Get the representation of an object, with dedicated pprint-like format for lists.
    [z,
 c              3   R   K   | ]  }t        |      j                  d d       ! yw)

 N)_reprreplace).0es     `/var/www/django-portfolio.reubendavern.link/venv/lib/python3.12/site-packages/pycparser/c_ast.py	<genexpr>z_repr.<locals>.<genexpr>   s!     "NQ58#3#3D%#@"Ns   %'z
])
isinstancelistjoinrepr)objs    r   r   r      s8     #tfkk"N#"NOPSXXXCy    c                   F    e Zd ZdZ	 d Zd Zej                  dddddfdZy)Node c                    | j                   j                  dz   }d}d}| j                  dd D ]  }||z  }||z  }||dz   t        t	        | |            j                  dddt        |      t        | j                   j                        z   z  z         z   z  }d	}d
dt        | j                   j                        z  z   } ||dz   z  }|S )z? Generates a python representation of the current node
        ( N=r   z
   ,r   ))	__class____name__	__slots__r   getattrr	   len)selfresultindent	separatornames        r   __repr__zNode.__repr__"   s    ((3.	NN3B' 	BDiFfFdSjE'$*=$>$F$FtVWZ^abf^gjmnrn|n|  oF  oF  kG  _G  XH  NI  %J  K  KFIcC(?(?$@@AF	B 	&3,r   c                      y)z3 A sequence of all children that are Nodes
        Nr   r$   s    r   childrenzNode.children5   s     	r   r   FNc           	         d|z  }|r4|2|j                  || j                  j                  z   dz   |z   dz          n+|j                  || j                  j                  z   dz          | j                  r|r>| j                  D cg c]  }|t	        | |      f }	}dj                  d |	D              }
n;| j                  D cg c]  }t	        | |       }}dj                  d |D              }
|j                  |
       |r|j                  d	| j                  z         |j                  d
       | j                         D ]  \  }}|j                  ||dz   ||||       ! yc c}w c c}w )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.
        r   Nz <z>: z: z, c              3   &   K   | ]	  }d |z    yw)z%s=%sNr   )r
   nvs     r   r   zNode.show.<locals>.<genexpr>Y   s     #BRGbL#B   c              3   &   K   | ]	  }d |z    yw)z%sNr   )r
   vs     r   r   zNode.show.<locals>.<genexpr>\   s     #<D1H#<r0   z (at %s)r      )offset	attrnames	nodenames	showcoord_my_node_name)	writer   r    
attr_namesr"   r   coordr,   show)r$   bufr4   r5   r6   r7   r8   leadnnvlistattrstrvlist
child_namechilds                 r   r<   z	Node.show:   sM   , V|2IIdT^^444d:]JURSIIdT^^444d:;??8<H11gd1o.HH))#B6#BB37??Caq)CC))#<e#<<IIgIIj4::-.		$#'==? 	*ZJJz###(  *	* I Ds   E#E()	r    
__module____qualname__r!   r)   r,   sysstdoutr<   r   r   r   r   r      s0    I&
 zz!uY^nr 0*r   r   c                        e Zd ZdZdZd Zd Zy)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)
    Nc                 B   | j                   i | _         | j                   j                  |j                  j                  d      }|Sd|j                  j                  z   }t	        | || j
                        }|| j                   |j                  j                  <    ||      S )z Visit a node.
        Nvisit_)_method_cachegetr   r    r"   generic_visit)r$   nodevisitormethods       r   visitzNodeVisitor.visit   s     %!#D$$(()@)@$G? 7 77FdFD,>,>?G:ADt~~667t}r   c                 4    |D ]  }| j                  |        y)zy Called if no explicit visitor function exists for a
            node. Implements preorder visiting of the node.
        N)rS   )r$   rP   cs      r   rO   zNodeVisitor.generic_visit   s      	AJJqM	r   )r    rE   rF   __doc__rM   rS   rO   r   r   r   rJ   rJ   m   s    B Mr   rJ   c                   (    e Zd ZdZddZd Zd ZdZy)	ArrayDecl)typedim	dim_qualsr;   __weakref__Nc                 <    || _         || _        || _        || _        y N)rY   rZ   r[   r;   )r$   rY   rZ   r[   r;   s        r   __init__zArrayDecl.__init__   s    	"
r   c                     g }| j                   |j                  d| j                   f       | j                  |j                  d| j                  f       t        |      S )NrY   rZ   )rY   appendrZ   tupler$   nodelists     r   r,   zArrayDecl.children   sM    99 (//64992E"F88%1B!CXr   c              #   v   K   | j                   | j                    | j                  | j                   y y wr^   )rY   rZ   r+   s    r   __iter__zArrayDecl.__iter__   s1     99 ))O88((N     79)r[   r^   r    rE   rF   r!   r_   r,   rf   r:   r   r   r   rX   rX      s    DI !Jr   rX   c                   (    e Zd ZdZddZd Zd ZdZy)ArrayRef)r(   	subscriptr;   r\   Nc                 .    || _         || _        || _        y r^   )r(   rk   r;   )r$   r(   rk   r;   s       r   r_   zArrayRef.__init__   s    	"
r   c                     g }| j                   |j                  d| j                   f       | j                  |j                  d| j                  f       t        |      S )Nr(   rk   )r(   ra   rk   rb   rc   s     r   r,   zArrayRef.children   sM    99 (//64992E"F>>%xT^^7T'UXr   c              #   v   K   | j                   | j                    | j                  | j                   y y wr^   )r(   rk   r+   s    r   rf   zArrayRef.__iter__   s2     99 ))O>>%..  &rg   r   r^   rh   r   r   r   rj   rj      s    =I
! Jr   rj   c                   (    e Zd ZdZddZd Zd ZdZy)
Assignment)oplvaluervaluer;   r\   Nc                 <    || _         || _        || _        || _        y r^   )rq   rr   rs   r;   )r$   rq   rr   rs   r;   s        r   r_   zAssignment.__init__   s    
r   c                     g }| j                   |j                  d| j                   f       | j                  |j                  d| j                  f       t        |      S )Nrr   rs   )rr   ra   rs   rb   rc   s     r   r,   zAssignment.children   sM    ;;"HOOXt{{4K$L;;"HOOXt{{4K$LXr   c              #   v   K   | j                   | j                    | j                  | j                   y y wr^   )rr   rs   r+   s    r   rf   zAssignment.__iter__   s3     ;;"++;;"++ #rg   rq   r^   rh   r   r   r   rp   rp      s    BI Jr   rp   c                   (    e Zd ZdZddZd Zd ZdZy)Alignas)	alignmentr;   r\   Nc                      || _         || _        y r^   )rz   r;   )r$   rz   r;   s      r   r_   zAlignas.__init__   s    "
r   c                 n    g }| j                   |j                  d| j                   f       t        |      S )Nrz   )rz   ra   rb   rc   s     r   r,   zAlignas.children   s/    >>%xT^^7T'UXr   c              #   B   K   | j                   | j                    y y wr^   )rz   r+   s    r   rf   zAlignas.__iter__   s     >>%..  &   r   r^   rh   r   r   r   ry   ry      s    5I
! Jr   ry   c                   (    e Zd ZdZddZd Zd ZdZy)BinaryOp)rq   leftrightr;   r\   Nc                 <    || _         || _        || _        || _        y r^   )rq   r   r   r;   )r$   rq   r   r   r;   s        r   r_   zBinaryOp.__init__   s    	

r   c                     g }| j                   |j                  d| j                   f       | j                  |j                  d| j                  f       t        |      S )Nr   r   )r   ra   r   rb   rc   s     r   r,   zBinaryOp.children  M    99 (//64992E"F::!8??GTZZ3H#IXr   c              #   v   K   | j                   | j                    | j                  | j                   y y wr^   )r   r   r+   s    r   rf   zBinaryOp.__iter__  2     99 ))O::!** "rg   rw   r^   rh   r   r   r   r   r      s    ?I Jr   r   c                   (    e Zd ZdZddZd Zd ZdZy)Breakr;   r\   Nc                     || _         y r^   r;   r$   r;   s     r   r_   zBreak.__init__  	    
r   c                      yNr   r   r+   s    r   r,   zBreak.children      r   c              #      K   y wr^   r   r+   s    r   rf   zBreak.__iter__  	        r   r^   rh   r   r   r   r   r         (I Jr   r   c                   (    e Zd ZdZddZd Zd ZdZy)Case)exprstmtsr;   r\   Nc                 .    || _         || _        || _        y r^   )r   r   r;   )r$   r   r   r;   s       r   r_   zCase.__init__      	

r   c                     g }| j                   |j                  d| j                   f       t        | j                  xs g       D ]  \  }}|j                  d|z  |f        t	        |      S )Nr   	stmts[%d])r   ra   	enumerater   rb   r$   rd   irD   s       r   r,   zCase.children$  se    99 (//64992E"F!$**"23 	6HAuOO[1_e45	6Xr   c              #   r   K   | j                   | j                    | j                  xs g D ]  }|  y wr^   )r   r   r$   rD   s     r   rf   zCase.__iter__+  s6     99 ))Ojj&B 	EK	   57r   r^   rh   r   r   r   r   r     s    9I
 Jr   r   c                   (    e Zd ZdZddZd Zd ZdZy)Cast)to_typer   r;   r\   Nc                 .    || _         || _        || _        y r^   )r   r   r;   )r$   r   r   r;   s       r   r_   zCast.__init__5  s    	
r   c                     g }| j                   |j                  d| j                   f       | j                  |j                  d| j                  f       t        |      S )Nr   r   )r   ra   r   rb   rc   s     r   r,   zCast.children:  sM    <<#X__i5N%O99 (//64992E"FXr   c              #   v   K   | j                   | j                    | j                  | j                   y y wr^   )r   r   r+   s    r   rf   zCast.__iter__@  s2     <<#,,99 ))O !rg   r   r^   rh   r   r   r   r   r   3  s    ;I
 Jr   r   c                   (    e Zd ZdZddZd Zd ZdZy)Compound)block_itemsr;   r\   Nc                      || _         || _        y r^   )r   r;   )r$   r   r;   s      r   r_   zCompound.__init__J      &
r   c                     g }t        | j                  xs g       D ]  \  }}|j                  d|z  |f        t        |      S )Nzblock_items[%d])r   r   ra   rb   r   s       r   r,   zCompound.childrenN  K    !$"2"2"8b9 	<HAuOO.2E:;	<Xr   c              #   >   K   | j                   xs g D ]  }|  y wr^   )r   r   s     r   rf   zCompound.__iter__T  %     &&," 	EK	   r   r^   rh   r   r   r   r   r   H      7I Jr   r   c                   (    e Zd ZdZddZd Zd ZdZy)CompoundLiteral)rY   initr;   r\   Nc                 .    || _         || _        || _        y r^   )rY   r   r;   )r$   rY   r   r;   s       r   r_   zCompoundLiteral.__init__\      		
r   c                     g }| j                   |j                  d| j                   f       | j                  |j                  d| j                  f       t        |      S )NrY   r   )rY   ra   r   rb   rc   s     r   r,   zCompoundLiteral.childrena  M    99 (//64992E"F99 (//64992E"FXr   c              #   v   K   | j                   | j                    | j                  | j                   y y wr^   )rY   r   r+   s    r   rf   zCompoundLiteral.__iter__g  1     99 ))O99 ))O !rg   r   r^   rh   r   r   r   r   r   Z      8I
 Jr   r   c                   (    e Zd ZdZddZd Zd ZdZy)Constant)rY   valuer;   r\   Nc                 .    || _         || _        || _        y r^   )rY   r   r;   )r$   rY   r   r;   s       r   r_   zConstant.__init__q  r   r   c                     g }t        |      S r^   rb   rc   s     r   r,   zConstant.childrenv      Xr   c              #      K   y wr^   r   r+   s    r   rf   zConstant.__iter__z  r   r   )rY   r   r^   rh   r   r   r   r   r   o  s    9I
 %Jr   r   c                   (    e Zd ZdZddZd Zd ZdZy)Continuer   Nc                     || _         y r^   r   r   s     r   r_   zContinue.__init__  r   r   c                      yr   r   r+   s    r   r,   zContinue.children  r   r   c              #      K   y wr^   r   r+   s    r   rf   zContinue.__iter__  r   r   r   r^   rh   r   r   r   r   r     r   r   r   c                   (    e Zd ZdZddZd Zd ZdZy)Decl)
r(   qualsalignstoragefuncspecrY   r   bitsizer;   r\   Nc
                     || _         || _        || _        || _        || _        || _        || _        || _        |	| _        y r^   )	r(   r   r   r   r   rY   r   r   r;   )
r$   r(   r   r   r   r   rY   r   r   r;   s
             r   r_   zDecl.__init__  sA    	

 		
r   c                    g }| j                   |j                  d| j                   f       | j                  |j                  d| j                  f       | j                  |j                  d| j                  f       t	        |      S )NrY   r   r   )rY   ra   r   r   rb   rc   s     r   r,   zDecl.children  sk    99 (//64992E"F99 (//64992E"F<<#X__i5N%OXr   c              #      K   | j                   | j                    | j                  | j                   | j                  | j                   y y wr^   )rY   r   r   r+   s    r   rf   zDecl.__iter__  sE     99 ))O99 ))O<<#,, $   AA)r(   r   r   r   r   r^   rh   r   r   r   r   r     s    tI	 EJr   r   c                   (    e Zd ZdZddZd Zd ZdZy)DeclList)declsr;   r\   Nc                      || _         || _        y r^   )r   r;   )r$   r   r;   s      r   r_   zDeclList.__init__      

r   c                     g }t        | j                  xs g       D ]  \  }}|j                  d|z  |f        t        |      S Nz	decls[%d]r   r   ra   rb   r   s       r   r,   zDeclList.children  G    !$**"23 	6HAuOO[1_e45	6Xr   c              #   >   K   | j                   xs g D ]  }|  y wr^   r   r   s     r   rf   zDeclList.__iter__  #     jj&B 	EK	r   r   r^   rh   r   r   r   r   r         1I Jr   r   c                   (    e Zd ZdZddZd Zd ZdZy)Default)r   r;   r\   Nc                      || _         || _        y r^   )r   r;   )r$   r   r;   s      r   r_   zDefault.__init__  r   r   c                     g }t        | j                  xs g       D ]  \  }}|j                  d|z  |f        t        |      S )Nr   )r   r   ra   rb   r   s       r   r,   zDefault.children  r   r   c              #   >   K   | j                   xs g D ]  }|  y wr^   )r   r   s     r   rf   zDefault.__iter__  r   r   r   r^   rh   r   r   r   r   r     r   r   r   c                   (    e Zd ZdZddZd Zd ZdZy)DoWhilecondstmtr;   r\   Nc                 .    || _         || _        || _        y r^   r   r   r;   r$   r   r   r;   s       r   r_   zDoWhile.__init__  r   r   c                     g }| j                   |j                  d| j                   f       | j                  |j                  d| j                  f       t        |      S Nr   r   r   ra   r   rb   rc   s     r   r,   zDoWhile.children  r   r   c              #   v   K   | j                   | j                    | j                  | j                   y y wr^   r   r   r+   s    r   rf   zDoWhile.__iter__  r   rg   r   r^   rh   r   r   r   r   r     r   r   r   c                   (    e Zd ZdZddZd Zd ZdZy)EllipsisParamr   Nc                     || _         y r^   r   r   s     r   r_   zEllipsisParam.__init__  r   r   c                      yr   r   r+   s    r   r,   zEllipsisParam.children  r   r   c              #      K   y wr^   r   r+   s    r   rf   zEllipsisParam.__iter__  r   r   r   r^   rh   r   r   r   r   r     r   r   r   c                   (    e Zd ZdZddZd Zd ZdZy)EmptyStatementr   Nc                     || _         y r^   r   r   s     r   r_   zEmptyStatement.__init__  r   r   c                      yr   r   r+   s    r   r,   zEmptyStatement.children  r   r   c              #      K   y wr^   r   r+   s    r   rf   zEmptyStatement.__iter__  r   r   r   r^   rh   r   r   r   r   r     r   r   r   c                   (    e Zd ZdZddZd Zd ZdZy)Enum)r(   valuesr;   r\   Nc                 .    || _         || _        || _        y r^   )r(   r  r;   )r$   r(   r  r;   s       r   r_   zEnum.__init__  s    	
r   c                 n    g }| j                   |j                  d| j                   f       t        |      S )Nr  )r  ra   rb   rc   s     r   r,   zEnum.children  s/    ;;"HOOXt{{4K$LXr   c              #   B   K   | j                   | j                    y y wr^   )r  r+   s    r   rf   zEnum.__iter__  s     ;;"++ #r~   r(   r^   rh   r   r   r   r  r    s    :I

 Jr   r  c                   (    e Zd ZdZddZd Zd ZdZy)
Enumerator)r(   r   r;   r\   Nc                 .    || _         || _        || _        y r^   )r(   r   r;   )r$   r(   r   r;   s       r   r_   zEnumerator.__init__  r   r   c                 n    g }| j                   |j                  d| j                   f       t        |      S )Nr   )r   ra   rb   rc   s     r   r,   zEnumerator.children  s/    ::!8??GTZZ3H#IXr   c              #   B   K   | j                   | j                    y y wr^   )r   r+   s    r   rf   zEnumerator.__iter__  s     ::!** "r~   r  r^   rh   r   r   r   r  r    s    9I

 Jr   r  c                   (    e Zd ZdZddZd Zd ZdZy)EnumeratorList)enumeratorsr;   r\   Nc                      || _         || _        y r^   )r  r;   )r$   r  r;   s      r   r_   zEnumeratorList.__init__'  r   r   c                     g }t        | j                  xs g       D ]  \  }}|j                  d|z  |f        t        |      S )Nzenumerators[%d])r   r  ra   rb   r   s       r   r,   zEnumeratorList.children+  r   r   c              #   >   K   | j                   xs g D ]  }|  y wr^   )r  r   s     r   rf   zEnumeratorList.__iter__1  r   r   r   r^   rh   r   r   r   r  r  %  r   r   r  c                   (    e Zd ZdZddZd Zd ZdZy)ExprListexprsr;   r\   Nc                      || _         || _        y r^   r  r;   r$   r  r;   s      r   r_   zExprList.__init__9  r   r   c                     g }t        | j                  xs g       D ]  \  }}|j                  d|z  |f        t        |      S Nz	exprs[%d]r   r  ra   rb   r   s       r   r,   zExprList.children=  r   r   c              #   >   K   | j                   xs g D ]  }|  y wr^   r  r   s     r   rf   zExprList.__iter__C  r   r   r   r^   rh   r   r   r   r  r  7  r   r   r  c                   (    e Zd ZdZddZd Zd ZdZy)FileAST)extr;   r\   Nc                      || _         || _        y r^   )r   r;   )r$   r   r;   s      r   r_   zFileAST.__init__K  s    
r   c                     g }t        | j                  xs g       D ]  \  }}|j                  d|z  |f        t        |      S )Nzext[%d])r   r   ra   rb   r   s       r   r,   zFileAST.childrenO  sF    !$((.b1 	4HAuOOY]E23	4Xr   c              #   >   K   | j                   xs g D ]  }|  y wr^   )r   r   s     r   rf   zFileAST.__iter__U  s"     hhn" 	EK	r   r   r^   rh   r   r   r   r  r  I  s    /I Jr   r  c                   (    e Zd ZdZddZd Zd ZdZy)For)r   r   nextr   r;   r\   Nc                 J    || _         || _        || _        || _        || _        y r^   )r   r   r&  r   r;   )r$   r   r   r&  r   r;   s         r   r_   zFor.__init__]  s%    				
r   c                 d   g }| j                   |j                  d| j                   f       | j                  |j                  d| j                  f       | j                  |j                  d| j                  f       | j                  |j                  d| j                  f       t        |      S )Nr   r   r&  r   )r   ra   r   r&  r   rb   rc   s     r   r,   zFor.childrend  s    99 (//64992E"F99 (//64992E"F99 (//64992E"F99 (//64992E"FXr   c              #      K   | j                   | j                    | j                  | j                   | j                  | j                   | j                  | j                   y y wr^   )r   r   r&  r   r+   s    r   rf   zFor.__iter__l  sW     99 ))O99 ))O99 ))O99 ))O !s   A+A-r   r^   rh   r   r   r   r%  r%  [  s    HI Jr   r%  c                   (    e Zd ZdZddZd Zd ZdZy)FuncCall)r(   argsr;   r\   Nc                 .    || _         || _        || _        y r^   )r(   r,  r;   )r$   r(   r,  r;   s       r   r_   zFuncCall.__init__z  r   r   c                     g }| j                   |j                  d| j                   f       | j                  |j                  d| j                  f       t        |      S )Nr(   r,  )r(   ra   r,  rb   rc   s     r   r,   zFuncCall.children  r   r   c              #   v   K   | j                   | j                    | j                  | j                   y y wr^   )r(   r,  r+   s    r   rf   zFuncCall.__iter__  r   rg   r   r^   rh   r   r   r   r+  r+  x  r   r   r+  c                   (    e Zd ZdZddZd Zd ZdZy)FuncDecl)r,  rY   r;   r\   Nc                 .    || _         || _        || _        y r^   )r,  rY   r;   )r$   r,  rY   r;   s       r   r_   zFuncDecl.__init__  r   r   c                     g }| j                   |j                  d| j                   f       | j                  |j                  d| j                  f       t        |      S )Nr,  rY   )r,  ra   rY   rb   rc   s     r   r,   zFuncDecl.children  r   r   c              #   v   K   | j                   | j                    | j                  | j                   y y wr^   )r,  rY   r+   s    r   rf   zFuncDecl.__iter__  r   rg   r   r^   rh   r   r   r   r1  r1    r   r   r1  c                   (    e Zd ZdZddZd Zd ZdZy)FuncDef)declparam_declsbodyr;   r\   Nc                 <    || _         || _        || _        || _        y r^   )r7  r8  r9  r;   )r$   r7  r8  r9  r;   s        r   r_   zFuncDef.__init__  s    	&	
r   c                 .   g }| j                   |j                  d| j                   f       | j                  |j                  d| j                  f       t        | j                  xs g       D ]  \  }}|j                  d|z  |f        t        |      S )Nr7  r9  zparam_decls[%d])r7  ra   r9  r   r8  rb   r   s       r   r,   zFuncDef.children  s    99 (//64992E"F99 (//64992E"F!$"2"2"8b9 	<HAuOO.2E:;	<Xr   c              #      K   | j                   | j                    | j                  | j                   | j                  xs g D ]  }|  y wr^   )r7  r9  r8  r   s     r   rf   zFuncDef.__iter__  sK     99 ))O99 ))O&&," 	EK	s   AAr   r^   rh   r   r   r   r6  r6    s    GI Jr   r6  c                   (    e Zd ZdZddZd Zd ZdZy)Gotor(   r;   r\   Nc                      || _         || _        y r^   r(   r;   r$   r(   r;   s      r   r_   zGoto.__init__      	
r   c                     g }t        |      S r^   r   rc   s     r   r,   zGoto.children  r   r   c              #      K   y wr^   r   r+   s    r   rf   zGoto.__iter__  r   r   r  r^   rh   r   r   r   r>  r>        0I Jr   r>  c                   (    e Zd ZdZddZd Zd ZdZy)IDr?  Nc                      || _         || _        y r^   rA  rB  s      r   r_   zID.__init__  rC  r   c                     g }t        |      S r^   r   rc   s     r   r,   zID.children  r   r   c              #      K   y wr^   r   r+   s    r   rf   zID.__iter__  r   r   r  r^   rh   r   r   r   rH  rH    rF  r   rH  c                   (    e Zd ZdZddZd Zd ZdZy)IdentifierType)namesr;   r\   Nc                      || _         || _        y r^   )rN  r;   )r$   rN  r;   s      r   r_   zIdentifierType.__init__  r   r   c                     g }t        |      S r^   r   rc   s     r   r,   zIdentifierType.children  r   r   c              #      K   y wr^   r   r+   s    r   rf   zIdentifierType.__iter__  r   r   )rN  r^   rh   r   r   r   rM  rM    s    1I Jr   rM  c                   (    e Zd ZdZddZd Zd ZdZy)Ifr   iftrueiffalser;   r\   Nc                 <    || _         || _        || _        || _        y r^   r   rU  rV  r;   r$   r   rU  rV  r;   s        r   r_   zIf.__init__      	
r   c                    g }| j                   |j                  d| j                   f       | j                  |j                  d| j                  f       | j                  |j                  d| j                  f       t	        |      S Nr   rU  rV  r   ra   rU  rV  rb   rc   s     r   r,   zIf.children  k    99 (//64992E"F;;"HOOXt{{4K$L<<#X__i5N%OXr   c              #      K   | j                   | j                    | j                  | j                   | j                  | j                   y y wr^   r   rU  rV  r+   s    r   rf   zIf.__iter__  F     99 ))O;;"++<<#,, $r   r   r^   rh   r   r   r   rS  rS        EI Jr   rS  c                   (    e Zd ZdZddZd Zd ZdZy)InitListr  Nc                      || _         || _        y r^   r  r  s      r   r_   zInitList.__init__  r   r   c                     g }t        | j                  xs g       D ]  \  }}|j                  d|z  |f        t        |      S r  r  r   s       r   r,   zInitList.children  r   r   c              #   >   K   | j                   xs g D ]  }|  y wr^   r  r   s     r   rf   zInitList.__iter__  r   r   r   r^   rh   r   r   r   rd  rd    r   r   rd  c                   (    e Zd ZdZddZd Zd ZdZy)Label)r(   r   r;   r\   Nc                 .    || _         || _        || _        y r^   )r(   r   r;   )r$   r(   r   r;   s       r   r_   zLabel.__init__  r   r   c                 n    g }| j                   |j                  d| j                   f       t        |      S )Nr   )r   ra   rb   rc   s     r   r,   zLabel.children  /    99 (//64992E"FXr   c              #   B   K   | j                   | j                    y y wr^   )r   r+   s    r   rf   zLabel.__iter__#       99 ))O !r~   r  r^   rh   r   r   r   ri  ri    s    8I

 Jr   ri  c                   (    e Zd ZdZddZd Zd ZdZy)NamedInitializer)r(   r   r;   r\   Nc                 .    || _         || _        || _        y r^   )r(   r   r;   )r$   r(   r   r;   s       r   r_   zNamedInitializer.__init__+  r   r   c                     g }| j                   |j                  d| j                   f       t        | j                  xs g       D ]  \  }}|j                  d|z  |f        t	        |      S )Nr   zname[%d])r   ra   r   r(   rb   r   s       r   r,   zNamedInitializer.children0  sd    99 (//64992E"F!$))/r2 	5HAuOOZ!^U34	5Xr   c              #   r   K   | j                   | j                    | j                  xs g D ]  }|  y wr^   )r   r(   r   s     r   rf   zNamedInitializer.__iter__7  s5     99 ))Oiio2 	EK	r   r   r^   rh   r   r   r   rp  rp  )  s    8I
 Jr   rp  c                   (    e Zd ZdZddZd Zd ZdZy)	ParamList)paramsr;   r\   Nc                      || _         || _        y r^   )rv  r;   )r$   rv  r;   s      r   r_   zParamList.__init__A      
r   c                     g }t        | j                  xs g       D ]  \  }}|j                  d|z  |f        t        |      S )Nz
params[%d])r   rv  ra   rb   r   s       r   r,   zParamList.childrenE  sH    !$++"34 	7HAuOO\A-u56	7Xr   c              #   >   K   | j                   xs g D ]  }|  y wr^   )rv  r   s     r   rf   zParamList.__iter__K  s#     kk'R 	EK	r   r   r^   rh   r   r   r   ru  ru  ?  s    2I Jr   ru  c                   (    e Zd ZdZddZd Zd ZdZy)PtrDecl)r   rY   r;   r\   Nc                 .    || _         || _        || _        y r^   )r   rY   r;   )r$   r   rY   r;   s       r   r_   zPtrDecl.__init__S  s    
	
r   c                 n    g }| j                   |j                  d| j                   f       t        |      S NrY   rY   ra   rb   rc   s     r   r,   zPtrDecl.childrenX  rl  r   c              #   B   K   | j                   | j                    y y wr^   rY   r+   s    r   rf   zPtrDecl.__iter__]  rn  r~   )r   r^   rh   r   r   r   r|  r|  Q  s    9I

 Jr   r|  c                   (    e Zd ZdZddZd Zd ZdZy)Return)r   r;   r\   Nc                      || _         || _        y r^   )r   r;   )r$   r   r;   s      r   r_   zReturn.__init__e  rC  r   c                 n    g }| j                   |j                  d| j                   f       t        |      S Nr   r   ra   rb   rc   s     r   r,   zReturn.childreni  rl  r   c              #   B   K   | j                   | j                    y y wr^   r   r+   s    r   rf   zReturn.__iter__n  rn  r~   r   r^   rh   r   r   r   r  r  c  s    0I
 Jr   r  c                   (    e Zd ZdZddZd Zd ZdZy)StaticAssert)r   messager;   r\   Nc                 .    || _         || _        || _        y r^   )r   r  r;   )r$   r   r  r;   s       r   r_   zStaticAssert.__init__v  s    	
r   c                     g }| j                   |j                  d| j                   f       | j                  |j                  d| j                  f       t        |      S )Nr   r  )r   ra   r  rb   rc   s     r   r,   zStaticAssert.children{  sM    99 (//64992E"F<<#X__i5N%OXr   c              #   v   K   | j                   | j                    | j                  | j                   y y wr^   )r   r  r+   s    r   rf   zStaticAssert.__iter__  s2     99 ))O<<#,, $rg   r   r^   rh   r   r   r   r  r  t  s    ;I
 Jr   r  c                   (    e Zd ZdZddZd Zd ZdZy)Structr(   r   r;   r\   Nc                 .    || _         || _        || _        y r^   r(   r   r;   r$   r(   r   r;   s       r   r_   zStruct.__init__  r   r   c                     g }t        | j                  xs g       D ]  \  }}|j                  d|z  |f        t        |      S r   r   r   s       r   r,   zStruct.children  r   r   c              #   >   K   | j                   xs g D ]  }|  y wr^   r   r   s     r   rf   zStruct.__iter__  r   r   r  r^   rh   r   r   r   r  r        9I
 Jr   r  c                   (    e Zd ZdZddZd Zd ZdZy)	StructRef)r(   rY   fieldr;   r\   Nc                 <    || _         || _        || _        || _        y r^   )r(   rY   r  r;   )r$   r(   rY   r  r;   s        r   r_   zStructRef.__init__  s    		

r   c                     g }| j                   |j                  d| j                   f       | j                  |j                  d| j                  f       t        |      S )Nr(   r  )r(   ra   r  rb   rc   s     r   r,   zStructRef.children  r   r   c              #   v   K   | j                   | j                    | j                  | j                   y y wr^   )r(   r  r+   s    r   rf   zStructRef.__iter__  r   rg   r  r^   rh   r   r   r   r  r    s    AI Jr   r  c                   (    e Zd ZdZddZd Zd ZdZy)Switchr   Nc                 .    || _         || _        || _        y r^   r   r   s       r   r_   zSwitch.__init__  r   r   c                     g }| j                   |j                  d| j                   f       | j                  |j                  d| j                  f       t        |      S r   r   rc   s     r   r,   zSwitch.children  r   r   c              #   v   K   | j                   | j                    | j                  | j                   y y wr^   r   r+   s    r   rf   zSwitch.__iter__  r   rg   r   r^   rh   r   r   r   r  r    r   r   r  c                   (    e Zd ZdZddZd Zd ZdZy)	TernaryOprT  Nc                 <    || _         || _        || _        || _        y r^   rX  rY  s        r   r_   zTernaryOp.__init__  rZ  r   c                    g }| j                   |j                  d| j                   f       | j                  |j                  d| j                  f       | j                  |j                  d| j                  f       t	        |      S r\  r]  rc   s     r   r,   zTernaryOp.children  r^  r   c              #      K   | j                   | j                    | j                  | j                   | j                  | j                   y y wr^   r`  r+   s    r   rf   zTernaryOp.__iter__  ra  r   r   r^   rh   r   r   r   r  r    rb  r   r  c                   (    e Zd ZdZddZd Zd ZdZy)TypeDecl)declnamer   r   rY   r;   r\   Nc                 J    || _         || _        || _        || _        || _        y r^   )r  r   r   rY   r;   )r$   r  r   r   rY   r;   s         r   r_   zTypeDecl.__init__  s%     

	
r   c                 n    g }| j                   |j                  d| j                   f       t        |      S r  r  rc   s     r   r,   zTypeDecl.children  rl  r   c              #   B   K   | j                   | j                    y y wr^   r  r+   s    r   rf   zTypeDecl.__iter__  rn  r~   )r  r   r   r^   rh   r   r   r   r  r    s    NI
 2Jr   r  c                   (    e Zd ZdZddZd Zd ZdZy)Typedef)r(   r   r   rY   r;   r\   Nc                 J    || _         || _        || _        || _        || _        y r^   )r(   r   r   rY   r;   )r$   r(   r   r   rY   r;   s         r   r_   zTypedef.__init__  s%    	
	
r   c                 n    g }| j                   |j                  d| j                   f       t        |      S r  r  rc   s     r   r,   zTypedef.children  rl  r   c              #   B   K   | j                   | j                    y y wr^   r  r+   s    r   rf   zTypedef.__iter__  rn  r~   )r(   r   r   r^   rh   r   r   r   r  r    s    LI
 0Jr   r  c                   (    e Zd ZdZddZd Zd ZdZy)Typename)r(   r   r   rY   r;   r\   Nc                 J    || _         || _        || _        || _        || _        y r^   )r(   r   r   rY   r;   )r$   r(   r   r   rY   r;   s         r   r_   zTypename.__init__
  s%    	

	
r   c                 n    g }| j                   |j                  d| j                   f       t        |      S r  r  rc   s     r   r,   zTypename.children  rl  r   c              #   B   K   | j                   | j                    y y wr^   r  r+   s    r   rf   zTypename.__iter__  rn  r~   )r(   r   r   r^   rh   r   r   r   r  r    s    JI
 .Jr   r  c                   (    e Zd ZdZddZd Zd ZdZy)UnaryOp)rq   r   r;   r\   Nc                 .    || _         || _        || _        y r^   )rq   r   r;   )r$   rq   r   r;   s       r   r_   zUnaryOp.__init__  s    	
r   c                 n    g }| j                   |j                  d| j                   f       t        |      S r  r  rc   s     r   r,   zUnaryOp.children#  rl  r   c              #   B   K   | j                   | j                    y y wr^   r  r+   s    r   rf   zUnaryOp.__iter__(  rn  r~   rw   r^   rh   r   r   r   r  r    s    6I

 Jr   r  c                   (    e Zd ZdZddZd Zd ZdZy)Unionr  Nc                 .    || _         || _        || _        y r^   r  r  s       r   r_   zUnion.__init__0  r   r   c                     g }t        | j                  xs g       D ]  \  }}|j                  d|z  |f        t        |      S r   r   r   s       r   r,   zUnion.children5  r   r   c              #   >   K   | j                   xs g D ]  }|  y wr^   r   r   s     r   rf   zUnion.__iter__;  r   r   r  r^   rh   r   r   r   r  r  .  r  r   r  c                   (    e Zd ZdZddZd Zd ZdZy)Whiler   Nc                 .    || _         || _        || _        y r^   r   r   s       r   r_   zWhile.__init__C  r   r   c                     g }| j                   |j                  d| j                   f       | j                  |j                  d| j                  f       t        |      S r   r   rc   s     r   r,   zWhile.childrenH  r   r   c              #   v   K   | j                   | j                    | j                  | j                   y y wr^   r   r+   s    r   rf   zWhile.__iter__N  r   rg   r   r^   rh   r   r   r   r  r  A  r   r   r  c                   (    e Zd ZdZddZd Zd ZdZy)Pragma)stringr;   r\   Nc                      || _         || _        y r^   )r  r;   )r$   r  r;   s      r   r_   zPragma.__init__X  rx  r   c                     g }t        |      S r^   r   rc   s     r   r,   zPragma.children\  r   r   c              #      K   y wr^   r   r+   s    r   rf   zPragma.__iter__`  r   r   )r  r^   rh   r   r   r   r  r  V  s    2I Jr   r  )6rG   r   objectr   rJ   rX   rj   rp   ry   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r  r%  r+  r1  r6  r>  rH  rM  rS  rd  ri  rp  ru  r|  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r   r   <module>r     sy  & L*6 L*^8& 8t! !,t * ,d "t ,D 4 ,4 *t $d *%t %"t E4 E<t $d $d *D T 4 $ $T $t $d $$ :t *t *d 44    T   2t $D $t , $d $T "4 *T & ,T * 22t 2(0d 0(.t .(d $D &D *T r   