+
    JV-jµP  ã                   ó:   € ^ RI HtHtHt ^RIHt  ! R R4      tR# )é    )ÚCallableÚListÚOptional)Úc_astc                   ó  a € ] tR t^t o RtR”V 3R lR lltV 3R lR ltV 3R lR ltV 3R lR	 ltV 3R
 lR lt	V 3R lR lt
V 3R lR ltV 3R lR ltV 3R lR ltV 3R lR ltV 3R lR lt/ R^ bR^bR^bR^bR^bR^bR^bR^bR ^bR!^bR"^bR#^bR$^bR%^bR&^bR'^	bR(^	bR)^	/CtV 3R* lR+ ltV 3R, lR- ltV 3R. lR/ ltV 3R0 lR1 ltR”V 3R2 lR3 lltV 3R4 lR5 ltV 3R6 lR7 ltV 3R8 lR9 ltV 3R: lR; ltV 3R< lR= ltV 3R> lR? ltV 3R@ lRA ltV 3RB lRC ltV 3RD lRE ltV 3RF lRG ltV 3RH lRI lt V 3RJ lRK lt!V 3RL lRM lt"V 3RN lRO lt#V 3RP lRQ lt$V 3RR lRS lt%V 3RT lRU lt&V 3RV lRW lt'V 3RX lRY lt(V 3RZ lR[ lt)V 3R\ lR] lt*V 3R^ lR_ lt+V 3R` lRa lt,V 3Rb lRc lt-V 3Rd lRe lt.V 3Rf lRg lt/V 3Rh lRi lt0V 3Rj lRk lt1V 3Rl lRm lt2V 3Rn lRo lt3V 3Rp lRq lt4V 3Rr lRs lt5V 3Rt lRu lt6V 3Rv lRw lt7V 3Rx lRy lt8V 3Rz lR{ lt9V 3R| lR} lt:V 3R~ lR lt;V 3R€ lR� lt<V 3R‚ lRƒ lt=R”V 3R„ lR… llt>V 3R† lR‡ lt?. Rˆ3V 3R‰ lRŠ llt@V 3R‹ lRŒ ltAV 3R� lRŽ ltBV 3R� lR� ltCV 3R‘ ltDR’tEV tFR“# )•Ú
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.
c                ó$   <€ V ^8„  d   QhRS[ RR/# )é   Úreduce_parenthesesÚreturnN)Úbool)ÚformatÚ__classdict__s   "€Úf/Volumes/fast/ai/experiments/ui-tars-smoke/.venv/lib/python3.14/site-packages/pycparser/c_generator.pyÚ__annotate__ÚCGenerator.__annotate__   s   ø€ ÷ 	5ñ 	5©4ð 	5¸Dñ 	5ó    c                ó    € ^ V n         Wn        R# )zrConstructs C-code generator

reduce_parentheses:
    if True, eliminates needless parentheses on binary operators
N©Úindent_levelr   )Úselfr   s   &&r   Ú__init__ÚCGenerator.__init__   s   € ð ˆÔØ"4Ör   c                ó    <€ V ^8„  d   QhRS[ /# )r
   r   )Ústr)r   r   s   "€r   r   r   "   s   ø€ ÷ 'ñ '™cñ 'r   c                ó(   € R V P                   ,          # ©Ú )r   )r   s   &r   Ú_make_indentÚCGenerator._make_indent"   s   € Ø�T×&Ñ&Õ&Ð&r   c                ó:   <€ V ^8„  d   QhRS[ P                  RS[/# ©r
   Únoder   ©r   ÚNoder   )r   r   s   "€r   r   r   %   s   ø€ ÷ ?ñ ?™%Ÿ*™*ð ?©ñ ?r   c                ót   € R VP                   P                  ,           p\        WV P                  4      ! V4      # )Úvisit_)Ú	__class__Ú__name__ÚgetattrÚgeneric_visit)r   r#   Úmethods   && r   ÚvisitÚCGenerator.visit%   s.   € Ø˜DŸN™N×3Ñ3Õ3ˆÜ�t T×%7Ñ%7Ô8¸Ó>Ð>r   c                óJ   <€ V ^8„  d   QhRS[ S[P                  ,          RS[/# r"   )r   r   r%   r   )r   r   s   "€r   r   r   )   s(   ø€ ÷ Kñ K¡(©5¯:©:Õ"6ð K¹3ñ Kr   c                ób   a € Vf   R# RP                  V 3R lVP                  4        4       4      # )NÚ c              3   óJ   <"  € T F  w  rSP                  V4      x € K  	  R # 5i©N©r-   )Ú.0Úc_nameÚcr   s   &  €r   Ú	<genexpr>Ú+CGenerator.generic_visit.<locals>.<genexpr>-   s   øé € ÐJ¹/©Y¨V˜4Ÿ:™: aŸ=˜=»/ùó   ƒ #)ÚjoinÚchildren)r   r#   s   f&r   r+   ÚCGenerator.generic_visit)   s&   ø€ ØŠ<Ùà—7‘7ÔJ¸$¿-¹-¼/ÓJÓJÐJr   c                ó:   <€ V ^8„  d   QhRS[ P                  RS[/# ©r
   Únr   )r   ÚConstantr   )r   r   s   "€r   r   r   /   s   ø€ ÷ ñ ¡§¡ð ±3ñ r   c                ó   € VP                   # r3   )Úvalue©r   r@   s   &&r   Úvisit_ConstantÚCGenerator.visit_Constant/   s   € Ø�w‰wˆr   c                ó:   <€ V ^8„  d   QhRS[ P                  RS[/# r?   )r   ÚIDr   )r   r   s   "€r   r   r   2   s   ø€ ÷ ñ ™%Ÿ(™(ð ¡sñ r   c                ó   € VP                   # r3   ©ÚnamerD   s   &&r   Úvisit_IDÚCGenerator.visit_ID2   s   € Ø�v‰vˆr   c                ó:   <€ V ^8„  d   QhRS[ P                  RS[/# r?   )r   ÚPragmar   )r   r   s   "€r   r   r   5   s   ø€ ÷ ñ ™eŸl™lð ©sñ r   c                ób   € R pVP                   '       d   VRVP                   ,           ,          pV# )z#pragmar   )Ústring)r   r@   Úrets   && r   Úvisit_PragmaÚCGenerator.visit_Pragma5   s'   € ØˆØ�8�8ˆ8Ø�3˜Ÿ™•>Õ!ˆCØˆ
r   c                ó:   <€ V ^8„  d   QhRS[ P                  RS[/# r?   )r   ÚArrayRefr   )r   r   s   "€r   r   r   ;   s   ø€ ÷ <ñ <¡§¡ð <±3ñ <r   c                ó˜   € V P                  VP                  4      pVR ,           V P                  VP                  4      ,           R,           # )Ú[Ú])Ú_parenthesize_unless_simplerK   r-   Ú	subscript)r   r@   Úarrrefs   && r   Úvisit_ArrayRefÚCGenerator.visit_ArrayRef;   s7   € Ø×1Ñ1°!·&±&Ó9ˆØ˜�|˜dŸj™j¨¯©Ó5Õ5¸Õ;Ð;r   c                ó:   <€ V ^8„  d   QhRS[ P                  RS[/# r?   )r   Ú	StructRefr   )r   r   s   "€r   r   r   ?   s   ø€ ÷ 3ñ 3¡§¡ð 3±Sñ 3r   c                óœ   € V P                  VP                  4      pW!P                  ,           V P                  VP                  4      ,           # r3   )rZ   rK   Útyper-   Úfield)r   r@   Úsrefs   && r   Úvisit_StructRefÚCGenerator.visit_StructRef?   s4   € Ø×/Ñ/°·±Ó7ˆØ—f‘f�}˜tŸz™z¨!¯'©'Ó2Õ2Ð2r   c                ó:   <€ V ^8„  d   QhRS[ P                  RS[/# r?   )r   ÚFuncCallr   )r   r   s   "€r   r   r   C   s   ø€ ÷ 'ñ '¡§¡ð '±3ñ 'r   c                ó¼   € V P                  VP                  4      pVP                  e   V P                  VP                  4      MRpVR,           V,           R,           # )Nr1   Ú(Ú))rZ   rK   Úargsr-   )r   r@   Úfrefrl   s   &&  r   Úvisit_FuncCallÚCGenerator.visit_FuncCallC   sG   € Ø×/Ñ/°·±Ó7ˆØ%&§V¡VÒ%7ˆt�z‰z˜!Ÿ&™&Ô!¸RˆØ�c�z˜DÕ  3Õ&Ð&r   c                ó:   <€ V ^8„  d   QhRS[ P                  RS[/# r?   )r   ÚUnaryOpr   )r   r   s   "€r   r   r   H   s   ø€ ÷ *ñ *™uŸ}™}ð *±ñ *r   c                óZ  € VP                   ;R 8X  d!    RV P                  VP                  4       R2# ;R8X  d"    V P                  VP                  4      pV R2# R8X  d!   V P                  VP                  4      pV R2#  V P                  VP                  4      pVP                    V 2# )Úsizeofzsizeof(rk   zp++z++zp--z--)Úopr-   ÚexprrZ   )r   r@   Úoperands   && r   Úvisit_UnaryOpÚCGenerator.visit_UnaryOpH   s›   € Ø�d‰dÞñ ! §¡¨A¯F©FÓ!3Ð 4°AÐ6Ð6ÞÙ×:Ñ:¸1¿6¹6ÓB�Ø!˜ "�~Ð%ÝØ×:Ñ:¸1¿6¹6ÓB�Ø!˜ "�~Ð%ØØ×:Ñ:¸1¿6¹6ÓB�ØŸ$™$˜ ˜yÐ)Ð)r   z||z&&Ú|Ú^Ú&z==z!=Ú>z>=Ú<z<=z>>z<<Ú+Ú-Ú*Ú/Ú%c                ó:   <€ V ^8„  d   QhRS[ P                  RS[/# r?   )r   ÚBinaryOpr   )r   r   s   "€r   r   r   p   s   ø€ ÷ #/ñ #/¡§¡ð #/±3ñ #/r   c                ó²   a a€ S P                  SP                  VV 3R  l4      pS P                  SP                  VV 3R l4      pV RSP                   RV 2# )c                 ó"  <€ SP                  V 4      ;'       gr    SP                  ;'       d^    \        V \        P                  4      ;'       d<    SP
                  V P                  ,          SP
                  SP                  ,          8¬  '       * # r3   ©Ú_is_simple_noder   Ú
isinstancer   r„   Úprecedence_maprt   ©Údr@   r   s   &€€r   Ú<lambda>Ú+CGenerator.visit_BinaryOp.<locals>.<lambda>|   sw   ø€ Ø×$Ñ$ QÓ'÷ Kð KØ×*Ñ*÷ Kð KÜ˜q¤%§.¡.Ó1÷Kð Kà×'Ñ'¨¯©Õ-°×1DÑ1DÀQÇTÁTÕ1JÑJõ	r   c                 ó"  <€ SP                  V 4      ;'       gr    SP                  ;'       d^    \        V \        P                  4      ;'       d<    SP
                  V P                  ,          SP
                  SP                  ,          8„  '       * # r3   r‡   r‹   s   &€€r   r�   rŽ   Œ   sw   ø€ Ø×$Ñ$ QÓ'÷ Jð JØ×*Ñ*÷ Jð JÜ˜q¤%§.¡.Ó1÷Jð Jà×'Ñ'¨¯©Õ-°×0CÑ0CÀAÇDÁDÕ0IÑIõ	r   r   )Ú_parenthesize_ifÚleftÚrightrt   )r   r@   Úlval_strÚrval_strs   ff  r   Úvisit_BinaryOpÚCGenerator.visit_BinaryOpp   s\   ù€ ð ×(Ñ(Ø�F‰Fõó
ˆð  ×(Ñ(Ø�G‰Gõó
ˆð �˜1˜QŸT™T˜F ! H :Ð.Ð.r   c                ó:   <€ V ^8„  d   QhRS[ P                  RS[/# r?   )r   Ú
Assignmentr   )r   r   s   "€r   r   r   •   s!   ø€ ÷ ;ñ ;¡%×"2Ñ"2ð ;±sñ ;r   c                ó–   € V P                  VP                  R  4      pV P                  VP                  4       RVP                   RV 2# )c                 ó6   € \        V \        P                  4      # r3   )r‰   r   r˜   )r@   s   &r   r�   Ú-CGenerator.visit_Assignment.<locals>.<lambda>—   s   € ¤
¨1¬e×.>Ñ.>Ô ?r   r   )r�   Úrvaluer-   Úlvaluert   )r   r@   r”   s   && r   Úvisit_AssignmentÚCGenerator.visit_Assignment•   sG   € Ø×(Ñ(Ø�H‰HÑ?ó
ˆð —*‘*˜QŸX™XÓ&Ð' q¨¯©¨¨a°¨zÐ:Ð:r   c                ó:   <€ V ^8„  d   QhRS[ P                  RS[/# r?   )r   ÚIdentifierTyper   )r   r   s   "€r   r   r   ›   s!   ø€ ÷ !ñ !¡e×&:Ñ&:ð !¹sñ !r   c                ó8   € R P                  VP                  4      # r   )r;   ÚnamesrD   s   &&r   Úvisit_IdentifierTypeÚCGenerator.visit_IdentifierType›   s   € Ø�x‰x˜Ÿ™Ó Ð r   c                ó:   <€ V ^8„  d   QhRS[ P                  RS[/# r?   r$   )r   r   s   "€r   r   r   ž   s   ø€ ÷ %ñ %™UŸZ™Zð %©Cñ %r   c                óF  € T;\         P                  R c ;e#   w    RV P                  V4      ,           R,           #  ;\         P                  R c ;e   w   M ;\         P                  R c ;e   w   M  M  RV P                  V4      ,           R,           #  V P                  V4      # )© Ú{Ú}rj   rk   )r   ÚInitListr-   ÚExprListÚCompoundrD   s   &&r   Ú_visit_exprÚCGenerator._visit_exprž   sx   € ØØ!”—‘×!Ù˜TŸZ™Z¨›]Õ*¨SÕ0Ð0ð "à!”—‘×!Ñ!Ð$4¤E§N¡N×$4Ñ$4Ò4Ø˜TŸZ™Z¨›]Õ*¨SÕ0Ð0ØØ—z‘z !“}Ð$r   c                ó@   <€ V ^8„  d   QhRS[ P                  RS[RS[/# )r
   r@   Úno_typer   )r   ÚDeclr   r   )r   r   s   "€r   r   r   §   s&   ø€ ÷ 	ñ 	™EŸJ™Jð 	±ð 	Á#ñ 	r   c                ó<  € V'       d   VP                   MV P                  V4      pVP                  '       d*   VR V P                  VP                  4      ,           ,          pVP                  '       d*   VRV P                  VP                  4      ,           ,          pV# )z : ú = )rK   Ú_generate_declÚbitsizer-   Úinitr®   )r   r@   r±   Úss   &&& r   Ú
visit_DeclÚCGenerator.visit_Decl§   sm   € ÷ ˆA�FŠF 4×#6Ñ#6°qÓ#9ˆØ�9�9ˆ9Ø�˜Ÿ™ A§I¡IÓ.Õ.Õ.ˆAØ�6�6ˆ6Ø�˜×)Ñ)¨!¯&©&Ó1Õ1Õ1ˆAØˆr   c                ó:   <€ V ^8„  d   QhRS[ P                  RS[/# r?   )r   ÚDeclListr   )r   r   s   "€r   r   r   ²   s   ø€ ÷ ñ ¡§¡ð ±3ñ r   c                óô   a € S P                  VP                  ^ ,          4      p\        VP                  4      ^8”  d;   VRRP                  V 3R lVP                  R,           4       4      ,           ,          pV# )r   ú, c              3   óJ   <"  € T F  pSP                  VR R7      x € K  	  R# 5i)T)r±   N)r¹   ©r5   Údeclr   s   & €r   r8   Ú,CGenerator.visit_DeclList.<locals>.<genexpr>µ   s$   øé € ð "Ù@K¸�—‘ ¨d�×3Ð3Ãùr:   :é   NN)r-   ÚdeclsÚlenr;   ©r   r@   r¸   s   f& r   Úvisit_DeclListÚCGenerator.visit_DeclList²   sa   ø€ Ø�J‰J�q—w‘w˜q•zÓ"ˆÜˆq�w‰w‹<˜!ÔØ�˜Ÿ	™	ô "Ø@AÇÁÈÆó"ó õ õ ˆAð ˆr   c                ó:   <€ V ^8„  d   QhRS[ P                  RS[/# r?   )r   ÚTypedefr   )r   r   s   "€r   r   r   º   s   ø€ ÷ ñ ™uŸ}™}ð ±ñ r   c                óÂ   € R pVP                   '       d*   VRP                  VP                   4      R,           ,          pW P                  VP                  4      ,          pV# )r1   r   )Ústorager;   Ú_generate_typerb   rÆ   s   && r   Úvisit_TypedefÚCGenerator.visit_Typedefº   sH   € ØˆØ�9�9ˆ9Ø�—‘˜!Ÿ)™)Ó$ sÕ*Õ*ˆAØ	× Ñ  §¡Ó(Õ(ˆØˆr   c                ó:   <€ V ^8„  d   QhRS[ P                  RS[/# r?   )r   ÚCastr   )r   r   s   "€r   r   r   Á   s#   ø€ ÷ Bñ B™EŸJ™Jð B©3ñ Br   c                óª   € R V P                  VP                  RR7      ,           R,           pVR,           V P                  VP                  4      ,           # )rj   F©Úemit_declnamerk   r   )rÍ   Úto_typerZ   ru   rÆ   s   && r   Ú
visit_CastÚCGenerator.visit_CastÁ   sC   € Ø�$×%Ñ% a§i¡i¸uÐ%ÓEÕEÈÕKˆØ�3�w˜×9Ñ9¸!¿&¹&ÓAÕAÐAr   c                ó:   <€ V ^8„  d   QhRS[ P                  RS[/# r?   )r   r¬   r   )r   r   s   "€r   r   r   Å   ó   ø€ ÷ +ñ +¡§¡ð +±3ñ +r   c                óŽ   € . pVP                    F#  pVP                  V P                  V4      4       K%  	  R P                  V4      # ©r¾   ©ÚexprsÚappendr®   r;   ©r   r@   Úvisited_subexprsru   s   &&  r   Úvisit_ExprListÚCGenerator.visit_ExprListÅ   ó?   € ØÐØ—G”GˆDØ×#Ñ# D×$4Ñ$4°TÓ$:Ö;ñ à�y‰yÐ)Ó*Ð*r   c                ó:   <€ V ^8„  d   QhRS[ P                  RS[/# r?   )r   r«   r   )r   r   s   "€r   r   r   Ë   rÙ   r   c                óŽ   € . pVP                    F#  pVP                  V P                  V4      4       K%  	  R P                  V4      # rÛ   rÜ   rß   s   &&  r   Úvisit_InitListÚCGenerator.visit_InitListË   rã   r   c                ó:   <€ V ^8„  d   QhRS[ P                  RS[/# r?   )r   ÚEnumr   )r   r   s   "€r   r   r   Ñ   s#   ø€ ÷ @ñ @™EŸJ™Jð @©3ñ @r   c                ó(   € V P                  VR R7      # )ÚenumrJ   ©Ú_generate_struct_union_enumrD   s   &&r   Ú
visit_EnumÚCGenerator.visit_EnumÑ   s   € Ø×/Ñ/°¸Ð/Ó?Ð?r   c                ó:   <€ V ^8„  d   QhRS[ P                  RS[/# r?   )r   ÚAlignasr   )r   r   s   "€r   r   r   Ô   s   ø€ ÷ >ñ >™uŸ}™}ð >±ñ >r   c                óV   € R P                  V P                  VP                  4      4      # )z_Alignas({}))r   r-   Ú	alignmentrD   s   &&r   Úvisit_AlignasÚCGenerator.visit_AlignasÔ   s    € Ø×$Ñ$ T§Z¡Z°·±Ó%<Ó=Ð=r   c                ó:   <€ V ^8„  d   QhRS[ P                  RS[/# r?   )r   Ú
Enumeratorr   )r   r   s   "€r   r   r   ×   s!   ø€ ÷ ñ ¡%×"2Ñ"2ð ±sñ r   c                ó  € VP                   '       g,   R P                  V P                  4       VP                  R7      # RP                  V P                  4       VP                  V P	                  VP                   4      R7      # )z{indent}{name},
)ÚindentrK   z{indent}{name} = {value},
)rù   rK   rC   )rC   r   r   rK   r-   rD   s   &&r   Úvisit_EnumeratorÚCGenerator.visit_Enumerator×   ss   € Ø�w�wˆwØ&×-Ñ-Ø×(Ñ(Ó*Ø—V‘Vð .ó ð ð
 1×7Ñ7Ø×(Ñ(Ó*Ø—V‘VØ—j‘j §¡Ó)ð 8ó ð r   c                ó:   <€ V ^8„  d   QhRS[ P                  RS[/# r?   )r   ÚFuncDefr   )r   r   s   "€r   r   r   ä   s   ø€ ÷ -ñ -™uŸ}™}ð -±ñ -r   c                ód  a € S P                  VP                  4      p^ S n        S P                  VP                  4      pVP                  '       dK   RP                  V 3R lVP                   4       4      pVR,           V,           R,           V,           R,           # VR,           V,           R,           # )r   ú;
c              3   óF   <"  € T F  pSP                  V4      x € K  	  R # 5ir3   r4   )r5   Úpr   s   & €r   r8   Ú+CGenerator.visit_FuncDef.<locals>.<genexpr>é   s   øé € Ð!G¹°A $§*¡*¨Q§- -»ùó   ƒ!Ú
)r-   rÁ   r   ÚbodyÚparam_declsr;   )r   r@   rÁ   r  Úknrdeclss   f&   r   Úvisit_FuncDefÚCGenerator.visit_FuncDefä   s‚   ø€ Ø�z‰z˜!Ÿ&™&Ó!ˆØˆÔØ�z‰z˜!Ÿ&™&Ó!ˆØ�=�=ˆ=Ø—z‘zÔ!G¸¿ºÓ!GÓGˆHØ˜$•; Õ)¨EÕ1°DÕ8¸4Õ?Ð?à˜$•; Õ%¨Õ,Ð,r   c                ó:   <€ V ^8„  d   QhRS[ P                  RS[/# r?   )r   ÚFileASTr   )r   r   s   "€r   r   r   î   s   ø€ ÷ 
ñ 
™uŸ}™}ð 
±ñ 
r   c                óF  € R pVP                    FŽ  pT;\        P                  Rc ;e   w    W P                  V4      ,          pK6   \        P                  Rc ;e#   w   W P                  V4      R,           ,          pKn    W P                  V4      R,           ,          pK�  	  V# )r1   r¨   r  rÿ   )Úextr   rý   r-   rO   )r   r@   r¸   r  s   &&  r   Úvisit_FileASTÚCGenerator.visit_FileASTî   sz   € ØˆØ—5”5ˆCØØ$”U—]‘]—_ÙŸ™ C›Õ(’Að %ä—\‘\—^ØŸ™ C›¨4Õ/Õ/’Að $àØŸ™ C›¨5Õ0Õ0’Añ ð ˆr   c                ó:   <€ V ^8„  d   QhRS[ P                  RS[/# r?   )r   r­   r   )r   r   s   "€r   r   r   ú   s   ø€ ÷ ñ ¡§¡ð ±3ñ r   c                óR  a € S P                  4       R ,           pS ;P                  ^,          un        VP                  '       d-   VRP                  V 3R lVP                   4       4      ,          pS ;P                  ^,          un        VS P                  4       R,           ,          pV# )ú{
r1   c              3   óF   <"  € T F  pSP                  V4      x € K  	  R # 5ir3   ©Ú_generate_stmt)r5   Ústmtr   s   & €r   r8   Ú,CGenerator.visit_Compound.<locals>.<genexpr>þ   s   øé € ÐM¹}°t˜×,Ñ,¨T×2Ð2»}ùr  z}
)r   r   Úblock_itemsr;   rÆ   s   f& r   Úvisit_CompoundÚCGenerator.visit_Compoundú   s{   ø€ Ø×ÑÓ %Õ'ˆØ×Ò˜QÕÕØ�=�=ˆ=Ø�—‘ÔM¸q¿}º}ÓMÓMÕMˆAØ×Ò˜QÕÕØ	ˆT×ÑÓ  5Õ(Õ(ˆØˆr   c                ó:   <€ V ^8„  d   QhRS[ P                  RS[/# r?   )r   ÚCompoundLiteralr   )r   r   s   "€r   r   r     s%   ø€ ÷ Jñ J¡u×'<Ñ'<ð JÁñ Jr   c                ó¢   € R V P                  VP                  4      ,           R,           V P                  VP                  4      ,           R,           # )rj   z){rª   )r-   rb   r·   rD   s   &&r   Úvisit_CompoundLiteralÚ CGenerator.visit_CompoundLiteral  s6   € Ø�T—Z‘Z §¡Ó'Õ'¨$Õ.°·±¸A¿F¹FÓ1CÕCÀcÕIÐIr   c                ó:   <€ V ^8„  d   QhRS[ P                  RS[/# r?   )r   ÚEmptyStatementr   )r   r   s   "€r   r   r     s!   ø€ ÷ ñ ¡e×&:Ñ&:ð ¹sñ r   c                ó   € R # )Ú;r¨   rD   s   &&r   Úvisit_EmptyStatementÚCGenerator.visit_EmptyStatement  s   € Ùr   c                ó:   <€ V ^8„  d   QhRS[ P                  RS[/# r?   )r   Ú	ParamListr   )r   r   s   "€r   r   r   	  s#   ø€ ÷ Bñ B¡§¡ð B±Sñ Br   c                óN   a € R P                  V 3R lVP                   4       4      # )r¾   c              3   óF   <"  € T F  pSP                  V4      x € K  	  R # 5ir3   r4   )r5   Úparamr   s   & €r   r8   Ú-CGenerator.visit_ParamList.<locals>.<genexpr>
  s   øé € ÐA¹¨u˜Ÿ™ E×*Ð*»ùr  )r;   ÚparamsrD   s   f&r   Úvisit_ParamListÚCGenerator.visit_ParamList	  s   ø€ Ø�y‰yÔA¸¿ºÓAÓAÐAr   c                ó:   <€ V ^8„  d   QhRS[ P                  RS[/# r?   )r   ÚReturnr   )r   r   s   "€r   r   r     s   ø€ ÷ ñ ™eŸl™lð ©sñ r   c                óŽ   € R pVP                   '       d*   VRV P                  VP                   4      ,           ,          pVR,           # )r   r   r#  )ru   r-   rÆ   s   && r   Úvisit_ReturnÚCGenerator.visit_Return  s5   € ØˆØ�6�6ˆ6Ø��t—z‘z !§&¡&Ó)Õ)Õ)ˆAØ�3�wˆr   c                ó:   <€ V ^8„  d   QhRS[ P                  RS[/# r?   )r   ÚBreakr   )r   r   s   "€r   r   r     s   ø€ ÷ ñ ™UŸ[™[ð ©Sñ r   c                ó   € R # )zbreak;r¨   rD   s   &&r   Úvisit_BreakÚCGenerator.visit_Break  s   € Ùr   c                ó:   <€ V ^8„  d   QhRS[ P                  RS[/# r?   )r   ÚContinuer   )r   r   s   "€r   r   r     s   ø€ ÷ ñ ¡§¡ð ±3ñ r   c                ó   € R # )z	continue;r¨   rD   s   &&r   Úvisit_ContinueÚCGenerator.visit_Continue  s   € Ùr   c                ó:   <€ V ^8„  d   QhRS[ P                  RS[/# r?   )r   Ú	TernaryOpr   )r   r   s   "€r   r   r     s   ø€ ÷ ñ ¡§¡ð ±Sñ r   c                ó  € R V P                  VP                  4      ,           R,           pVR V P                  VP                  4      ,           R,           ,          pVR V P                  VP                  4      ,           R,           ,          pV# )rj   z) ? z) : rk   )r®   ÚcondÚiftrueÚiffalserÆ   s   && r   Úvisit_TernaryOpÚCGenerator.visit_TernaryOp  sk   € Ø�$×"Ñ" 1§6¡6Ó*Õ*¨VÕ3ˆØ	ˆS�4×#Ñ# A§H¡HÓ-Õ-°Õ6Õ6ˆØ	ˆS�4×#Ñ# A§I¡IÓ.Õ.°Õ4Õ4ˆØˆr   c                ó:   <€ V ^8„  d   QhRS[ P                  RS[/# r?   )r   ÚIfr   )r   r   s   "€r   r   r     s   ø€ ÷ 	ñ 	™%Ÿ(™(ð 	¡sñ 	r   c                ól  € R pVP                   '       d"   W P                  VP                   4      ,          pVR,          pW P                  VP                  RR7      ,          pVP                  '       dA   W P                  4       R,           ,          pW P                  VP                  RR7      ,          pV# )zif (ú)
T©Ú
add_indentzelse
)rA  r-   r  rB  rC  r   rÆ   s   && r   Úvisit_IfÚCGenerator.visit_If  sŠ   € ØˆØ�6�6ˆ6Ø—‘˜AŸF™FÓ#Õ#ˆAØ	ˆU�
ˆØ	× Ñ  §¡°dÐ Ó;Õ;ˆØ�9�9ˆ9Ø×"Ñ"Ó$ xÕ/Õ/ˆAØ×$Ñ$ Q§Y¡Y¸4Ð$Ó@Õ@ˆAØˆr   c                ó:   <€ V ^8„  d   QhRS[ P                  RS[/# r?   )r   ÚForr   )r   r   s   "€r   r   r   )  s   ø€ ÷ ñ ™5Ÿ9™9ð ©ñ r   c                óØ  € R pVP                   '       d"   W P                  VP                   4      ,          pVR,          pVP                  '       d*   VRV P                  VP                  4      ,           ,          pVR,          pVP                  '       d*   VRV P                  VP                  4      ,           ,          pVR,          pW P	                  VP
                  RR7      ,          pV# )zfor (r#  r   rI  TrJ  )r·   r-   rA  Únextr  r  rÆ   s   && r   Ú	visit_ForÚCGenerator.visit_For)  s«   € ØˆØ�6�6ˆ6Ø—‘˜AŸF™FÓ#Õ#ˆAØ	ˆS�ˆØ�6�6ˆ6Ø��t—z‘z !§&¡&Ó)Õ)Õ)ˆAØ	ˆS�ˆØ�6�6ˆ6Ø��t—z‘z !§&¡&Ó)Õ)Õ)ˆAØ	ˆU�
ˆØ	× Ñ  §¡°DÐ Ó9Õ9ˆØˆr   c                ó:   <€ V ^8„  d   QhRS[ P                  RS[/# r?   )r   ÚWhiler   )r   r   s   "€r   r   r   7  s   ø€ ÷ ñ ™UŸ[™[ð ©Sñ r   c                óÈ   € R pVP                   '       d"   W P                  VP                   4      ,          pVR,          pW P                  VP                  RR7      ,          pV# )úwhile (rI  TrJ  )rA  r-   r  r  rÆ   s   && r   Úvisit_WhileÚCGenerator.visit_While7  sO   € ØˆØ�6�6ˆ6Ø—‘˜AŸF™FÓ#Õ#ˆAØ	ˆU�
ˆØ	× Ñ  §¡°DÐ Ó9Õ9ˆØˆr   c                ó:   <€ V ^8„  d   QhRS[ P                  RS[/# r?   )r   ÚDoWhiler   )r   r   s   "€r   r   r   ?  s   ø€ ÷ ñ ™uŸ}™}ð ±ñ r   c                ó  € R pW P                  VP                  RR7      ,          pW P                  4       R,           ,          pVP                  '       d"   W P	                  VP                  4      ,          pVR,          pV# )zdo
TrJ  rW  z);)r  r  r   rA  r-   rÆ   s   && r   Úvisit_DoWhileÚCGenerator.visit_DoWhile?  se   € ØˆØ	× Ñ  §¡°DÐ Ó9Õ9ˆØ	×ÑÓ  9Õ,Õ,ˆØ�6�6ˆ6Ø—‘˜AŸF™FÓ#Õ#ˆAØ	ˆT�	ˆØˆr   c                ó:   <€ V ^8„  d   QhRS[ P                  RS[/# r?   )r   ÚStaticAssertr   )r   r   s   "€r   r   r   H  s!   ø€ ÷ ñ ¡E×$6Ñ$6ð ¹3ñ r   c                óÖ   € R pW P                  VP                  4      ,          pVP                  '       d+   VR,          pW P                  VP                  4      ,          pVR,          pV# )z_Static_assert(Ú,rk   )r-   rA  ÚmessagerÆ   s   && r   Úvisit_StaticAssertÚCGenerator.visit_StaticAssertH  sQ   € ØˆØ	�Z‰Z˜Ÿ™ÓÕˆØ�9�9ˆ9Ø��HˆAØ—‘˜AŸI™IÓ&Õ&ˆAØ	ˆS�ˆØˆr   c                ó:   <€ V ^8„  d   QhRS[ P                  RS[/# r?   )r   ÚSwitchr   )r   r   s   "€r   r   r   Q  s   ø€ ÷ ñ ™eŸl™lð ©sñ r   c                óž   € R V P                  VP                  4      ,           R,           pW P                  VP                  RR7      ,          pV# )zswitch (rI  TrJ  )r-   rA  r  r  rÆ   s   && r   Úvisit_SwitchÚCGenerator.visit_SwitchQ  s?   € Ø˜Ÿ™ A§F¡FÓ+Õ+¨eÕ3ˆØ	× Ñ  §¡°DÐ Ó9Õ9ˆØˆr   c                ó:   <€ V ^8„  d   QhRS[ P                  RS[/# r?   )r   ÚCaser   )r   r   s   "€r   r   r   V  s   ø€ ÷ ñ ™EŸJ™Jð ©3ñ r   c                ó°   € R V P                  VP                  4      ,           R,           pVP                   F  pW P                  VRR7      ,          pK  	  V# )zcase ú:
TrJ  )r-   ru   Ústmtsr  ©r   r@   r¸   r  s   &&  r   Ú
visit_CaseÚCGenerator.visit_CaseV  sI   € Ø�d—j‘j §¡Ó(Õ(¨5Õ0ˆØ—G”GˆDØ×$Ñ$ T°dÐ$Ó;Õ;ŠAñ àˆr   c                ó:   <€ V ^8„  d   QhRS[ P                  RS[/# r?   )r   ÚDefaultr   )r   r   s   "€r   r   r   \  s   ø€ ÷ ñ ™uŸ}™}ð ±ñ r   c                ób   € R pVP                    F  pW P                  VRR7      ,          pK  	  V# )z	default:
TrJ  )ro  r  rp  s   &&  r   Úvisit_DefaultÚCGenerator.visit_Default\  s2   € ØˆØ—G”GˆDØ×$Ñ$ T°dÐ$Ó;Õ;ŠAñ àˆr   c                ó:   <€ V ^8„  d   QhRS[ P                  RS[/# r?   )r   ÚLabelr   )r   r   s   "€r   r   r   b  ó   ø€ ÷ <ñ <™UŸ[™[ð <©Sñ <r   c                óh   € VP                   R ,           V P                  VP                  4      ,           # )rn  )rK   r  r  rD   s   &&r   Úvisit_LabelÚCGenerator.visit_Labelb  s$   € Ø�v‰v˜�~ × 3Ñ 3°A·F±FÓ ;Õ;Ð;r   c                ó:   <€ V ^8„  d   QhRS[ P                  RS[/# r?   )r   ÚGotor   )r   r   s   "€r   r   r   e  s   ø€ ÷ &ñ &™EŸJ™Jð &©3ñ &r   c                ó6   € R VP                   ,           R,           # )zgoto r#  rJ   rD   s   &&r   Ú
visit_GotoÚCGenerator.visit_Gotoe  s   € Ø˜Ÿ™Õ #Õ%Ð%r   c                ó:   <€ V ^8„  d   QhRS[ P                  RS[/# r?   )r   ÚEllipsisParamr   )r   r   s   "€r   r   r   h  s!   ø€ ÷ ñ ¡U×%8Ñ%8ð ¹Sñ r   c                ó   € R # )z...r¨   rD   s   &&r   Úvisit_EllipsisParamÚCGenerator.visit_EllipsisParamh  s   € Ùr   c                ó:   <€ V ^8„  d   QhRS[ P                  RS[/# r?   )r   ÚStructr   )r   r   s   "€r   r   r   k  s   ø€ ÷ =ñ =™eŸl™lð =©sñ =r   c                ó&   € V P                  VR 4      # )Ústructrì   rD   s   &&r   Úvisit_StructÚCGenerator.visit_Structk  s   € Ø×/Ñ/°°8Ó<Ð<r   c                ó:   <€ V ^8„  d   QhRS[ P                  RS[/# r?   )r   ÚTypenamer   )r   r   s   "€r   r   r   n  s   ø€ ÷ +ñ +¡§¡ð +±3ñ +r   c                ó8   € V P                  VP                  4      # r3   )rÍ   rb   rD   s   &&r   Úvisit_TypenameÚCGenerator.visit_Typenamen  s   € Ø×"Ñ" 1§6¡6Ó*Ð*r   c                ó:   <€ V ^8„  d   QhRS[ P                  RS[/# r?   )r   ÚUnionr   )r   r   s   "€r   r   r   q  rz  r   c                ó&   € V P                  VR 4      # )Úunionrì   rD   s   &&r   Úvisit_UnionÚCGenerator.visit_Unionq  s   € Ø×/Ñ/°°7Ó;Ð;r   c                ó:   <€ V ^8„  d   QhRS[ P                  RS[/# r?   )r   ÚNamedInitializerr   )r   r   s   "€r   r   r   t  s!   ø€ ÷ ñ ©×(>Ñ(>ð Á3ñ r   c                óF  € R pVP                    Fe  p\        V\        P                  4      '       d   VRVP                   ,           ,          pK?  VRV P	                  V4      ,           R,           ,          pKg  	  VRV P                  VP                  4      ,           ,          pV# )r1   Ú.rX   rY   r´   )rK   r‰   r   rH   r-   r®   ru   )r   r@   r¸   rK   s   &&  r   Úvisit_NamedInitializerÚ!CGenerator.visit_NamedInitializert  sz   € ØˆØ—F”FˆDÜ˜$¤§¡×)Ò)Ø�S˜4Ÿ9™9•_Õ$’à�S˜4Ÿ:™: dÓ+Õ+¨cÕ1Õ1’ñ	 ð
 	
ˆU�T×%Ñ% a§f¡fÓ-Õ-Õ-ˆØˆr   c                ó:   <€ V ^8„  d   QhRS[ P                  RS[/# r?   )r   ÚFuncDeclr   )r   r   s   "€r   r   r   ~  s   ø€ ÷ &ñ &¡§¡ð &±3ñ &r   c                ó$   € V P                  V4      # r3   ©rÍ   rD   s   &&r   Úvisit_FuncDeclÚCGenerator.visit_FuncDecl~  s   € Ø×"Ñ" 1Ó%Ð%r   c                ó:   <€ V ^8„  d   QhRS[ P                  RS[/# r?   )r   Ú	ArrayDeclr   )r   r   s   "€r   r   r   �  s   ø€ ÷ ;ñ ;¡§¡ð ;±Sñ ;r   c                ó(   € V P                  VR R7      # ©FrÓ   r¢  rD   s   &&r   Úvisit_ArrayDeclÚCGenerator.visit_ArrayDecl�  ó   € Ø×"Ñ" 1°EÐ"Ó:Ð:r   c                ó:   <€ V ^8„  d   QhRS[ P                  RS[/# r?   )r   ÚTypeDeclr   )r   r   s   "€r   r   r   „  s   ø€ ÷ ;ñ ;¡§¡ð ;±3ñ ;r   c                ó(   € V P                  VR R7      # r¨  r¢  rD   s   &&r   Úvisit_TypeDeclÚCGenerator.visit_TypeDecl„  r«  r   c                ó:   <€ V ^8„  d   QhRS[ P                  RS[/# r?   )r   ÚPtrDeclr   )r   r   s   "€r   r   r   ‡  s   ø€ ÷ ;ñ ;™uŸ}™}ð ;±ñ ;r   c                ó(   € V P                  VR R7      # r¨  r¢  rD   s   &&r   Úvisit_PtrDeclÚCGenerator.visit_PtrDecl‡  r«  r   c                óˆ   <€ V ^8„  d   QhRS[ P                  S[ P                  ,          S[ P                  ,          RS[RS[/# )r
   r@   rK   r   )r   r‰  r”  ré   r   )r   r   s   "€r   r   r   Š  s;   ø€ ÷ ñ Ù—‘¡§¡Õ+©e¯j©jÕ8ðÙ@Cðá	ñr   c                ó¾  € VR9   dL   \        V\        P                  \        P                  34      '       g   Q hVP                  pV P
                  pM]VR8X  g   Q h\        V\        P                  4      '       g   Q hVP                  f   RMVP                  P                  pV P                  pVR,           VP                  ;'       g    R,           pVe†   VR,          pWPP                  4       ,          pV ;P                  ^,          un        VR,          pWT! V4      ,          pV ;P                  ^,          un        WPP                  4       R,           ,          pV# )	z\Generates code for structs, unions, and enums. name should be
'struct', 'union', or 'enum'.
rë   Nr   r1   r  r  rª   )r‹  r–  )r‰   r   r‰  r”  rÄ   Ú_generate_struct_union_bodyré   ÚvaluesÚenumeratorsÚ_generate_enum_bodyrK   r   r   )r   r@   rK   ÚmembersÚbody_functionr¸   s   &&&   r   rí   Ú&CGenerator._generate_struct_union_enumŠ  s  € ð Ð&Ô&Ü˜a¤%§,¡,´·±Ð!<×=Ò=Ð=Ð=Ø—g‘gˆGØ ×<Ñ<‰Mà˜6”>Ð!�>Ü˜a¤§¡×,Ò,Ð,Ð,ØŸh™hÒ.‘d°A·H±H×4HÑ4HˆGØ ×4Ñ4ˆMØ�3�J˜!Ÿ&™&Ÿ,˜, BÕ'ˆØÒð ��IˆAØ×"Ñ"Ó$Õ$ˆAØ×Ò Õ"ÕØ��JˆAØ�˜wÓ'Õ'ˆAØ×Ò Õ"ÕØ×"Ñ"Ó$ sÕ*Õ*ˆAØˆr   c                óJ   <€ V ^8„  d   QhRS[ S[P                  ,          RS[/# ©r
   r¼  r   )r   r   r%   r   )r   r   s   "€r   r   r   ¦  s(   ø€ ÷ Fñ F±4¹¿
¹
Õ3Cð FÉñ Fr   c                ó:   a € R P                  V 3R lV 4       4      # )r1   c              3   óF   <"  € T F  pSP                  V4      x € K  	  R # 5ir3   r  rÀ   s   & €r   r8   Ú9CGenerator._generate_struct_union_body.<locals>.<genexpr>§  s   øé € ÐE¹W°T�t×*Ñ*¨4×0Ð0»Wùr  ©r;   ©r   r¼  s   f&r   r¸  Ú&CGenerator._generate_struct_union_body¦  s   ø€ Ø�w‰wÔE¹WÓEÓEÐEr   c                óJ   <€ V ^8„  d   QhRS[ S[P                  ,          RS[/# rÀ  )r   r   r÷   r   )r   r   s   "€r   r   r   ©  s*   ø€ ÷ Kñ K©4±×0@Ñ0@Õ+Að KÁcñ Kr   c                óN   a € R P                  V 3R lV 4       4      RR R,           # )r1   c              3   óF   <"  € T F  pSP                  V4      x € K  	  R # 5ir3   r4   )r5   rC   r   s   & €r   r8   Ú1CGenerator._generate_enum_body.<locals>.<genexpr>«  s   øé € Ð>±g¨U�t—z‘z %×(Ð(³gùr  Nr  éþÿÿÿrÄ  rÅ  s   f&r   r»  ÚCGenerator._generate_enum_body©  s$   ø€ à�w‰wÔ>±gÓ>Ó>¸sÀÐCÀdÕJÐJr   c                ó@   <€ V ^8„  d   QhRS[ P                  RS[RS[/# )r
   r@   rK  r   )r   r%   r   r   )r   r   s   "€r   r   r   ­  s&   ø€ ÷ (5ñ (5¡§
¡
ð (5¹ð (5Éñ (5r   c                óŠ  € V'       d   V ;P                   ^,          un         V P                  4       pV'       d   V ;P                   ^,          un         T;;\        P                  Rc ;e   w   EM= ;\        P                  Rc ;e   w   EM" ;\        P
                  Rc ;e   w   EM ;\        P                  Rc ;e   w   Mí ;\        P                  Rc ;e   w   MÓ ;\        P                  Rc ;e   w   M¹ ;\        P                  Rc ;e   w   MŸ ;\        P                  Rc ;e   w   M… ;\        P                  Rc ;e   w   Mk ;\        P                  Rc ;e   w   MQ ;\        P                  Rc ;e   w   M7 ;\        P                  Rc ;e   w   M ;\        P                  Rc ;e   w   M  M   W0P!                  V4      ,           R,           # ;\        P"                  Rc ;e   w    V P!                  V4      #  \        P$                  Rc ;e   w   W0P!                  V4      ,           #   W0P!                  V4      ,           R,           # )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.
r¨   rÿ   r  )r   r   r   r²   r˜   rÑ   rq   r„   r?  rh   rV   r`   rA   rH   rÊ   r¬   r-   r­   rG  )r   r@   rK  rù   s   &&& r   r  ÚCGenerator._generate_stmt­  st  € ÷
 Ø×Ò Õ"ÕØ×"Ñ"Ó$ˆßØ×Ò Õ"Õàð#�”—
‘
—’Ø$”%×"Ñ"×$Ò$Ø”%—*‘*—,’,Ø!”%—-‘-—/‘/Ø"”%—.‘.×"Ñ"Ø#”%—/‘/×#Ñ#Ø"”%—.‘.×"Ñ"Ø"”%—.‘.×"Ñ"Ø#”%—/‘/×#Ñ#Ø"”%—.‘.×"Ñ"Ø”%—(‘(—*‘*Ø!”%—-‘-—/‘/Ø"”%—.‘.×"Ñ"ò#ñ" §
¡
¨1£Õ-°Õ5Ð5Ø!”—‘×!ñ
 —z‘z !“}Ð$ð "ô —‘—Ø§
¡
¨1£Õ-Ð-ð àØ§
¡
¨1£Õ-°Õ4Ð4r   c                ó:   <€ V ^8„  d   QhRS[ P                  RS[/# r?   )r   r²   r   )r   r   s   "€r   r   r   ×  s   ø€ ÷ 
ñ 
¡§
¡
ð 
©sñ 
r   c                ó¬  € RpVP                   '       d#   RP                  VP                   4      R,           pVP                  '       d*   VRP                  VP                  4      R,           ,          pVP                  '       d0   W P	                  VP                  ^ ,          4      R,           ,          pW P                  VP                  4      ,          pV# )zGeneration from a Decl node.r1   r   )Úfuncspecr;   rÌ   Úalignr-   rÍ   rb   rÆ   s   && r   rµ   ÚCGenerator._generate_decl×  s�   € àˆØ�:�:ˆ:Ø—‘˜Ÿ™Ó$ sÕ*ˆAØ�9�9ˆ9Ø�—‘˜!Ÿ)™)Ó$ sÕ*Õ*ˆAØ�7�7ˆ7Ø—‘˜AŸG™G A�JÓ'¨#Õ-Õ-ˆAØ	× Ñ  §¡Ó(Õ(ˆØˆr   Tc                ój   <€ V ^8„  d   QhRS[ P                  RS[S[ P                  ,          RS[RS[/# )r
   r@   Ú	modifiersrÔ   r   )r   r%   r   r   r   )r   r   s   "€r   r   r   ã  sF   ø€ ÷ A%ñ A%á�:‰:ðA%ñ ™Ÿ
™
Õ#ðA%ñ ð	A%ñ
 
ñA%r   c                óÚ  € T;\         P                  Rc ;Ee¤   w    RpVP                  '       d*   VRP                  VP                  4      R,           ,          pW@P	                  VP
                  4      ,          pVP                  '       d   V'       d   VP                  MRp\        V4       EFð  w  rgT;\         P                  Rc ;eÆ   w    V^ 8w  d>   \        W&^,
          ,          \         P                  4      '       d   RV,           R,           pVR,          pVP                  '       d*   VRP                  VP                  4      R,           ,          pVP                  e"   WPP	                  VP                  4      ,          pVR,          pKâ   ;\         P                  Rc ;e�   w    V^ 8w  d>   \        W&^,
          ,          \         P                  4      '       d   RV,           R,           pVP                  e   V P	                  VP                  4      MRpVRV,           R,           ,          pEK…   \         P                  Rc ;eU   w   VP                  '       d5   RP                  VP                  4      p	V'       d   RV 2MRp
RV	 V
 2pEKã  R	V,           pEKï   EKó  	  V'       d   VRV,           ,          pV#  ;\         P                  Rc ;e   w    V P!                  VP
                  4      #  ;\         P"                  Rc ;e!   w    V P%                  VP
                  VR
7      #  ;\         P&                  Rc ;e&   w    RP                  VP(                  4      R,           #  ;\         P                  Rc ;e   w   M7 ;\         P                  Rc ;e   w   M ;\         P                  Rc ;e   w   M  M& V P%                  VP
                  W!.,           VR
7      #  V P	                  V4      # )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.
r¨   r1   r   rj   rk   rX   rY   z* r€   rÓ   )r   r­  Úqualsr;   r-   rb   ÚdeclnameÚ	enumerater¦  r‰   r²  Ú	dim_qualsÚdimr   rl   r²   rµ   r�  rÍ   r¡   r£   )r   r@   rÖ  rÔ   r¸   ÚnstrÚiÚmodifierrl   rØ  Úsuffixs   &&&&       r   rÍ   ÚCGenerator._generate_typeã  sç  € ð Ø!”—‘×!Ð!Ù�Ø—7—7�7Ø˜Ÿ™ !§'¡'Ó*¨SÕ0Õ0�AØ—Z‘Z §¡Ó'Õ'�à%&§Z§Z Z·M�q—z’zÀr�ô
 $-¨Y×#7‘K�AØ"Ø.œUŸ_™_×.Ù  Aœv¬*°YÀ1½uÕ5EÄuÇ}Á}×*UÒ*UØ'*¨T¥z°CÕ'7 Ø  C�K˜DØ'×1×1Ð1Ø $¨¯©°×1CÑ1CÓ(DÀsÕ(JÕ J Ø'Ÿ|™|Ò7Ø $¯
©
°8·<±<Ó(@Õ @ Ø  C�KšDð /ð .œUŸ^™^×-Ù  Aœv¬*°YÀ1½uÕ5EÄuÇ}Á}×*UÒ*UØ'*¨T¥z°CÕ'7 ð $,§=¡=Ò#<ð !%§
¡
¨8¯=©=Ô 9à%'ð !ð
 ! C¨$¥J°Õ$4Õ4›Dð .ô #Ÿ]™]Ÿ_Ø'Ÿ~Ÿ~˜~Ø(+¯©°·±Ó(@ ß7;¨1¨T¨F©À Ø)+¨E¨7°6°(Ð';£à'*¨T¥z£ó -ñ) $8÷6 Ø˜˜t�•O�AØ�ðQ "ðR ”—‘—Ù×*Ñ*¨1¯6©6Ó2Ð2ð à!”—‘×!Ù×*Ñ*¨1¯6©6ÀÐ*ÓOÐOð "à'”×%Ñ%×'Ù—x‘x §¡Ó(¨3Õ.Ð.ð (à"”—‘×"Ñ" _¤U§]¡]§_¡_Ð7G´u·~±~×7GÑ7GÒGØ×*Ñ*Ø—F‘F˜I¨�O¸=ð +ó ð ð Ø—z‘z !“}Ð$r   c                ól   <€ V ^8„  d   QhRS[ P                  RS[S[ P                  .S[3,          RS[/# )r
   r@   Ú	conditionr   )r   r%   r   r   r   )r   r   s   "€r   r   r   &  s9   ø€ ÷ 
ñ 
Ù—‘ð
Ù(0±%·*±*°¹tÐ1CÕ(Dð
á	ñ
r   c                ód   € V P                  V4      pV! V4      '       d   RV,           R,           # V# )z|Visits 'n' and returns its string representation, parenthesized
if the condition function applied to the node returns True.
rj   rk   )r®   )r   r@   rã  r¸   s   &&& r   r�   ÚCGenerator._parenthesize_if&  s0   € ð ×Ñ˜QÓˆÙ�Q�<Š<Ø˜•7˜S•=Ð àˆHr   c                ó:   <€ V ^8„  d   QhRS[ P                  RS[/# r?   r$   )r   r   s   "€r   r   r   2  s#   ø€ ÷ Oñ O©U¯Z©Zð O¹Cñ Or   c                ó0   a € S P                  VV 3R l4      # )z$Common use case for _parenthesize_ifc                 ó0   <€ SP                  V 4      '       * # r3   )rˆ   )rŒ   r   s   &€r   r�   Ú8CGenerator._parenthesize_unless_simple.<locals>.<lambda>4  s   ø€ °d×6JÑ6JÈ1Ó6MÕ2Mr   )r�   rD   s   f&r   rZ   Ú&CGenerator._parenthesize_unless_simple2  s   ø€ à×$Ñ$ QÔ(MÓNÐNr   c                ó:   <€ V ^8„  d   QhRS[ P                  RS[/# r?   )r   r%   r   )r   r   s   "€r   r   r   6  s   ø€ ÷ 
ñ 
¡§¡ð 
±ñ 
r   c                ó°   € \        V\        P                  \        P                  \        P                  \        P
                  \        P                  34      # )ziReturns True for nodes that are "simple" - i.e. nodes that always
have higher precedence than operators.
)r‰   r   rA   rH   rV   r`   rh   rD   s   &&r   rˆ   ÚCGenerator._is_simple_node6  s6   € ô ØÜ�^‰^œUŸX™X¤u§~¡~´u·±ÌÏÉÐWó
ð 	
r   c                ó2   <€ V ^8„  d   Qh/ S[ ;R&   S[;R&   # )r
   r   r   )Úintr   )r   r   s   "€r   r   r      s   ø‡ ‚ ñ Ññ ñ Ñò r   r   N)F)Gr)   Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r   r   r-   r+   rE   rL   rS   r]   re   rn   rw   rŠ   r•   rž   r¤   r®   r¹   rÇ   rÎ   rÖ   rá   ræ   rî   rô   rú   r  r  r  r  r$  r-  r2  r7  r<  rD  rL  rR  rX  r]  rd  ri  rq  rv  r|  r�  r†  rŒ  r‘  r—  r�  r£  r©  r¯  r´  rí   r¸  r»  r  rµ   rÍ   r�   rZ   rˆ   Ú__annotate_func__Ú__static_attributes__Ú__classdictcell__)r   s   @r   r   r      sz  ø‡ € ñ÷	5ò 	5÷'ð '÷?ð ?÷Kð K÷ð ÷ð ÷ð ÷<ð <÷3ð 3÷'ð '÷
*ð *ð"ð 	ˆaðð 	ˆað	ð
 	ˆQðð 	ˆQðð 	ˆQðð 	ˆaðð 	ˆaðð 	ˆQðð 	ˆaðð 	ˆQðð 	ˆaðð 	ˆaðð 	ˆaðð  	ˆQð!ð" 	ˆQð#ð$ 	ˆQð%ð& 	ˆQð'ð( 	ˆQñ)€N÷.#/ð #/÷J;ð ;÷!ð !÷%ð %÷	ò 	÷ð ÷ð ÷Bð B÷+ð +÷+ð +÷@ð @÷>ð >÷ð ÷-ð -÷
ð 
÷ð ÷Jð J÷ð ÷Bð B÷ð ÷ð ÷ð ÷ð ÷	ð 	÷ð ÷ð ÷ð ÷ð ÷ð ÷
ð ÷ð ÷<ð <÷&ð &÷ð ÷=ð =÷+ð +÷<ð <÷ð ÷&ð &÷;ð ;÷;ð ;÷;ð ;÷ð ÷8Fð F÷Kð K÷(5ò (5÷T
ð 
ð ')Ø"÷	A%ò A%÷F
ð 
÷Oð O÷
ð 
÷Q ƒ r   r   N)Útypingr   r   r   r1   r   r   r¨   r   r   Ú<module>rø     s   ð÷ ,Ñ +å ÷o
ó o
r   