XjddlZddlmZmZmZmZdZGddZGddZGdd eZ Gd d eZ Gd d eZ GddeZ GddeZ GddeZGddeZGddeZGddeZGddeZGddeZGddeZGd d!eZGd"d#eZGd$d%eZGd&d'eZGd(d)eZGd*d+eZGd,d-eZGd.d/eZGd0d1eZGd2d3eZGd4d5eZGd6d7eZ Gd8d9eZ!Gd:d;eZ"Gd<d=eZ#Gd>d?eZ$Gd@dAeZ%GdBdCeZ&GdDdEeZ'GdFdGeZ(GdHdIeZ)GdJdKeZ*GdLdMeZ+GdNdOeZ,GdPdQeZ-GdRdSeZ.GdTdUeZ/GdVdWeZ0GdXdYeZ1GdZd[eZ2Gd\d]eZ3Gd^d_eZ4Gd`daeZ5GdbdceZ6GdddeeZ7GdfdgeZ8GdhdieZ9y)jN)AnyClassVarIOOptionalctt|trddjd|DzdzSt|S)z[ Get the representation of an object, with dedicated pprint-like format for lists. [z, c3RK|]}t|jdd!yw)  N)_reprreplace).0es c/mnt/ssd/data/Dropbox/adrian/vault-secondbrain/venv/lib/python3.12/site-packages/pycparser/c_ast.py z_repr..s!"NQ58#3#3D%#@"Ns%'z ]) isinstancelistjoinrepr)objs rr r s8#tfkk"N#"NOPSXXXCyceZdZUdZ dZeeedfed<e e ed<dZ dZ e jddd ddd fd eed ed edededede efdZy )Node. attr_namescoordc |jjdz}d}d}|jddD]}||z }||z }||dztt ||j dddt |t |jjzzzzz }d }d dt |jjzz}||d zz }|S) z5Generates a python representation of the current node(N=r z  ,r )) __class____name__ __slots__r getattrr len)selfresultindent separatornames r__repr__z Node.__repr__'s((3. NN3B' BD i F f F '$-.66#TS9P9P5Q)Q"RS FIcC(?(?$@@AF B" &3, rcy)z)A sequence of all children that are NodesNrr*s rchildrenz Node.childrenBs rrFTNbufoffset attrnamesshowemptyattrs nodenames showcoord _my_node_namec d|z}|r4|2|j||jjzdz|zdzn+|j||jjzdz|jrd} |jD cgc]$} |s| t || s| t || f&} } |rdj d| D} ndj d | D} |j| |r|jd |j d |jd |jD] \} }|j||d z||||| "ycc} w)aPretty 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. showemptyattrs: False if you want to suppress printing empty attributes. 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: cP|duxs t|dxrt|dk(yyy)N__len__r)hasattrr))vs ris_emptyzNode.show..is_emptyps(T Dga3CA! CDrz, c30K|]\}}|d|yw)r!Nr)rr.values rrzNode.show..ys#P+$tfAeW$5#Psc3(K|] \}}| ywNr)r_rAs rrzNode.show..{s#F81eugJ#Fsz (at r$r )r4r5r6r7r8r9) writer%r&rr(rrr2show)r*r3r4r5r6r7r8r9leadr?nnvlistattrstr child_namechilds rrGz Node.showFsVDV| 2 IIdT^^444t;mKeS T IIdT^^444t; < ?? E !'$2B)CGD!$%F ))#P#PP))#Fv#FF IIg   IIdjj\+ , $!%  J JJz#-##(   s)E)r& __module__ __qualname__r'rrtuplestr__annotations__rrr/r2sysstdoutrintboolrGrrrrr sI,.JsCx). C=6 zz#'+E WEE E  E  EE }Errc,eZdZdZdZdefdZdefdZy) NodeVisitoraA 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) NnodecB|ji|_|jj|jjd}|Sd|jjz}t |||j }||j|jj<||S)z Visit a node.Nvisit_) _method_cachegetr%r&r( generic_visit)r*rYvisitormethods rvisitzNodeVisitor.visits    %!#D $$(()@)@$G ? 7 77FdFD,>,>?G:AD  t~~66 7t}rcV|jD]\}}|j|y)ztCalled if no explicit visitor function exists for a node. Implements preorder visiting of the node. N)r2ra)r*rYrDcs rr^zNodeVisitor.generic_visits(MMO DAq JJqM r)r&rNrO__doc__r\rrar^rrrrXrXs'BM $ $rrXc(eZdZdZddZdZdZdZy) ArrayDecl)typedim dim_qualsr __weakref__Nc<||_||_||_||_yrC)rgrhrir)r*rgrhrirs r__init__zArrayDecl.__init__s " rcg}|j|jd|jf|j|jd|jft|S)Nrgrh)rgappendrhrPr*nodelists rr2zArrayDecl.childrensO 99 OOVTYY/ 0 88  OOUDHH- .Xrc#vK|j|j|j|jyywrC)rgrhr1s r__iter__zArrayDecl.__iter__s1 99 ))O 88 ((N 79)rirCr&rNrOr'rlr2rrrrrrrfrfsDI   Jrrfc(eZdZdZddZdZdZdZy)ArrayRef)r. subscriptrrjNc.||_||_||_yrC)r.rwr)r*r.rwrs rrlzArrayRef.__init__s " rcg}|j|jd|jf|j|jd|jft|S)Nr.rw)r.rnrwrPros rr2zArrayRef.childrensO 99 OOVTYY/ 0 >> % OO[$..9 :Xrc#vK|j|j|j|jyywrC)r.rwr1s rrrzArrayRef.__iter__s2 99 ))O >> %..  &rsrrCrtrrrrvrvs=I ! Jrrvc(eZdZdZddZdZdZdZy) Assignment)oplvaluervaluerrjNc<||_||_||_||_yrC)r}r~rr)r*r}r~rrs rrlzAssignment.__init__s   rcg}|j|jd|jf|j|jd|jft|S)Nr~r)r~rnrrPros rr2zAssignment.childrensO ;; " OOXt{{3 4 ;; " OOXt{{3 4Xrc#vK|j|j|j|jyywrC)r~rr1s rrrzAssignment.__iter__ s3 ;; "++  ;; "++  #rsr}rCrtrrrr|r|sBI  Jrr|c(eZdZdZddZdZdZdZy)Alignas) alignmentrrjNc ||_||_yrC)rr)r*rrs rrlzAlignas.__init__s" rcng}|j|jd|jft|S)Nr)rrnrPros rr2zAlignas.childrens0 >> % OO[$..9 :Xrc#BK|j|jyywrC)rr1s rrrzAlignas.__iter__"s >> %..  &rrCrtrrrrrs5I !Jrrc(eZdZdZddZdZdZdZy)BinaryOp)r}leftrightrrjNc<||_||_||_||_yrC)r}rrr)r*r}rrrs rrlzBinaryOp.__init__,s   rcg}|j|jd|jf|j|jd|jft|S)Nrr)rrnrrPros rr2zBinaryOp.children2O 99 OOVTYY/ 0 :: ! OOWdjj1 2Xrc#vK|j|j|j|jyywrC)rrr1s rrrzBinaryOp.__iter__:2 99 ))O :: !**  "rsrrCrtrrrrr)s?I  Jrrc(eZdZdZddZdZdZdZy)BreakrrjNc||_yrCrr*rs rrlzBreak.__init__F  rcyNrrr1s rr2zBreak.childrenIrc# KywrCrr1s rrrzBreak.__iter__L rrCrtrrrrrC(IJrrc(eZdZdZddZdZdZdZy)Case)exprstmtsrrjNc.||_||_||_yrC)rrr)r*rrrs rrlz Case.__init__V   rcg}|j|jd|jft|jxsgD]\}}|jd|d|ft |S)Nrstmts[])rrn enumeraterrPr*rpirMs rr2z Case.children[sj 99 OOVTYY/ 0!$**"23 4HAu OOvaS]E2 3 4Xrc#rK|j|j|jxsgD]}|ywrC)rrr*rMs rrrz Case.__iter__cs6 99 ))OZZ%2 EK 57rrCrtrrrrrSs9I  Jrrc(eZdZdZddZdZdZdZy)Cast)to_typerrrjNc.||_||_||_yrC)rrr)r*rrrs rrlz Cast.__init__os   rcg}|j|jd|jf|j|jd|jft|S)Nrr)rrnrrPros rr2z Cast.childrentsO << # OOY 5 6 99 OOVTYY/ 0Xrc#vK|j|j|j|jyywrC)rrr1s rrrz Cast.__iter__|s2 << #,,  99 ))O !rsrrCrtrrrrrls;I  Jrrc(eZdZdZddZdZdZdZy)Compound) block_itemsrrjNc ||_||_yrC)rr)r*rrs rrlzCompound.__init__& rcg}t|jxsgD]\}}|jd|d|ft|S)Nz block_items[r)rrrnrPrs rr2zCompound.childrenN!$"2"2"8b9 :HAu OO|A3a0%8 9 :Xrc#>K|jxsgD]}|ywrC)rrs rrrzCompound.__iter__%%%+ EK rrCrtrrrrr7I Jrrc(eZdZdZddZdZdZdZy)CompoundLiteral)rginitrrjNc.||_||_||_yrC)rgrr)r*rgrrs rrlzCompoundLiteral.__init__   rcg}|j|jd|jf|j|jd|jft|S)Nrgr)rgrnrrPros rr2zCompoundLiteral.childrenO 99 OOVTYY/ 0 99 OOVTYY/ 0Xrc#vK|j|j|j|jyywrC)rgrr1s rrrzCompoundLiteral.__iter__1 99 ))O 99 ))O !rsrrCrtrrrrr8I  Jrrc(eZdZdZddZdZdZdZy)Constant)rgrArrjNc.||_||_||_yrC)rgrAr)r*rgrArs rrlzConstant.__init__rrcg}t|SrCrPros rr2zConstant.childrenXrc# KywrCrr1s rrrzConstant.__iter__rr)rgrArCrtrrrrrs9I Jrrc(eZdZdZddZdZdZdZy)ContinuerNc||_yrCrrs rrlzContinue.__init__rrcyrrr1s rr2zContinue.childrenrrc# KywrCrr1s rrrzContinue.__iter__rrrrCrtrrrrrrrrc*eZdZdZ ddZdZdZdZy)Decl) r.qualsalignstoragefuncspecrgrbitsizerrjNc ||_||_||_||_||_||_||_||_| |_yrC) r.rrrrrgrrr) r*r.rrrrrgrrrs rrlz Decl.__init__sC          rcg}|j|jd|jf|j|jd|jf|j|jd|jft |S)Nrgrr)rgrnrrrPros rr2z Decl.childrensn 99 OOVTYY/ 0 99 OOVTYY/ 0 << # OOY 5 6Xrc#K|j|j|j|j|j|jyywrC)rgrrr1s rrrz Decl.__iter__sE 99 ))O 99 ))O << #,,  $AA)r.rrrrrCrtrrrrrs& IQU Jrrc(eZdZdZddZdZdZdZy)DeclList)declsrrjNc ||_||_yrC)rr)r*rrs rrlzDeclList.__init__  rcg}t|jxsgD]\}}|jd|d|ft|SNzdecls[rrrrnrPrs rr2zDeclList.childrenK!$**"23 4HAu OOvaS]E2 3 4Xrc#>K|jxsgD]}|ywrCrrs rrrzDeclList.__iter__#ZZ%2 EK rrrCrtrrrrr1I Jrrc(eZdZdZddZdZdZdZy)Default)rrrjNc ||_||_yrC)rr)r*rrs rrlzDefault.__init__%rrcg}t|jxsgD]\}}|jd|d|ft|S)Nrr)rrrnrPrs rr2zDefault.children)rrc#>K|jxsgD]}|ywrC)rrs rrrzDefault.__iter__/rrrrCrtrrrrr"rrrc(eZdZdZddZdZdZdZy)DoWhilecondstmtrrjNc.||_||_||_yrCrrrr*rrrs rrlzDoWhile.__init__9rrcg}|j|jd|jf|j|jd|jft|SNrrrrnrrPros rr2zDoWhile.children>rrc#vK|j|j|j|jyywrCrrr1s rrrzDoWhile.__iter__FrrsrrCrtrrrrr6rrrc(eZdZdZddZdZdZdZy) EllipsisParamrNc||_yrCrrs rrlzEllipsisParam.__init__Rrrcyrrr1s rr2zEllipsisParam.childrenUrrc# KywrCrr1s rrrzEllipsisParam.__iter__XrrrrCrtrrrrrOrrrc(eZdZdZddZdZdZdZy)EmptyStatementrNc||_yrCrrs rrlzEmptyStatement.__init__brrcyrrr1s rr2zEmptyStatement.childrenerrc# KywrCrr1s rrrzEmptyStatement.__iter__hrrrrCrtrrrrr_rrrc(eZdZdZddZdZdZdZy)Enum)r.valuesrrjNc.||_||_||_yrC)r.rr)r*r.rrs rrlz Enum.__init__rs   rcng}|j|jd|jft|S)Nr)rrnrPros rr2z Enum.childrenws0 ;; " OOXt{{3 4Xrc#BK|j|jyywrC)rr1s rrrz Enum.__iter__}s ;; "++  #rr.rCrtrrrr r os:I  Jrr c(eZdZdZddZdZdZdZy) Enumerator)r.rArrjNc.||_||_||_yrC)r.rAr)r*r.rArs rrlzEnumerator.__init__rrcng}|j|jd|jft|S)NrA)rArnrPros rr2zEnumerator.childrens0 :: ! OOWdjj1 2Xrc#BK|j|jyywrC)rAr1s rrrzEnumerator.__iter__s :: !**  "rrrCrtrrrrrs9I  Jrrc(eZdZdZddZdZdZdZy)EnumeratorList) enumeratorsrrjNc ||_||_yrC)rr)r*rrs rrlzEnumeratorList.__init__rrcg}t|jxsgD]\}}|jd|d|ft|S)Nz enumerators[r)rrrnrPrs rr2zEnumeratorList.childrenrrc#>K|jxsgD]}|ywrC)rrs rrrzEnumeratorList.__iter__rrrrCrtrrrrrrrrc(eZdZdZddZdZdZdZy)ExprListexprsrrjNc ||_||_yrCr!rr*r!rs rrlzExprList.__init__rrcg}t|jxsgD]\}}|jd|d|ft|SNzexprs[rrr!rnrPrs rr2zExprList.childrenrrc#>K|jxsgD]}|ywrCr!rs rrrzExprList.__iter__rrrrCrtrrrrrrrrc(eZdZdZddZdZdZdZy)FileAST)extrrjNc ||_||_yrC)r,r)r*r,rs rrlzFileAST.__init__s rcg}t|jxsgD]\}}|jd|d|ft|S)Nzext[r)rr,rnrPrs rr2zFileAST.childrensJ!$((.b1 2HAu OOtA3a[%0 1 2Xrc#>K|jxsgD]}|ywrC)r,rs rrrzFileAST.__iter__s"XX^ EK rrrCrtrrrr+r+s/I Jrr+c(eZdZdZddZdZdZdZy)For)rrnextrrrjNcJ||_||_||_||_||_yrC)rrr2rr)r*rrr2rrs rrlz For.__init__s%     rcdg}|j|jd|jf|j|jd|jf|j|jd|jf|j|jd|jft |S)Nrrr2r)rrnrr2rrPros rr2z For.childrens 99 OOVTYY/ 0 99 OOVTYY/ 0 99 OOVTYY/ 0 99 OOVTYY/ 0Xrc#K|j|j|j|j|j|j|j|jyywrC)rrr2rr1s rrrz For.__iter__sW 99 ))O 99 ))O 99 ))O 99 ))O !sA+A-rrCrtrrrr1r1sHI Jrr1c(eZdZdZddZdZdZdZy)FuncCall)r.argsrrjNc.||_||_||_yrC)r.r8r)r*r.r8rs rrlzFuncCall.__init__rrcg}|j|jd|jf|j|jd|jft|S)Nr.r8)r.rnr8rPros rr2zFuncCall.childrenrrc#vK|j|j|j|jyywrC)r.r8r1s rrrzFuncCall.__iter__rrsrrCrtrrrr7r7rrr7c(eZdZdZddZdZdZdZy)FuncDecl)r8rgrrjNc.||_||_||_yrC)r8rgr)r*r8rgrs rrlzFuncDecl.__init__rrcg}|j|jd|jf|j|jd|jft|S)Nr8rg)r8rnrgrPros rr2zFuncDecl.childrenrrc#vK|j|j|j|jyywrC)r8rgr1s rrrzFuncDecl.__iter__!rrsrrCrtrrrr=r=rrr=c(eZdZdZddZdZdZdZy)FuncDef)decl param_declsbodyrrjNc<||_||_||_||_yrC)rCrDrEr)r*rCrDrErs rrlzFuncDef.__init__-s &  rc0g}|j|jd|jf|j|jd|jft|jxsgD]\}}|jd|d|ft |S)NrCrEz param_decls[r)rCrnrErrDrPrs rr2zFuncDef.children3s 99 OOVTYY/ 0 99 OOVTYY/ 0!$"2"2"8b9 :HAu OO|A3a0%8 9 :Xrc#K|j|j|j|j|jxsgD]}|ywrC)rCrErDrs rrrzFuncDef.__iter__=sK 99 ))O 99 ))O%%+ EK sAArrCrtrrrrBrB*sGI JrrBc(eZdZdZddZdZdZdZy)Gotor.rrjNc ||_||_yrCr.rr*r.rs rrlz Goto.__init__K  rcg}t|SrCrros rr2z Goto.childrenOrrc# KywrCrr1s rrrz Goto.__iter__SrrrrCrtrrrrJrJH0IJrrJc(eZdZdZddZdZdZdZy)IDrKNc ||_||_yrCrMrNs rrlz ID.__init__]rOrcg}t|SrCrros rr2z ID.childrenarrc# KywrCrr1s rrrz ID.__iter__errrrCrtrrrrTrTZrRrrTc(eZdZdZddZdZdZdZy)IdentifierType)namesrrjNc ||_||_yrC)rZr)r*rZrs rrlzIdentifierType.__init__orrcg}t|SrCrros rr2zIdentifierType.childrensrrc# KywrCrr1s rrrzIdentifierType.__iter__wrr)rZrCrtrrrrYrYls1IJrrYc(eZdZdZddZdZdZdZy)IfriftrueiffalserrjNc<||_||_||_||_yrCrrarbrr*rrarbrs rrlz If.__init__    rcg}|j|jd|jf|j|jd|jf|j|jd|jft |SNrrarbrrnrarbrPros rr2z If.childrenn 99 OOVTYY/ 0 ;; " OOXt{{3 4 << # OOY 5 6Xrc#K|j|j|j|j|j|jyywrCrrarbr1s rrrz If.__iter__F 99 ))O ;; "++  << #,,  $rrrCrtrrrr_r_~EI Jrr_c(eZdZdZddZdZdZdZy)InitListr Nc ||_||_yrCr#r$s rrlzInitList.__init__rrcg}t|jxsgD]\}}|jd|d|ft|Sr&r'rs rr2zInitList.childrenrrc#>K|jxsgD]}|ywrCr)rs rrrzInitList.__iter__rrrrCrtrrrrprprrrpc(eZdZdZddZdZdZdZy)Label)r.rrrjNc.||_||_||_yrC)r.rr)r*r.rrs rrlzLabel.__init__rrcng}|j|jd|jft|S)Nr)rrnrPros rr2zLabel.children0 99 OOVTYY/ 0Xrc#BK|j|jyywrC)rr1s rrrzLabel.__iter__ 99 ))O !rrrCrtrrrrurus8I  Jrruc(eZdZdZddZdZdZdZy)NamedInitializer)r.rrrjNc.||_||_||_yrC)r.rr)r*r.rrs rrlzNamedInitializer.__init__rrcg}|j|jd|jft|jxsgD]\}}|jd|d|ft |S)Nrzname[r)rrnrr.rPrs rr2zNamedInitializer.childrensi 99 OOVTYY/ 0!$))/r2 3HAu OOuQCq\51 2 3Xrc#rK|j|j|jxsgD]}|ywrC)rr.rs rrrzNamedInitializer.__iter__s5 99 ))OYY_" EK rrrCrtrrrr|r|s8I  Jrr|c(eZdZdZddZdZdZdZy) ParamList)paramsrrjNc ||_||_yrC)rr)r*rrs rrlzParamList.__init__  rcg}t|jxsgD]\}}|jd|d|ft|S)Nzparams[r)rrrnrPrs rr2zParamList.childrensK!$++"34 5HAu OOwqc^U3 4 5Xrc#>K|jxsgD]}|ywrC)rrs rrrzParamList.__iter__s#[[&B EK rrrCrtrrrrrs2I Jrrc(eZdZdZddZdZdZdZy)PtrDecl)rrgrrjNc.||_||_||_yrC)rrgr)r*rrgrs rrlzPtrDecl.__init__s   rcng}|j|jd|jft|SNrgrgrnrPros rr2zPtrDecl.childrenrxrc#BK|j|jyywrCrgr1s rrrzPtrDecl.__iter__rzr)rrCrtrrrrrs9I  Jrrc(eZdZdZddZdZdZdZy)Return)rrrjNc ||_||_yrC)rr)r*rrs rrlzReturn.__init__ rOrcng}|j|jd|jft|SNrrrnrPros rr2zReturn.childrenrxrc#BK|j|jyywrCrr1s rrrzReturn.__iter__rzrrrCrtrrrrrs0I Jrrc(eZdZdZddZdZdZdZy) StaticAssert)rmessagerrjNc.||_||_||_yrC)rrr)r*rrrs rrlzStaticAssert.__init__s   rcg}|j|jd|jf|j|jd|jft|S)Nrr)rrnrrPros rr2zStaticAssert.children#sO 99 OOVTYY/ 0 << # OOY 5 6Xrc#vK|j|j|j|jyywrC)rrr1s rrrzStaticAssert.__iter__+s2 99 ))O << #,,  $rsrrCrtrrrrrs;I  Jrrc(eZdZdZddZdZdZdZy)Structr.rrrjNc.||_||_||_yrCr.rrr*r.rrs rrlzStruct.__init__7rrcg}t|jxsgD]\}}|jd|d|ft|Srrrs rr2zStruct.children<rrc#>K|jxsgD]}|ywrCrrs rrrzStruct.__iter__BrrrrCrtrrrrr49I  Jrrc(eZdZdZddZdZdZdZy) StructRef)r.rgfieldrrjNc<||_||_||_||_yrC)r.rgrr)r*r.rgrrs rrlzStructRef.__init__Ls    rcg}|j|jd|jf|j|jd|jft|S)Nr.r)r.rnrrPros rr2zStructRef.childrenRrrc#vK|j|j|j|jyywrC)r.rr1s rrrzStructRef.__iter__ZrrsrrCrtrrrrrIsAI  Jrrc(eZdZdZddZdZdZdZy)SwitchrNc.||_||_||_yrCrrs rrlzSwitch.__init__frrcg}|j|jd|jf|j|jd|jft|Srrros rr2zSwitch.childrenkrrc#vK|j|j|j|jyywrCrr1s rrrzSwitch.__iter__srrsrrCrtrrrrrcrrrc(eZdZdZddZdZdZdZy) TernaryOpr`Nc<||_||_||_||_yrCrdres rrlzTernaryOp.__init__rfrcg}|j|jd|jf|j|jd|jf|j|jd|jft |Srhriros rr2zTernaryOp.childrenrjrc#K|j|j|j|j|j|jyywrCrlr1s rrrzTernaryOp.__iter__rmrrrCrtrrrrr|rnrrc(eZdZdZddZdZdZdZy)TypeDecl)declnamerrrgrrjNcJ||_||_||_||_||_yrC)rrrrgr)r*rrrrgrs rrlzTypeDecl.__init__s%      rcng}|j|jd|jft|Srrros rr2zTypeDecl.childrenrxrc#BK|j|jyywrCrr1s rrrzTypeDecl.__iter__rzr)rrrrCrtrrrrrsNI Jrrc(eZdZdZddZdZdZdZy)Typedef)r.rrrgrrjNcJ||_||_||_||_||_yrC)r.rrrgr)r*r.rrrgrs rrlzTypedef.__init__s%     rcng}|j|jd|jft|Srrros rr2zTypedef.childrenrxrc#BK|j|jyywrCrr1s rrrzTypedef.__iter__rzr)r.rrrCrtrrrrrsLI Jrrc(eZdZdZddZdZdZdZy)Typename)r.rrrgrrjNcJ||_||_||_||_||_yrC)r.rrrgr)r*r.rrrgrs rrlzTypename.__init__s%     rcng}|j|jd|jft|Srrros rr2zTypename.childrenrxrc#BK|j|jyywrCrr1s rrrzTypename.__iter__rzr)r.rrrCrtrrrrrsJI Jrrc(eZdZdZddZdZdZdZy)UnaryOp)r}rrrjNc.||_||_||_yrC)r}rr)r*r}rrs rrlzUnaryOp.__init__s  rcng}|j|jd|jft|Srrros rr2zUnaryOp.childrenrxrc#BK|j|jyywrCrr1s rrrzUnaryOp.__iter__rzrrrCrtrrrrrs6I  Jrrc(eZdZdZddZdZdZdZy)UnionrNc.||_||_||_yrCrrs rrlzUnion.__init__rrcg}t|jxsgD]\}}|jd|d|ft|Srrrs rr2zUnion.childrenrrc#>K|jxsgD]}|ywrCrrs rrrzUnion.__iter__rrrrCrtrrrrrrrrc(eZdZdZddZdZdZdZy)WhilerNc.||_||_||_yrCrrs rrlzWhile.__init__rrcg}|j|jd|jf|j|jd|jft|Srrros rr2zWhile.childrenrrc#vK|j|j|j|jyywrCrr1s rrrzWhile.__iter__%rrsrrCrtrrrrrrrrc(eZdZdZddZdZdZdZy)Pragma)stringrrjNc ||_||_yrC)rr)r*rrs rrlzPragma.__init__1rrcg}t|SrCrros rr2zPragma.children5rrc# KywrCrr1s rrrzPragma.__iter__9rr)rrCrtrrrrr.s2IJrr):rStypingrrrrr rrXrfrvr|rrrrrrrrrrrrrrrr rrrr+r1r7r=rBrJrTrYr_rprur|rrrrrrrrrrrrrrrrrrrs{$ ..kk\77t  4t24d(t4 D  4242t(d2t, t  343lt(d(d2 D  T  4**T(t(d( $ Ft2t2d<4$$T$<t(D*t2(d*T(42T*4T2<t6d6t6d*D*D2Tr