Warning: session_start(): Session cannot be started after headers have already been sent in /home/tvrreohg/public_html/manga.php on line 13
§ Çß]jlEãó.—ddlmZGd„de¦«ZdS)é)Úc_astcó—eZdZdZd_d„Zd„Zd„Zd„Zd„Zd„Z d „Z d „Z d „Z d „Z d „Zidd“dd“dd“dd“dd“dd“dd“dd“dd“dd“dd“d d!“d"d!“d#d$“d%d$“d&d'“d(d'“d)d'i¥Zd*„Zd+„Zd,„Zd-„Zd_d.„Zd/„Zd0„Zd1„Zd2„Zd3„Zd4„Zd5„Zd6„Zd7„Zd8„Zd9„Zd:„Z d;„Z!d<„Z"d=„Z#d>„Z$d?„Z%d@„Z&dA„Z'dB„Z(dC„Z)dD„Z*dE„Z+dF„Z,dG„Z-dH„Z.dI„Z/dJ„Z0dK„Z1dL„Z2dM„Z3dN„Z4dO„Z5dP„Z6dQ„Z7dR„Z8dS„Z9dT„Z:dU„Z;dV„ZgdYfdZ„Z?d[„Z@d\„ZAd]„ZBd^S)`Ú CGeneratorz¬ Uses the same visitor pattern as c_ast.NodeVisitor, but modified to return a value from each visit method, using string accumulation in generic_visit. Fcó"—d|_||_dS)z“ Constructs C-code generator reduce_parentheses: if True, eliminates needless parentheses on binary operators éN)Ú indent_levelÚreduce_parentheses)Úselfr s úu/builddir/build/BUILD/imunify360-venv-2.6.3/opt/imunify360/venv/lib/python3.11/site-packages/pycparser/c_generator.pyÚ__init__zCGenerator.__init__s€ðˆÔØ"4ˆÔÐÐócó—d|jzS©Nú )r)r s r Ú _make_indentzCGenerator._make_indents€Ø�TÔ&Ñ&Ð&r có^—d|jjz}t|||j¦«|¦«S)NÚvisit_)Ú __class__Ú__name__ÚgetattrÚ generic_visit)r ÚnodeÚmethods r ÚvisitzCGenerator.visits0€Ø˜DœNÔ3Ñ3ˆØ8�w�t˜V TÔ%7Ñ8Ô8¸Ñ>Ô>Ð>r cór‡—|€dSd ˆfd„| ¦«D¦«¦«S)NÚc3óH•K—|]\}}‰ |¦«V—ŒdS©N©r)Ú.0Úc_nameÚcr s €r ú z+CGenerator.generic_visit..'s1øèè€ÐJÐJ©Y¨V°Q˜4Ÿ:š: a™=œ=ÐJÐJÐJÐJÐJÐJr )ÚjoinÚchildren)r rs` r rzCGenerator.generic_visit#s<ø€Ø ˆ<Ø�2à—7’7ÐJÐJÐJÐJ¸$¿-º-¹/¼/ÐJÑJÔJÑJÔJÐ Jr có—|jSr)Úvalue©r Úns r Úvisit_ConstantzCGenerator.visit_Constant)s €ØŒwˆr có—|jSr©Únamer(s r Úvisit_IDzCGenerator.visit_ID,s €ØŒvˆ r có2—d}|jr |d|jzz }|S)Nz#pragmar)Ústring)r r)Úrets r Ú visit_PragmazCGenerator.visit_Pragma/s&€ØˆØ Œ8ð "Ø �3˜œ‘>Ñ !ˆC؈ r có|—| |j¦«}|dz| |j¦«zdzS)Nú[ú])Ú_parenthesize_unless_simpler-rÚ subscript)r r)Úarrrefs r Úvisit_ArrayRefzCGenerator.visit_ArrayRef5s9€Ø×1Ò1°!´&Ñ9Ô9ˆØ˜‰|˜dŸjšj¨¬Ñ5Ô5Ñ5¸Ñ;Ð;r có€—| |j¦«}||jz| |j¦«zSr)r6r-ÚtyperÚfield)r r)Úsrefs r Úvisit_StructRefzCGenerator.visit_StructRef9s6€Ø×/Ò/°´Ñ7Ô7ˆØ�a”f‰}˜tŸzšz¨!¬'Ñ2Ô2Ñ2Ð2r có|—| |j¦«}|dz| |j¦«zdzS)Nú(ú))r6r-rÚargs)r r)Úfrefs r Úvisit_FuncCallzCGenerator.visit_FuncCall=s9€Ø×/Ò/°´Ñ7Ô7ˆØ�c‰z˜DŸJšJ q¤vÑ.Ô.Ñ.°Ñ4Ð4r cóÜ—|jdkrd| |j¦«zS| |j¦«}|jdkrd|zS|jdkrd|zS|j›|›�S)NÚsizeofz sizeof(%s)zp++z%s++zp--z%s--)ÚoprÚexprr6)r r)Úoperands r Ú visit_UnaryOpzCGenerator.visit_UnaryOpAs|€Ø Œ4�8Ò Ð ð  $§*¢*¨Q¬VÑ"4Ô"4Ñ4Ð 4à×6Ò6°q´vÑ>Ô>ˆGØŒt�uŠ}ˆ}Ø Ñ'Ð'Ø”˜’�Ø Ñ'Ð'à!"¤  w wÐ/Ð/r z||rz&&rú|éú^éú&éz==éz!=ú>éz>=ú>éz<<ú+éú-Ú*é ú/ú%c󠇇—‰ ‰jˆˆfd„¦«}‰ ‰jˆˆfd„¦«}|›d‰j›d|›�S)Nc󾕗‰ |¦«pF‰jo?t|tj¦«o%‰j|j‰j‰jk Sr©Ú_is_simple_noder Ú isinstancerÚBinaryOpÚprecedence_maprG©Údr)r s €€r úz+CGenerator.visit_BinaryOp..ks]ø€˜4×/Ò/°Ñ2Ô2ðMØÔ-ðMµ*¸QÅÄÑ2OÔ2OðMØÔ)¨!¬$Ô/°4Ô3FÀqÄtÔ3LÒLðN€r c󾕗‰ |¦«pF‰jo?t|tj¦«o%‰j|j‰j‰jk Srr_rds €€r rfz+CGenerator.visit_BinaryOp..ws]ø€˜4×/Ò/°Ñ2Ô2ðLØÔ-ðLµ*¸QÅÄÑ2OÔ2OðLØÔ)¨!¬$Ô/°$Ô2EÀaÄdÔ2KÒKðM€r r)Ú_parenthesize_ifÚleftÚrightrG)r r)Úlval_strÚrval_strs`` r Úvisit_BinaryOpzCGenerator.visit_BinaryOp_s—øø€ð×(Ò(Ø ŒFð Nð Nð Nð Nð NñOôOˆð×(Ò(Ø ŒGð Mð Mð Mð Mð MñNôNˆð &˜X˜X q¤t t t¨X¨XÐ6Ð6r cóˆ—| |jd„¦«}| |j¦«›d|j›d|›�S)Ncó6—t|tj¦«Sr)rarÚ Assignment)r)s r rfz-CGenerator.visit_Assignment..s€¥j°µEÔ4DÑ&EÔ&E€r r)rhÚrvaluerÚlvaluerG)r r)rls r Úvisit_AssignmentzCGenerator.visit_Assignment|sO€Ø×(Ò(ØœHØEÐEñGôGˆð"ŸZšZ¨¬Ñ1Ô1Ð1Ð1°1´4°4°4¸¸ÐBÐBr có6—d |j¦«Sr)r$Únamesr(s r Úvisit_IdentifierTypezCGenerator.visit_IdentifierType‚s€Ø�xŠx˜œÑ Ô Ð r có—t|tj¦«rd| |¦«zdzSt|tj¦«rd| |¦«zdzS| |¦«S)NÚ{Ú}r@rA)rarÚInitListrÚExprListr(s r Ú _visit_exprzCGenerator._visit_expr…sn€Ý �a�œÑ (Ô (ð !ؘŸš A™œÑ&¨Ñ,Ð ,Ý ˜�5œ>Ñ *Ô *ð !ؘŸš A™œÑ&¨Ñ,Ð ,à—:’:˜a‘=”=Ð r cóÞ—|r|jn| |¦«}|jr |d| |j¦«zz }|jr |d| |j¦«zz }|S)Nz : ú = )r-Ú_generate_declÚbitsizerÚinitr|)r r)Úno_typeÚss r Ú visit_DeclzCGenerator.visit_Decl�st€ðÐ 9ˆAŒFˆF 4×#6Ò#6°qÑ#9Ô#9ˆØ Œ9Ð8�a˜5 4§:¢:¨a¬iÑ#8Ô#8Ñ8Ñ8�aØ Œ6ð 2Ø �˜×)Ò)¨!¬&Ñ1Ô1Ñ1Ñ 1ˆA؈r cóà‡—‰ |jd¦«}t|j¦«dkr4|dd ˆfd„|jdd…D¦«¦«zz }|S)Nrrú, c3óF•K—|]}‰ |d¬¦«V—ŒdS)T)r‚N)r„©r Údeclr s €r r#z,CGenerator.visit_DeclList..šsGøèè€ð"=ð"=Ø(,ð#'§/¢/°$À /Ñ"EÔ"Eð"=ð"=ð"=ð"=ð"=ð"=r )rÚdeclsÚlenr$©r r)rƒs` r Úvisit_DeclListzCGenerator.visit_DeclList—sƒø€Ø �JŠJ�q”w˜q”zÑ "Ô "ˆÝ ˆqŒw‰<Œ<˜!Ò Ð Ø �˜Ÿ š ð"=ð"=ð"=ð"=Ø01´¸¸¸´ ð"=ñ"=ô"=ñ=ô=ñ=ñ =ˆAàˆr có’—d}|jr |d |j¦«dzz }|| |j¦«z }|S)Nrr)Ústorager$Ú_generate_typer;rŒs r Ú visit_TypedefzCGenerator.visit_TypedefžsJ€Ø ˆØ Œ9Ð4�a˜3Ÿ8š8 A¤IÑ.Ô.°Ñ4Ñ4�aØ ˆT× Ò  ¤Ñ (Ô (Ñ(ˆØˆr có†—d| |jd¬¦«zdz}|dz| |j¦«zS)Nr@F©Ú emit_declnamerAr)r�Úto_typer6rHrŒs r Ú visit_CastzCGenerator.visit_Cast¤sE€Ø �$×%Ò% a¤i¸uÐ%ÑEÔEÑ EÈÑ KˆØ�3‰w˜×9Ò9¸!¼&ÑAÔAÑAÐAr có”—g}|jD]*}| | |¦«¦«Œ+d |¦«S©Nr†©ÚexprsÚappendr|r$©r r)Úvisited_subexprsrHs r Úvisit_ExprListzCGenerator.visit_ExprList¨óQ€ØÐØ”Gð <ð <ˆDØ × #Ò # D×$4Ò$4°TÑ$:Ô$:Ñ ;Ô ;Ð ;Ð ;Ø�yŠyÐ)Ñ*Ô*Ð*r có”—g}|jD]*}| | |¦«¦«Œ+d |¦«Sr˜r™rœs r Úvisit_InitListzCGenerator.visit_InitList®rŸr có0—| |d¬¦«S)NÚenumr,©Ú_generate_struct_union_enumr(s r Ú visit_EnumzCGenerator.visit_Enum´s€Ø×/Ò/°¸Ð/Ñ?Ô?Ð?r có\—d | |j¦«¦«S)Nz _Alignas({}))ÚformatrÚ alignmentr(s r Ú visit_AlignaszCGenerator.visit_Alignas·s$€Ø×$Ò$ T§Z¢Z°´ Ñ%<Ô%<Ñ=Ô=Ð=r cóú—|js.d | ¦«|j¬¦«Sd | ¦«|j| |j¦«¬¦«S)Nz{indent}{name}, )Úindentr-z{indent}{name} = {value}, )r¬r-r')r'r¨rr-rr(s r Úvisit_EnumeratorzCGenerator.visit_Enumeratorºs�€ØŒwð Ø&×-Ò-Ø×(Ò(Ñ*Ô*Ø”Vð.ñôð ð 1×7Ò7Ø×(Ò(Ñ*Ô*Ø”VØ—j’j ¤Ñ)Ô)ð8ñôð r có ‡—‰ |j¦«}d‰_‰ |j¦«}|jr7d ˆfd„|jD¦«¦«}|dz|zdz|zdzS|dz|zdzS)Nrú; c3óB•K—|]}‰ |¦«V—ŒdSrr)r Úpr s €r r#z+CGenerator.visit_FuncDef..Ìs-øèè€Ð!GÐ!G°A $§*¢*¨Q¡-¤-Ð!GÐ!GÐ!GÐ!GÐ!GÐ!Gr ú )rr‰rÚbodyÚ param_declsr$)r r)r‰r³Úknrdeclss` r Ú visit_FuncDefzCGenerator.visit_FuncDefÇs•ø€Ø�zŠz˜!œ&Ñ!Ô!ˆØˆÔØ�zŠz˜!œ&Ñ!Ô!ˆØ Œ=ð -Ø—z’zÐ!GÐ!GÐ!GÐ!G¸¼Ð!GÑ!GÔ!GÑGÔGˆHؘ$‘; Ñ)¨EÑ1°DÑ8¸4Ñ?Ð ?à˜$‘; Ñ%¨Ñ,Ð ,r có&—d}|jD]†}t|tj¦«r|| |¦«z }Œ5t|tj¦«r|| |¦«dzz }Œk|| |¦«dzz }Œ‡|S)Nrr²r¯)ÚextrarÚFuncDefrÚPragma)r r)rƒr¸s r Ú visit_FileASTzCGenerator.visit_FileASTÑs‘€Ø ˆØ”5ð -ð -ˆCݘ#�uœ}Ñ-Ô-ð -Ø�T—Z’Z ‘_”_Ñ$��ݘC¥¤Ñ.Ô.ð -Ø�T—Z’Z ‘_”_ tÑ+Ñ+��à�T—Z’Z ‘_”_ uÑ,Ñ,��؈r có ‡—‰ ¦«dz}‰xjdz c_|jr)|d ˆfd„|jD¦«¦«z }‰xjdzc_|‰ ¦«dzz }|S)Nú{ rLrc3óB•K—|]}‰ |¦«V—ŒdSr©Ú_generate_stmt)r Ústmtr s €r r#z,CGenerator.visit_Compound..às1øèè€ÐMÐM°t˜×,Ò,¨TÑ2Ô2ÐMÐMÐMÐMÐMÐMr z} )rrÚ block_itemsr$rŒs` r Úvisit_CompoundzCGenerator.visit_CompoundÜs™ø€Ø × Ò Ñ Ô  %Ñ 'ˆØ ÐÔ˜QÑÐÔØ Œ=ð NØ �—’ÐMÐMÐMÐM¸q¼}ÐMÑMÔMÑMÔMÑ MˆAØ ÐÔ˜QÑÐÔØ ˆT× Ò Ñ Ô  5Ñ (Ñ(ˆØˆr có~—d| |j¦«zdz| |j¦«zdzS)Nr@z){ry)rr;r�r(s r Úvisit_CompoundLiteralz CGenerator.visit_CompoundLiteralås8€Ø�T—Z’Z ¤Ñ'Ô'Ñ'¨$Ñ.°·²¸A¼FÑ1CÔ1CÑCÀcÑIÐIr có—dS)Nú;©r(s r Úvisit_EmptyStatementzCGenerator.visit_EmptyStatementés€Øˆsr cóP‡—d ˆfd„|jD¦«¦«S)Nr†c3óB•K—|]}‰ |¦«V—ŒdSrr)r Úparamr s €r r#z-CGenerator.visit_ParamList..ís/øèè€ÐAÐA¨u˜Ÿš EÑ*Ô*ÐAÐAÐAÐAÐAÐAr )r$Úparamsr(s` r Úvisit_ParamListzCGenerator.visit_ParamListìs,ø€Ø�yŠyÐAÐAÐAÐA¸¼ÐAÑAÔAÑAÔAÐAr có^—d}|jr |d| |j¦«zz }|dzS)NÚreturnrrÇ)rHrrŒs r Ú visit_ReturnzCGenerator.visit_Returnïs4€Ø ˆØ Œ6Ð0�1˜˜dŸjšj¨¬Ñ0Ô0Ñ0Ñ0�1Ø�3‰wˆr có—dS)Nzbreak;rÈr(s r Ú visit_BreakzCGenerator.visit_Breakôs€Øˆxr có—dS)Nz continue;rÈr(s r Úvisit_ContinuezCGenerator.visit_Continue÷s€Øˆ{r cóÒ—d| |j¦«zdz}|d| |j¦«zdzz }|d| |j¦«zdzz }|S)Nr@z) ? z) : rA)r|ÚcondÚiftrueÚiffalserŒs r Úvisit_TernaryOpzCGenerator.visit_TernaryOpúsn€Ø �4×#Ò# A¤FÑ+Ô+Ñ +¨fÑ 4ˆØ ˆS�4×#Ò# A¤HÑ-Ô-Ñ -°Ñ 6Ñ6ˆØ ˆS�4×#Ò# A¤IÑ.Ô.Ñ .°Ñ 4Ñ4ˆØˆr có—d}|jr|| |j¦«z }|dz }|| |jd¬¦«z }|jr9|| ¦«dzz }|| |jd¬¦«z }|S)Nzif (ú) T©Ú add_indentzelse )r×rrÀrØrÙrrŒs r Úvisit_IfzCGenerator.visit_Ifs˜€Ø ˆØ Œ6Ð*�1˜Ÿ š  1¤6Ñ*Ô*Ñ*�1Ø ˆU‰ ˆØ ˆT× Ò  ¤°dÐ Ñ ;Ô ;Ñ;ˆØ Œ9ð AØ �×"Ò"Ñ$Ô$ xÑ/Ñ /ˆAØ �×$Ò$ Q¤Y¸4Ð$Ñ@Ô@Ñ @ˆA؈r cóJ—d}|jr|| |j¦«z }|dz }|jr |d| |j¦«zz }|dz }|jr |d| |j¦«zz }|dz }|| |jd¬¦«z }|S)Nzfor (rÇrrÜTrÝ)r�rr×ÚnextrÀrÁrŒs r Ú visit_ForzCGenerator.visit_For s­€Ø ˆØ Œ6Ð*�1˜Ÿ š  1¤6Ñ*Ô*Ñ*�1Ø ˆS‰ˆØ Œ6Ð0�1˜˜dŸjšj¨¬Ñ0Ô0Ñ0Ñ0�1Ø ˆS‰ˆØ Œ6Ð0�1˜˜dŸjšj¨¬Ñ0Ô0Ñ0Ñ0�1Ø ˆU‰ ˆØ ˆT× Ò  ¤°DÐ Ñ 9Ô 9Ñ9ˆØˆr cóš—d}|jr|| |j¦«z }|dz }|| |jd¬¦«z }|S)Núwhile (rÜTrÝ)r×rrÀrÁrŒs r Ú visit_WhilezCGenerator.visit_WhilesS€Ø ˆØ Œ6Ð*�1˜Ÿ š  1¤6Ñ*Ô*Ñ*�1Ø ˆU‰ ˆØ ˆT× Ò  ¤°DÐ Ñ 9Ô 9Ñ9ˆØˆr cóΗd}|| |jd¬¦«z }|| ¦«dzz }|jr|| |j¦«z }|dz }|S)Nzdo TrÝräz);)rÀrÁrr×rrŒs r Ú visit_DoWhilezCGenerator.visit_DoWhilesn€Ø ˆØ ˆT× Ò  ¤°DÐ Ñ 9Ô 9Ñ9ˆØ ˆT× Ò Ñ Ô  9Ñ ,Ñ,ˆØ Œ6Ð*�1˜Ÿ š  1¤6Ñ*Ô*Ñ*�1Ø ˆT‰ ˆØˆr có —d}|| |j¦«z }|jr"|dz }|| |j¦«z }|dz }|S)Nz_Static_assert(ú,rA)rr×ÚmessagerŒs r Úvisit_StaticAssertzCGenerator.visit_StaticAssert$sX€Ø ˆØ ˆT�ZŠZ˜œÑ Ô ÑˆØ Œ9ð 'Ø �‰HˆAØ �—’˜AœIÑ&Ô&Ñ &ˆAØ ˆS‰ˆØˆr có„—d| |j¦«zdz}|| |jd¬¦«z }|S)Nzswitch (rÜTrÝ)rr×rÀrÁrŒs r Ú visit_SwitchzCGenerator.visit_Switch-sC€Ø ˜Ÿš A¤FÑ+Ô+Ñ +¨eÑ 3ˆØ ˆT× Ò  ¤°DÐ Ñ 9Ô 9Ñ9ˆØˆr cóŽ—d| |j¦«zdz}|jD]}|| |d¬¦«z }Œ|S)Nzcase ú: TrÝ)rrHÚstmtsrÀ©r r)rƒrÁs r Ú visit_CasezCGenerator.visit_Case2sT€Ø �d—j’j ¤Ñ(Ô(Ñ (¨5Ñ 0ˆØ”Gð <ð <ˆDØ �×$Ò$ T°dÐ$Ñ;Ô;Ñ ;ˆAˆA؈r cóR—d}|jD]}|| |d¬¦«z }Œ|S)Nz default: TrÝ)rðrÀrñs r Ú visit_DefaultzCGenerator.visit_Default8s<€Ø ˆØ”Gð <ð <ˆDØ �×$Ò$ T°dÐ$Ñ;Ô;Ñ ;ˆAˆA؈r cóL—|jdz| |j¦«zS)Nrï)r-rÀrÁr(s r Ú visit_LabelzCGenerator.visit_Label>s#€ØŒv˜‰~ × 3Ò 3°A´FÑ ;Ô ;Ñ;Ð;r có—d|jzdzS)Nzgoto rÇr,r(s r Ú visit_GotozCGenerator.visit_GotoAs€Ø˜œÑ #Ñ%Ð%r có—dS)Nz...rÈr(s r Úvisit_EllipsisParamzCGenerator.visit_EllipsisParamDs€Øˆur có.—| |d¦«S)NÚstructr¤r(s r Ú visit_StructzCGenerator.visit_StructGs€Ø×/Ò/°°8Ñ<Ô<Ð�>�>�>ØœhÐ.�d�d°A´HÔ4HˆGØ Ô4ˆMØ �3‰J˜!œ&˜, BÑ 'ˆØ Ð ð �‰IˆAØ �×"Ò"Ñ$Ô$Ñ $ˆAØ Ð Ô  Ñ "Ð Ô Ø �‰JˆAØ ��˜wÑ'Ô'Ñ 'ˆAØ Ð Ô  Ñ "Ð Ô Ø �×"Ò"Ñ$Ô$ sÑ*Ñ *ˆA؈r cóF‡—d ˆfd„|D¦«¦«S)Nrc3óB•K—|]}‰ |¦«V—ŒdSrr¿rˆs €r r#z9CGenerator._generate_struct_union_body..s1øèè€ÐEÐE°T�t×*Ò*¨4Ñ0Ô0ÐEÐEÐEÐEÐEÐEr ©r$©r rs` r rz&CGenerator._generate_struct_union_body~s*ø€Ø�wŠwÐEÐEÐEÐE¸WÐEÑEÔEÑEÔEÐEr có\‡—d ˆfd„|D¦«¦«dd…dzS)Nrc3óB•K—|]}‰ |¦«V—ŒdSrr)r r'r s €r r#z1CGenerator._generate_enum_body..ƒs/øèè€Ð>Ð>¨U�t—z’z %Ñ(Ô(Ð>Ð>Ð>Ð>Ð>Ð>r éþÿÿÿr²rrs` r rzCGenerator._generate_enum_body�s8ø€à�wŠwÐ>Ð>Ð>Ð>°gÐ>Ñ>Ô>Ñ>Ô>¸sÀ¸sÔCÀdÑJÐJr có¸—t|¦«}|r|xjdz c_| ¦«}|r|xjdzc_|tjtjtjtjtjtj tj tj tj tj tjtjtjf vr|| |¦«zdzS|tjfvr| |¦«S|tjfvr|| |¦«zS|| |¦«zdzS)zÄ Generation from a statement node. This method exists as a wrapper for individual visit_* methods to handle different treatment of some statements in this context. rLr¯r²)r;rrrÚDeclrpÚCastÚUnaryOprbÚ TernaryOpÚFuncCallÚArrayRefÚ StructRefÚConstantrÚTypedefr{rÚCompoundÚIf)r r)rÞÚtypr¬s r rÀzCGenerator._generate_stmt…s€õ �1‰gŒgˆØ Ð-�tÐ(Ô(¨AÑ-Ð(Ô(Ø×"Ò"Ñ$Ô$ˆØ Ð-�tÐ(Ô(¨AÑ-Ð(Ô(à Ý” �EÔ,­e¬j½%¼-Ý”¥¤µ´ÅÄÝ”¥¤µ´½5¼=Ý”ð  ð ð ð˜DŸJšJ q™MœMÑ)¨EÑ1Ð 1Ø •U”^Ð%Ð %Ð %ð —:’:˜a‘=”=Ð Ø •U”X�KРРؘDŸJšJ q™MœMÑ)Ð )à˜DŸJšJ q™MœMÑ)¨DÑ0Ð 0r có4—d}|jrd |j¦«dz}|jr |d |j¦«dzz }|jr&|| |jd¦«dzz }|| |j¦«z }|S)z& Generation from a Decl node. rrr)Úfuncspecr$r�Úalignrr�r;rŒs r rzCGenerator._generate_decl£s“€ð ˆØ Œ:Ð5˜3Ÿ8š8 A¤JÑ/Ô/°#Ñ5�qØ Œ9Ð4�a˜3Ÿ8š8 A¤IÑ.Ô.°Ñ4Ñ4�aØ Œ7Ð5�A˜Ÿš A¤G¨A¤JÑ/Ô/°#Ñ5Ñ5�AØ ˆT× Ò  ¤Ñ (Ô (Ñ(ˆØˆr Tcó —t|¦«}|tjk�rÑd}|jr |d |j¦«dzz }|| |j¦«z }|jr |r|jnd}t|¦«D�]\\}}t|tj ¦«r~|dkr+t||dz tj ¦«rd|zdz}|dz }|j r |d |j ¦«dzz }|| |j ¦«dzz }Œžt|tj ¦«rV|dkr+t||dz tj ¦«rd|zdz}|d| |j¦«zdzz }�Œt|tj ¦«r4|jr(d d |j¦«›|rd|znd›�}�ŒWd |z}�Œ^|r|d|zz }|S|tjkr| |j¦«S|tjkr| |j|¬ ¦«S|tjkrd |j¦«dzS|tj tj tj fvr!| |j||gz|¬ ¦«S| |¦«S) zø Recursive generation from a type node. n is the type node. modifiers collects the PtrDecl, ArrayDecl and FuncDecl modifiers encountered on the way down to a TypeDecl, to allow proper generation from it. rrrrr@rAr4r5z* rYr“)r;rÚTypeDeclÚqualsr$rÚdeclnameÚ enumerateraÚ ArrayDeclÚPtrDeclÚ dim_qualsÚdimÚFuncDeclrBr!rÚTypenamer�ÚIdentifierTyperu) r r)Ú modifiersr”r,rƒÚnstrÚiÚmodifiers r r�zCGenerator._generate_type­sÛ€õ �1‰gŒgˆð •%”.Ò Ñ ØˆAØŒwÐ 4˜˜SŸXšX a¤gÑ.Ô.°Ñ4Ñ4˜Ø �—’˜AœFÑ#Ô#Ñ #ˆAà!"¤ÐE° ÐE�1”:�:À2ˆDõ )¨Ñ3Ô3ð *ñ *‘ ��8ݘh­¬Ñ8Ô8ð*ؘQš˜Ý" 9¨Q°©UÔ#3µU´]ÑCÔCðà#&¨¡:°Ñ#3˜DؘC‘K�DØÔ)ðCØ §¢¨Ô);Ñ <Ô <¸sÑ BÑB˜Ø˜DŸJšJ x¤|Ñ4Ô4°sÑ:Ñ:�D�DÝ ­%¬.Ñ9Ô9ð *ؘQš˜Ý" 9¨Q°©UÔ#3µU´]ÑCÔCðà#&¨¡:°Ñ#3˜DؘC $§*¢*¨X¬]Ñ";Ô";Ñ;¸cÑAÑA�D‘DÝ ­%¬-Ñ8Ô8ð*Ø”~ð*ð*Ø+.¯8ª8°H´NÑ+CÔ+CÐ+CØ9=Ð+E¨3°©:¨:À2Ð+Eð G˜™ð # T™z˜ùØÐ $�Q˜# ™*‘_�Q؈HØ •E”JÒ Ð Ø×&Ò& q¤vÑ.Ô.Ð .Ø •E”NÒ "Ð "Ø×&Ò& q¤v¸}Ð&ÑMÔMÐ MØ •EÔ(Ò (Ð (Ø—8’8˜AœGÑ$Ô$ sÑ*Ð *Ø •U”_¥e¤mµU´^ÐDÐ DÐ DØ×&Ò& q¤v¨y¸A¸3©Ø7Dð'ñFôFð Fð—:’:˜a‘=”=Ð r cóV—| |¦«}||¦«rd|zdzS|S)z‘ Visits 'n' and returns its string representation, parenthesized if the condition function applied to the node returns True. r@rA)r|)r r)Ú conditionrƒs r rhzCGenerator._parenthesize_ifâs:€ð × Ò ˜QÑ Ô ˆØ ˆ9�Q‰<Œ<ð Ø˜‘7˜S‘=Ð àˆHr có6‡—‰ |ˆfd„¦«S)z. Common use case for _parenthesize_if có0•—‰ |¦« Sr)r`)rer s €r rfz8CGenerator._parenthesize_unless_simple..ïsø€°d×6JÒ6JÈ1Ñ6MÔ6MÐ2M€r )rhr(s` r r6z&CGenerator._parenthesize_unless_simpleìs%ø€ð×$Ò$ QÐ(MÐ(MÐ(MÐ(MÑNÔNÐNr có�—t|tjtjtjtjtjf¦«S)z~ Returns True for nodes that are "simple" - i.e. nodes that always have higher precedence than operators. )rarr(rr&r'r%r(s r r`zCGenerator._is_simple_nodeñs5€õ˜!�eœn­e¬h½¼Ý#œo­u¬~ð?ñ@ô@ð @r N)F)CrÚ __module__Ú __qualname__Ú__doc__r rrrr*r.r2r9r>rDrJrcrmrsrvr|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ÿrrr r rrr¥rrrÀrr�rhr6r`rÈr r rr sà€€€€€ððð 5ð 5ð 5ð 5ð'ð'ð'ð?ð?ð?ðKðKðKð ððððððððð <ð<ð<ð3ð3ð3ð5ð5ð5ð 0ð 0ð 0ð ð ˆað ð ˆað ð ˆQð ð ˆQð ð ˆQð ð ˆað ð�qð ð ˆQð ð�að ð˜að ð"& qð ð ˆað ð�qð ð ˆQð ð�Qð ð ˆQð ð�Qð ð˜Qð ð €Nð7ð7ð7ð:CðCðCð !ð!ð!ð!ð!ð!ððððððððððð BðBðBð+ð+ð+ð +ð+ð+ð @ð@ð@ð>ð>ð>ð ð ð ð-ð-ð-ð ð ð ððððJðJðJððððBðBðBðððð ððððððððð ððð ð ð ððððððððððððð ððð ððð <ð<ð<ð&ð&ð&ðððð=ð=ð=ð+ð+ð+ð<ð<ð<ðððð&ð&ð&ð;ð;ð;ð;ð;ð;ð;ð;ð;ðððð0FðFðFðKðKðKð1ð1ð1ð1ð<ððð+-¸dð3!ð3!ð3!ð3!ðjðððOðOðOð @ð@ð@ð@ð@r rN)rrÚobjectrrÈr r úrIsaððÐÐÐÐÐðj@ðj@ðj@ðj@ðj@�ñj@ôj@ðj@ðj@ðj@r