a ‚oeÕzã@sDddlZdd„ZGdd„deƒZGdd„deƒZGdd „d eƒZGd d „d eƒZGd d „d eƒZGdd„deƒZGdd„deƒZ Gdd„deƒZ Gdd„deƒZ Gdd„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ƒZGdd?„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ƒZ3Gdfdg„dgeƒZ4Gdhdi„dieƒZ5dS)jé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 ú0C:\Program Files\Certbot\pkgs\pycparser\c_ast.pyÚ óz_repr..z ]N)Ú isinstanceÚlistÚjoinÚrepr)Úobjr r r rs rc@s8eZdZdZdd„Zdd„Zejdddddfd d „ZdS) ÚNoder c Csš|jjd}d}d}|jdd…D]f}||7}||7}||dtt||ƒƒ dddt|ƒt|jjƒ¡7}d }d dt|jjƒ}q"||d 7}|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(‡fd d„ˆ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: csg|]}|tˆ|ƒf‘qSr ©r©rÚnr%r r Ú Xr zNode.show..z, css|]}d|VqdS)z%s=%sNr )rÚnvr r r r Yr zNode.show..csg|]}tˆ|ƒ‘qSr r'r(r%r r r*[r css|]}d|VqdS)z%sNr )rÚvr r r r \r z (at %s)ré)ÚoffsetÚ attrnamesÚ nodenamesÚ showcoordÚ _my_node_name)ÚwriterrÚ attr_namesrÚcoordr&Úshow) rÚbufr.r/r0r1r2ZleadZnvlistZattrstrZvlistZ child_nameÚchildr r%r r6:s.    úz Node.show) rÚ __module__Ú __qualname__rr$r&ÚsysÚstdoutr6r r r r rsrc@s$eZdZdZdZdd„Zdd„ZdS)Ú NodeVisitora- A base NodeVisitor class for visiting c_ast nodes. Subclass it and define your own visit_XXX methods, where XXX is the class name you want to visit with these methods. For example: class ConstantVisitor(NodeVisitor): def __init__(self): self.values = [] def visit_Constant(self, node): self.values.append(node.value) Creates a list of values of all the constant nodes encountered below the given node. To use it: cv = ConstantVisitor() cv.visit(node) Notes: * generic_visit() will be called for AST nodes for which no visit_XXX method was defined. * The children of nodes for which a visit_XXX was defined will not be visited - if you need this, call generic_visit() on the node. You can use: NodeVisitor.generic_visit(self, node) * Modeled after Python's own AST visiting facilities (the ast module of Python 3.0) NcCsZ|jduri|_|j |jjd¡}|durRd|jj}t|||jƒ}||j|jj<||ƒS)z Visit a node. NZvisit_)Ú _method_cacheÚgetrrrÚ generic_visit)rÚnodeZvisitorÚmethodr r r Úvisit‘s  zNodeVisitor.visitcCs|D]}| |¡qdS)zy Called if no explicit visitor function exists for a node. Implements preorder visiting of the node. N)rC)rrAÚcr r r r@ szNodeVisitor.generic_visit)rr9r:Ú__doc__r>rCr@r r r r r=ms!r=c@s.eZdZdZd dd„Zdd„Zdd„Zd ZdS) Ú ArrayDecl)ÚtypeÚdimÚ dim_qualsr5Ú __weakref__NcCs||_||_||_||_dS©N)rGrHrIr5)rrGrHrIr5r r r Ú__init__©szArrayDecl.__init__cCs@g}|jdur| d|jf¡|jdur8| d|jf¡t|ƒS)NrGrH)rGÚappendrHÚtuple©rÚnodelistr r r r&¯szArrayDecl.childrenccs(|jdur|jV|jdur$|jVdSrK)rGrHr%r r r Ú__iter__µs  zArrayDecl.__iter__)rI)N©rr9r:rrLr&rQr4r r r r rF§s  rFc@s.eZdZdZd dd„Zdd„Zdd„Zd ZdS) ÚArrayRef)r#Ú subscriptr5rJNcCs||_||_||_dSrK)r#rTr5)rr#rTr5r r r rL¿szArrayRef.__init__cCs@g}|jdur| d|jf¡|jdur8| d|jf¡t|ƒS)Nr#rT)r#rMrTrNrOr r r r&ÄszArrayRef.childrenccs(|jdur|jV|jdur$|jVdSrK)r#rTr%r r r rQÊs  zArrayRef.__iter__r )NrRr r r r rS½s  rSc@s.eZdZdZd dd„Zdd„Zdd„Zd ZdS) Ú Assignment)ÚopÚlvalueÚrvaluer5rJNcCs||_||_||_||_dSrK)rVrWrXr5)rrVrWrXr5r r r rLÔszAssignment.__init__cCs@g}|jdur| d|jf¡|jdur8| d|jf¡t|ƒS)NrWrX)rWrMrXrNrOr r r r&ÚszAssignment.childrenccs(|jdur|jV|jdur$|jVdSrK)rWrXr%r r r rQàs  zAssignment.__iter__©rV)NrRr r r r rUÒs  rUc@s.eZdZdZd dd„Zdd„Zdd„Zd ZdS) ÚAlignas)Ú alignmentr5rJNcCs||_||_dSrK)r[r5)rr[r5r r r rLêszAlignas.__init__cCs&g}|jdur| d|jf¡t|ƒS)Nr[)r[rMrNrOr r r r&îszAlignas.childrenccs|jdur|jVdSrK)r[r%r r r rQós zAlignas.__iter__r )NrRr r r r rZès  rZc@s.eZdZdZd dd„Zdd„Zdd„Zd ZdS) ÚBinaryOp)rVÚleftÚrightr5rJNcCs||_||_||_||_dSrK)rVr]r^r5)rrVr]r^r5r r r rLûszBinaryOp.__init__cCs@g}|jdur| d|jf¡|jdur8| d|jf¡t|ƒS)Nr]r^)r]rMr^rNrOr r r r&szBinaryOp.childrenccs(|jdur|jV|jdur$|jVdSrK)r]r^r%r r r rQs  zBinaryOp.__iter__rY)NrRr r r r r\ùs  r\c@s.eZdZdZd dd„Zdd„Zdd„Zd ZdS) ÚBreak©r5rJNcCs ||_dSrK©r5©rr5r r r rLszBreak.__init__cCsdS©Nr r r%r r r r&szBreak.childrenccsdSrKr r%r r r rQszBreak.__iter__r )NrRr r r r r_s  r_c@s.eZdZdZd dd„Zdd„Zdd„Zd ZdS) ÚCase)ÚexprÚstmtsr5rJNcCs||_||_||_dSrK)rerfr5)rrerfr5r r r rLsz Case.__init__cCsPg}|jdur| d|jf¡t|jp(gƒD]\}}| d||f¡q,t|ƒS)Nreú stmts[%d])rerMÚ enumeraterfrN©rrPÚir8r r r r&$s z Case.childrenccs,|jdur|jV|jpgD] }|VqdSrK)rerf©rr8r r r rQ+s z Case.__iter__r )NrRr r r r rds  rdc@s.eZdZdZd dd„Zdd„Zdd„Zd ZdS) ÚCast)Úto_typerer5rJNcCs||_||_||_dSrK)rmrer5)rrmrer5r r r rL5sz Cast.__init__cCs@g}|jdur| d|jf¡|jdur8| d|jf¡t|ƒS)Nrmre)rmrMrerNrOr r r r&:sz Cast.childrenccs(|jdur|jV|jdur$|jVdSrK)rmrer%r r r rQ@s  z Cast.__iter__r )NrRr r r r rl3s  rlc@s.eZdZdZd dd„Zdd„Zdd„Zd ZdS) ÚCompound)Ú block_itemsr5rJNcCs||_||_dSrK)ror5)rror5r r r rLJszCompound.__init__cCs6g}t|jpgƒD]\}}| d||f¡qt|ƒS)Nzblock_items[%d])rhrorMrNrir r r r&NszCompound.childrenccs|jpgD] }|Vq dSrK)rorkr r r rQTszCompound.__iter__r )NrRr r r r rnHs  rnc@s.eZdZdZd dd„Zdd„Zdd„Zd ZdS) ÚCompoundLiteral)rGÚinitr5rJNcCs||_||_||_dSrK)rGrqr5)rrGrqr5r r r rL\szCompoundLiteral.__init__cCs@g}|jdur| d|jf¡|jdur8| d|jf¡t|ƒS)NrGrq)rGrMrqrNrOr r r r&aszCompoundLiteral.childrenccs(|jdur|jV|jdur$|jVdSrK)rGrqr%r r r rQgs  zCompoundLiteral.__iter__r )NrRr r r r rpZs  rpc@s.eZdZdZd dd„Zdd„Zdd„Zd ZdS) ÚConstant)rGÚvaluer5rJNcCs||_||_||_dSrK)rGrsr5)rrGrsr5r r r rLqszConstant.__init__cCs g}t|ƒSrK©rNrOr r r r&vszConstant.childrenccsdSrKr r%r r r rQzszConstant.__iter__)rGrs)NrRr r r r rros  rrc@s.eZdZdZd dd„Zdd„Zdd„Zd ZdS) ÚContinuer`NcCs ||_dSrKrarbr r r rL‚szContinue.__init__cCsdSrcr r%r r r r&…szContinue.childrenccsdSrKr r%r r r rQˆszContinue.__iter__r )NrRr r r r ru€s  ruc@s.eZdZdZd dd„Zdd„Zdd„Zd ZdS) ÚDecl) r#ÚqualsÚalignÚstorageÚfuncspecrGrqÚbitsizer5rJNc Cs:||_||_||_||_||_||_||_||_| |_dSrK) r#rwrxryrzrGrqr{r5) rr#rwrxryrzrGrqr{r5r r r rL�sz Decl.__init__cCsZg}|jdur| d|jf¡|jdur8| d|jf¡|jdurR| d|jf¡t|ƒS)NrGrqr{)rGrMrqr{rNrOr r r r&›s z Decl.childrenccs:|jdur|jV|jdur$|jV|jdur6|jVdSrK)rGrqr{r%r r r rQ¢s    z Decl.__iter__)r#rwrxryrz)NrRr r r r rvŽs  rvc@s.eZdZdZd dd„Zdd„Zdd„Zd ZdS) ÚDeclList)Údeclsr5rJNcCs||_||_dSrK)r}r5)rr}r5r r r rL®szDeclList.__init__cCs6g}t|jpgƒD]\}}| d||f¡qt|ƒS©Nz decls[%d]©rhr}rMrNrir r r r&²szDeclList.childrenccs|jpgD] }|Vq dSrK©r}rkr r r rQ¸szDeclList.__iter__r )NrRr r r r r|¬s  r|c@s.eZdZdZd dd„Zdd„Zdd„Zd ZdS) ÚDefault)rfr5rJNcCs||_||_dSrK)rfr5)rrfr5r r r rLÀszDefault.__init__cCs6g}t|jpgƒD]\}}| d||f¡qt|ƒS)Nrg)rhrfrMrNrir r r r&ÄszDefault.childrenccs|jpgD] }|Vq dSrK)rfrkr r r rQÊszDefault.__iter__r )NrRr r r r r�¾s  r�c@s.eZdZdZd dd„Zdd„Zdd„Zd ZdS) ÚDoWhile©ÚcondÚstmtr5rJNcCs||_||_||_dSrK©r„r…r5©rr„r…r5r r r rLÒszDoWhile.__init__cCs@g}|jdur| d|jf¡|jdur8| d|jf¡t|ƒS©Nr„r…©r„rMr…rNrOr r r r&×szDoWhile.childrenccs(|jdur|jV|jdur$|jVdSrK©r„r…r%r r r rQÝs  zDoWhile.__iter__r )NrRr r r r r‚Ðs  r‚c@s.eZdZdZd dd„Zdd„Zdd„Zd ZdS) Ú EllipsisParamr`NcCs ||_dSrKrarbr r r rLçszEllipsisParam.__init__cCsdSrcr r%r r r r&êszEllipsisParam.childrenccsdSrKr r%r r r rQíszEllipsisParam.__iter__r )NrRr r r r r‹ås  r‹c@s.eZdZdZd dd„Zdd„Zdd„Zd ZdS) ÚEmptyStatementr`NcCs ||_dSrKrarbr r r rLõszEmptyStatement.__init__cCsdSrcr r%r r r r&øszEmptyStatement.childrenccsdSrKr r%r r r rQûszEmptyStatement.__iter__r )NrRr r r r rŒós  rŒc@s.eZdZdZd dd„Zdd„Zdd„Zd ZdS) ÚEnum)r#Úvaluesr5rJNcCs||_||_||_dSrK)r#rŽr5)rr#rŽr5r r r rLsz Enum.__init__cCs&g}|jdur| d|jf¡t|ƒS)NrŽ)rŽrMrNrOr r r r&sz Enum.childrenccs|jdur|jVdSrK)rŽr%r r r rQ s z Enum.__iter__©r#)NrRr r r r r�s  r�c@s.eZdZdZd dd„Zdd„Zdd„Zd ZdS) Ú Enumerator)r#rsr5rJNcCs||_||_||_dSrK)r#rsr5)rr#rsr5r r r rLszEnumerator.__init__cCs&g}|jdur| d|jf¡t|ƒS)Nrs)rsrMrNrOr r r r&szEnumerator.childrenccs|jdur|jVdSrK)rsr%r r r rQs zEnumerator.__iter__r�)NrRr r r r r�s  r�c@s.eZdZdZd dd„Zdd„Zdd„Zd ZdS) ÚEnumeratorList)Ú enumeratorsr5rJNcCs||_||_dSrK)r’r5)rr’r5r r r rL'szEnumeratorList.__init__cCs6g}t|jpgƒD]\}}| d||f¡qt|ƒS)Nzenumerators[%d])rhr’rMrNrir r r r&+szEnumeratorList.childrenccs|jpgD] }|Vq dSrK)r’rkr r r rQ1szEnumeratorList.__iter__r )NrRr r r r r‘%s  r‘c@s.eZdZdZd dd„Zdd„Zdd„Zd ZdS) ÚExprList©Úexprsr5rJNcCs||_||_dSrK©r•r5©rr•r5r r r rL9szExprList.__init__cCs6g}t|jpgƒD]\}}| d||f¡qt|ƒS©Nz exprs[%d]©rhr•rMrNrir r r r&=szExprList.childrenccs|jpgD] }|Vq dSrK©r•rkr r r rQCszExprList.__iter__r )NrRr r r r r“7s  r“c@s.eZdZdZd dd„Zdd„Zdd„Zd ZdS) ÚFileAST)Úextr5rJNcCs||_||_dSrK)rœr5)rrœr5r r r rLKszFileAST.__init__cCs6g}t|jpgƒD]\}}| d||f¡qt|ƒS)Nzext[%d])rhrœrMrNrir r r r&OszFileAST.childrenccs|jpgD] }|Vq dSrK)rœrkr r r rQUszFileAST.__iter__r )NrRr r r r r›Is  r›c@s.eZdZdZd dd„Zdd„Zdd„Zd ZdS) ÚFor)rqr„Únextr…r5rJNcCs"||_||_||_||_||_dSrK)rqr„ržr…r5)rrqr„ržr…r5r r r rL]s z For.__init__cCstg}|jdur| d|jf¡|jdur8| d|jf¡|jdurR| d|jf¡|jdurl| d|jf¡t|ƒS)Nrqr„ržr…)rqrMr„ržr…rNrOr r r r&ds z For.childrenccsL|jdur|jV|jdur$|jV|jdur6|jV|jdurH|jVdSrK)rqr„ržr…r%r r r rQls    z For.__iter__r )NrRr r r r r�[s   r�c@s.eZdZdZd dd„Zdd„Zdd„Zd ZdS) ÚFuncCall)r#Úargsr5rJNcCs||_||_||_dSrK)r#r r5)rr#r r5r r r rLzszFuncCall.__init__cCs@g}|jdur| d|jf¡|jdur8| d|jf¡t|ƒS)Nr#r )r#rMr rNrOr r r r&szFuncCall.childrenccs(|jdur|jV|jdur$|jVdSrK)r#r r%r r r rQ…s  zFuncCall.__iter__r )NrRr r r r rŸxs  rŸc@s.eZdZdZd dd„Zdd„Zdd„Zd ZdS) ÚFuncDecl)r rGr5rJNcCs||_||_||_dSrK)r rGr5)rr rGr5r r r rL�szFuncDecl.__init__cCs@g}|jdur| d|jf¡|jdur8| d|jf¡t|ƒS)Nr rG)r rMrGrNrOr r r r&”szFuncDecl.childrenccs(|jdur|jV|jdur$|jVdSrK)r rGr%r r r rQšs  zFuncDecl.__iter__r )NrRr r r r r¡�s  r¡c@s.eZdZdZd dd„Zdd„Zdd„Zd ZdS) ÚFuncDef)ÚdeclÚ param_declsÚbodyr5rJNcCs||_||_||_||_dSrK)r£r¤r¥r5)rr£r¤r¥r5r r r rL¤szFuncDef.__init__cCsjg}|jdur| d|jf¡|jdur8| d|jf¡t|jpBgƒD]\}}| d||f¡qFt|ƒS)Nr£r¥zparam_decls[%d])r£rMr¥rhr¤rNrir r r r&ªs zFuncDef.childrenccs>|jdur|jV|jdur$|jV|jp,gD] }|Vq.dSrK)r£r¥r¤rkr r r rQ²s   zFuncDef.__iter__r )NrRr r r r r¢¢s  r¢c@s.eZdZdZd dd„Zdd„Zdd„Zd ZdS) ÚGoto©r#r5rJNcCs||_||_dSrK©r#r5©rr#r5r r r rL¾sz Goto.__init__cCs g}t|ƒSrKrtrOr r r r&Âsz Goto.childrenccsdSrKr r%r r r rQÆsz Goto.__iter__r�)NrRr r r r r¦¼s  r¦c@s.eZdZdZd dd„Zdd„Zdd„Zd ZdS) ÚIDr§NcCs||_||_dSrKr¨r©r r r rLÎsz ID.__init__cCs g}t|ƒSrKrtrOr r r r&Òsz ID.childrenccsdSrKr r%r r r rQÖsz ID.__iter__r�)NrRr r r r rªÌs  rªc@s.eZdZdZd dd„Zdd„Zdd„Zd ZdS) ÚIdentifierType)Únamesr5rJNcCs||_||_dSrK)r¬r5)rr¬r5r r r rLÞszIdentifierType.__init__cCs g}t|ƒSrKrtrOr r r r&âszIdentifierType.childrenccsdSrKr r%r r r rQæszIdentifierType.__iter__)r¬)NrRr r r r r«Üs  r«c@s.eZdZdZd dd„Zdd„Zdd„Zd ZdS) ÚIf©r„ÚiftrueÚiffalser5rJNcCs||_||_||_||_dSrK©r„r¯r°r5©rr„r¯r°r5r r r rLîsz If.__init__cCsZg}|jdur| d|jf¡|jdur8| d|jf¡|jdurR| d|jf¡t|ƒS©Nr„r¯r°©r„rMr¯r°rNrOr r r r&ôs z If.childrenccs:|jdur|jV|jdur$|jV|jdur6|jVdSrK©r„r¯r°r%r r r rQûs    z If.__iter__r )NrRr r r r r­ìs  r­c@s.eZdZdZd dd„Zdd„Zdd„Zd ZdS) ÚInitListr”NcCs||_||_dSrKr–r—r r r rLszInitList.__init__cCs6g}t|jpgƒD]\}}| d||f¡qt|ƒSr˜r™rir r r r& szInitList.childrenccs|jpgD] }|Vq dSrKršrkr r r rQszInitList.__iter__r )NrRr r r r r¶s  r¶c@s.eZdZdZd dd„Zdd„Zdd„Zd ZdS) ÚLabel)r#r…r5rJNcCs||_||_||_dSrK)r#r…r5)rr#r…r5r r r rLszLabel.__init__cCs&g}|jdur| d|jf¡t|ƒS)Nr…)r…rMrNrOr r r r&szLabel.childrenccs|jdur|jVdSrK)r…r%r r r rQ#s zLabel.__iter__r�)NrRr r r r r·s  r·c@s.eZdZdZd dd„Zdd„Zdd„Zd ZdS) ÚNamedInitializer)r#rer5rJNcCs||_||_||_dSrK)r#rer5)rr#rer5r r r rL+szNamedInitializer.__init__cCsPg}|jdur| d|jf¡t|jp(gƒD]\}}| d||f¡q,t|ƒS)Nrezname[%d])rerMrhr#rNrir r r r&0s zNamedInitializer.childrenccs,|jdur|jV|jpgD] }|VqdSrK)rer#rkr r r rQ7s zNamedInitializer.__iter__r )NrRr r r r r¸)s  r¸c@s.eZdZdZd dd„Zdd„Zdd„Zd ZdS) Ú ParamList)Úparamsr5rJNcCs||_||_dSrK)rºr5)rrºr5r r r rLAszParamList.__init__cCs6g}t|jpgƒD]\}}| d||f¡qt|ƒS)Nz params[%d])rhrºrMrNrir r r r&EszParamList.childrenccs|jpgD] }|Vq dSrK)rºrkr r r rQKszParamList.__iter__r )NrRr r r r r¹?s  r¹c@s.eZdZdZd dd„Zdd„Zdd„Zd ZdS) ÚPtrDecl)rwrGr5rJNcCs||_||_||_dSrK)rwrGr5)rrwrGr5r r r rLSszPtrDecl.__init__cCs&g}|jdur| d|jf¡t|ƒS©NrG©rGrMrNrOr r r r&XszPtrDecl.childrenccs|jdur|jVdSrK©rGr%r r r rQ]s zPtrDecl.__iter__)rw)NrRr r r r r»Qs  r»c@s.eZdZdZd dd„Zdd„Zdd„Zd ZdS) ÚReturn)rer5rJNcCs||_||_dSrK)rer5)rrer5r r r rLeszReturn.__init__cCs&g}|jdur| d|jf¡t|ƒS©Nre©rerMrNrOr r r r&iszReturn.childrenccs|jdur|jVdSrK©rer%r r r rQns zReturn.__iter__r )NrRr r r r r¿cs  r¿c@s.eZdZdZd dd„Zdd„Zdd„Zd ZdS) Ú StaticAssert)r„Úmessager5rJNcCs||_||_||_dSrK)r„rÄr5)rr„rÄr5r r r rLvszStaticAssert.__init__cCs@g}|jdur| d|jf¡|jdur8| d|jf¡t|ƒS)Nr„rÄ)r„rMrÄrNrOr r r r&{szStaticAssert.childrenccs(|jdur|jV|jdur$|jVdSrK)r„rÄr%r r r rQ�s  zStaticAssert.__iter__r )NrRr r r r rÃts  rÃc@s.eZdZdZd dd„Zdd„Zdd„Zd ZdS) ÚStruct©r#r}r5rJNcCs||_||_||_dSrK©r#r}r5©rr#r}r5r r r rL‹szStruct.__init__cCs6g}t|jpgƒD]\}}| d||f¡qt|ƒSr~rrir r r r&�szStruct.childrenccs|jpgD] }|Vq dSrKr€rkr r r rQ–szStruct.__iter__r�)NrRr r r r rʼns  rÅc@s.eZdZdZd dd„Zdd„Zdd„Zd ZdS) Ú StructRef)r#rGÚfieldr5rJNcCs||_||_||_||_dSrK)r#rGrÊr5)rr#rGrÊr5r r r rLžszStructRef.__init__cCs@g}|jdur| d|jf¡|jdur8| d|jf¡t|ƒS)Nr#rÊ)r#rMrÊrNrOr r r r&¤szStructRef.childrenccs(|jdur|jV|jdur$|jVdSrK)r#rÊr%r r r rQªs  zStructRef.__iter__r¾)NrRr r r r rÉœs  rÉc@s.eZdZdZd dd„Zdd„Zdd„Zd ZdS) ÚSwitchrƒNcCs||_||_||_dSrKr†r‡r r r rL´szSwitch.__init__cCs@g}|jdur| d|jf¡|jdur8| d|jf¡t|ƒSrˆr‰rOr r r r&¹szSwitch.childrenccs(|jdur|jV|jdur$|jVdSrKrŠr%r r r rQ¿s  zSwitch.__iter__r )NrRr r r r r˲s  rËc@s.eZdZdZd dd„Zdd„Zdd„Zd ZdS) Ú TernaryOpr®NcCs||_||_||_||_dSrKr±r²r r r rLÉszTernaryOp.__init__cCsZg}|jdur| d|jf¡|jdur8| d|jf¡|jdurR| d|jf¡t|ƒSr³r´rOr r r r&Ïs zTernaryOp.childrenccs:|jdur|jV|jdur$|jV|jdur6|jVdSrKrµr%r r r rQÖs    zTernaryOp.__iter__r )NrRr r r r rÌÇs  rÌc@s.eZdZdZd dd„Zdd„Zdd„Zd ZdS) ÚTypeDecl)ÚdeclnamerwrxrGr5rJNcCs"||_||_||_||_||_dSrK)rÎrwrxrGr5)rrÎrwrxrGr5r r r rLâs zTypeDecl.__init__cCs&g}|jdur| d|jf¡t|ƒSr¼r½rOr r r r&észTypeDecl.childrenccs|jdur|jVdSrKr¾r%r r r rQîs zTypeDecl.__iter__)rÎrwrx)NrRr r r r rÍàs  rÍc@s.eZdZdZd dd„Zdd„Zdd„Zd ZdS) ÚTypedef)r#rwryrGr5rJNcCs"||_||_||_||_||_dSrK)r#rwryrGr5)rr#rwryrGr5r r r rLös zTypedef.__init__cCs&g}|jdur| d|jf¡t|ƒSr¼r½rOr r r r&ýszTypedef.childrenccs|jdur|jVdSrKr¾r%r r r rQs zTypedef.__iter__)r#rwry)NrRr r r r rÏôs  rÏc@s.eZdZdZd dd„Zdd„Zdd„Zd ZdS) ÚTypename)r#rwrxrGr5rJNcCs"||_||_||_||_||_dSrK)r#rwrxrGr5)rr#rwrxrGr5r r r rL s zTypename.__init__cCs&g}|jdur| d|jf¡t|ƒSr¼r½rOr r r r&szTypename.childrenccs|jdur|jVdSrKr¾r%r r r rQs zTypename.__iter__)r#rwrx)NrRr r r r rÐs  rÐc@s.eZdZdZd dd„Zdd„Zdd„Zd ZdS) ÚUnaryOp)rVrer5rJNcCs||_||_||_dSrK)rVrer5)rrVrer5r r r rLszUnaryOp.__init__cCs&g}|jdur| d|jf¡t|ƒSrÀrÁrOr r r r&#szUnaryOp.childrenccs|jdur|jVdSrKrÂr%r r r rQ(s zUnaryOp.__iter__rY)NrRr r r r rÑs  rÑc@s.eZdZdZd dd„Zdd„Zdd„Zd ZdS) ÚUnionrÆNcCs||_||_||_dSrKrÇrÈr r r rL0szUnion.__init__cCs6g}t|jpgƒD]\}}| d||f¡qt|ƒSr~rrir r r r&5szUnion.childrenccs|jpgD] }|Vq dSrKr€rkr r r rQ;szUnion.__iter__r�)NrRr r r r rÒ.s  rÒc@s.eZdZdZd dd„Zdd„Zdd„Zd ZdS) ÚWhilerƒNcCs||_||_||_dSrKr†r‡r r r rLCszWhile.__init__cCs@g}|jdur| d|jf¡|jdur8| d|jf¡t|ƒSrˆr‰rOr r r r&HszWhile.childrenccs(|jdur|jV|jdur$|jVdSrKrŠr%r r r rQNs  zWhile.__iter__r )NrRr r r r rÓAs  rÓc@s.eZdZdZd dd„Zdd„Zdd„Zd ZdS) ÚPragma)Ústringr5rJNcCs||_||_dSrK)rÕr5)rrÕr5r r r rLXszPragma.__init__cCs g}t|ƒSrKrtrOr r r r&\szPragma.childrenccsdSrKr r%r r r rQ`szPragma.__iter__)rÕ)NrRr r r r rÔVs  rÔ)6r;rÚobjectrr=rFrSrUrZr\r_rdrlrnrprrrurvr|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 r r Úsh O: