....................................../////.===Shadow-Here===./////................................................ > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < ------------------------------------------------------------------------------------------------------------------- /////////////////////////////////////////////////////////////////////////////////////////////////////////////////// RIFF¤ WEBPVP8 ˜ ðÑ *ôô>‘HŸK¥¤"§£±¨àð enü¹%½_F‘åè¿2ºQú³íªú`N¿­3ÿƒügµJžaÿ¯ÿ°~¼ÎùnúîÞÖô•òíôÁÉß®Sm¥Ü/ ‡ó˜f£Ùà<˜„xëJ¢Ù€SO3x<ªÔ©4¿+ç¶A`q@Ì“Úñè™ÍÿJÌ´ª-˜ÆtÊÛL]Ïq*‘Ý”ì#ŸÌÏãY]@ê`¿ /ªfkØB4·®£ó z—Üw¥Pxù–ÞLШKÇN¾AkÙTf½è'‰g gÆv›Øuh~ a˜Z— ïj*á¥t d£“uÒ ¨`K˜¹ßþ]b>˜]_ÏÔ6W—è2r4x•íÖ…"ƒÖNîä!¦å Ú}ýxGøÌ —@ ;ÆÚŠ=ɾ1ý8lªË¥ô ^yf®Œ¢u&2©nÙÇ›ñÂñŒ³ aPo['½»øFùà­+4ê“$!lövlüÞ=;N®3ð‚õ›DÉKòÞ>ÄÍ ¥ˆuߤ#ˆ$6ù™¥îЇy’ÍB¼ çxÛ;X"WL£R÷͝*ó-¶Zu}º.s¸sšXqù–DþÿvªhüïwyŸ ¯é³lÀ:KCûÄ£Ëá\…­ ~—ýóî ¼ûûÜTÓüÇy…ŽÆvc»¾×U ñ¸žþоP÷¦ó:Ò¨¨5;Ð#&#ÖúñläÿÁœ GxÉ­/ñ‡áQðìYÉtÒw޼GÔ´zàÒò ð*ëzƒ•4~H]Ø‹f ñÓÈñ`NåWçs'ÆÏW^ø¹!XžµmQ5ÃËoLœÎ: ÞËÍ¥J ù…î èo£ßPÎñ¶ž8.Œ]ʵ~5›ÙË-ù*8ÙÖß±~ ©¹rÓê‚j¶d¸{^Q'˜±Crß ÚH—#¥¥QlÀ×ëã‡DÜ«èî þ&Çæžî;ŽÏºò6ÒLÃXy&ZŒ'j‚¢Ù€IßÚù+–MGi‰*jE€‘JcÜ ÓÌ EÏÚj]o˜ Þr <¾U ûŪæÍ/šÝH¥˜b”¼ ÁñßX GP›ï2›4WŠÏà×£…íÓk†¦H·ÅíMh–*nó÷à]ÁjCº€b7<ب‹¨5車bp2:Á[UªM„QŒçiNMa#<5›áËó¸HýÊ"…×Éw¹¦ì2º–x<›»a±¸3Weü®FÝ⑱ö–î–³|LPÈ~çð~Çå‡|º kD¢µÏàÆAI %1À% ¹Ò – ”ϝS¦‰4&¶£°à Öý”û_Ò Áw°A«Å€?mÇÛgHÉ/8)á¾ÛìáöŽP í¨PŸNÙµº¦‡§Ùš"ÿ«>+ªÕ`Ê÷‡‚ß Õû˜þãÇ-PÍ.¾XV‘€ dÜ"þ4¹ ±Oú‘©t¥¦FªÄÃÄ•b‚znýu½—#cDs˜ÃiÑOˆñ×QO=*IAÊ,¶ŽZƒ;‡wøXè%EÐk:F±Ú” .Ѽ+Áu&Ç`."pÈÉw o&¿dE6‘’EqTuK@Ì¥ã™À(Êk(h‰,H}RÀIXÛš3µ1©_OqÚÒJAñ$ÊÙÜ;D3çŒ[þùœh¬Ã³™ö6ç†NY".Ú‰ï[ªŸŒ '²Ð öø_¨ÂÉ9ué¶³ÒŠõTàîMØ#û¯gN‡bÙ놚X„ö …ÉeüÌ^J ‹€.œ$Æ)βÄeæW#óüßĺŸ€ ÀzwV 9oä»f4V*uB «Ë†¹ì¯žR霓æHXa=&“I4K;¯ç‹h×·"UŠ~<•╪Vêª&ÍSÃÆÅ?ÔqÎ*mTM ˜›µwêd#[C¡©§‘D<©àb†–ÁœøvH/,í:¯( ²£|4-„Æövv„Yͼ™^Á$ˆ„¢Û[6yB.åH*V¨æ?$=˜Ñ€•ñ·­(VlŸ‘ nÀt8W÷´Bûba?q9ú¶Xƒl«ÿ\ù¶’þòUÐj/õ¢Ìµ³g$ƒÎR!¸»|Oߍë’BhîÚÑ¢ñåŒJ„®„£2Ð3•ô02Nt…!£Í]Ïc½Qÿ?ˆ<&ÃA¾Ú,JˆijÌ#5yz„‰Î|ÊŽ5QÏ:‹ÐaóVÔxW—CpeÏzÐïíçôÿÅ_[hãsÐ_/ŽTÝ?BîˆííV$<¿i>²F¬_Eß¿ †bÊŒº­ÿ®Z H“C}”¬,Mp ý/Bá£w>˜YV°aƒúh+cŠ- r/[%|üUMHäQ°X»|û/@|°¥Ð !BÔ Ç¢Ä©š+Õì D«7ìN¶ŽðÔ " ƶ’ÖçtA‰Û×}{tþz­¾GÍ›k¹OEJR$ Â׃ «ëÁ"oÉôž$oUK(Ä)Ãz³Ê-‹êN[Ò3Œñbï8P 4ƒ×q¢bo|?<ÛX¬òÄͰL–±›(™ûG?ýË©ÚÄ–ÂDØÐ_Ç¡ô ¾–ÄÏø ×e8Ë©$ÄF¹Å‹ì[©óìl:F¾f´‹‹Xì²ï®\¬ôùƒ ÿat¥óèÒùHß0äe‚;ü×h:ÆWðHž=Ã8骣"kœ'Y?³}Tûè€>?0l›e1Lòñ„aæKÆw…hÖŠùW…ÈÆÄ0ši·›[pcwËþñiêíY/~-Á5˜!¿†A›™Mÿþ(±“t@â“ö2­´TG5yé]çå僳 .·ÍïçÝ7UÚ±Ð/Nè»,_Ï ùdj7\ï Wì4›„»c¸àešg#ÒÊ⥭áØo5‘?ÌdÝô¯ ¹kzsƒ=´#ëÉK›Ø´±-¥eW?‡çßtòTã…$Ý+qÿ±ƒ÷_3Ô¥í÷:æ–ž<·Ö‡‰Å¢ š‡%Ô—utÌÈìðžgÖÀz²À—ï÷Óîäõ{K'´È÷³yaÏÁjƒô}ž§®æÊydÕÈë5¯èˆõvÕ©ã*çD„ “z„Ó‡^^xÂ3M§A´JG‚öï 3W'ˆ.OvXè¡ÊÕª?5º7†˜(˜Ç¶#çê’¶!ÌdZK§æ 0fãaN]òY³RV ™î$®K2R¨`W!1Ôó\;Ý ýB%qæK•&ÓÈe9È0êI±žeŸß -ú@žQr¦ ö4»M¼Áè¹µmw 9 EÆE_°2ó„ŸXKWÁ×Hóì^´²GѝF©óäR†¦‰ç"V»eØ<3ùd3ÿÚ¤Žú“Gi" —‘_ÙËÎ~Üö¯¥½Î»üŸEÚŽåmÞþí ;ÞólËΦMzA"Âf(´òá;Éï(/7½ûñÌ­cïÕçлþÝz¾-ÍvÑ“pH­–ðÓj$¸Äû¤‚‘ãUBË-n“2åPkS5&‹Â|+g^œ®Ì͆d!OïäîU«c;{Û!ÅŽ«ëZ9Ókóˆ]¯ƒ›né `ÇÒ+tÆš (ØKá¾—=3œ®•vuMñg²\ï Ec€ 05±d™‡×iÇ×›UúvÌ¢£Èþ¡ÕØô¶ßÎA"ß±#Ö²ˆÊŸ¦*Ä~ij|àø.-¼'»Ú¥£h ofº¦‡VsR=N½„Î v˜Z*SÌ{=jÑB‹tê…;’HžH¯8–îDù8ñ¢|Q•bÛçš–‹m³“ê¨ åÏ^m¬Žãþ©ïêO‡½6] µÆ„Ooòü ²x}N¦Ë3ïé¿»€›HA˜m%çÞ/¿í7Fø“‹léUk)É°Œµ8Q8›:ÀŠeT*šõ~ôڝG6 ¢}`ùH­–”¡k ‰P1>š†®9z11!X wKfmÁ¦xÑ,N1Q”–æB¶M…ÒÃv6SMˆhU¬ÊPŽï‘öj=·CŒ¯u¹ƒVIЃsx4’ömÛýcå¡¶7ßŠß 57^\wÒÐÆ k§h,Œý î«q^R½3]J¸ÇðN ‚çU¬ôº^Áì} ³f©Õœ§ˆã:FÄÈ‚é(€™?àýÓüè1Gô£¼éj‚OÅñ  #>×—ßtà 0G¥Åa뀐kßhc™À_ÉñÞ#±)GD" YîäË-ÿÙ̪ ¹™a¯´¢E\ÝÒö‚;™„ë]_ p8‰o¡ñ+^÷ 3‘'dT4œŽ ðVë½° :¬víÑ«£tßÚS-3¶“þ2 †üüʨòrš¹M{É_¤`Û¨0ìjœøJ‡:÷ÃáZ˜†@GP&œÑDGÏs¡þ¦þDGú‘1Yá9Ôþ¼ ûø…§÷8&–ÜÑnÄ_m®^üÆ`;ÉVÁJ£?â€-ßê}suÍ2sõA NÌúA磸‘îÿÚ»ƒìö·á¿±tÑÐ"Tÿü˜[@/äj¬€uüªìù¥Ý˜á8Ý´sõj 8@rˆð äþZÇD®ÿUÏ2ùôõrBzÆÏÞž>Ì™xœ“ wiÎ×7_… ¸ \#€MɁV¶¥üÕÿPÔ9Z‡ø§É8#H:ƒ5ÀÝå9ÍIŒ5åKÙŠ÷qÄ>1AÈøžj"µÂд/ªnÀ qªã}"iŸBå˜ÓÛŽ¦…&ݧ;G@—³b¯“•"´4í¨ôM¨åñC‹ïùÉó¯ÓsSH2Ý@ßáM‡ˆKÀªÛUeø/4\gnm¥‹ŸŒ qÄ b9ÞwÒNÏ_4Ég³ú=܆‚´ •â¥õeíþkjz>éÚyU«Íӝ݃6"8/ø{=Ô¢»G¥ äUw°W«,ô—¿ãㆅү¢³xŠUû™yŒ (øSópÐ 9\åTâ»—*oG$/×ÍT†Y¿1¤Þ¢_‡ ¼ „±ÍçèSaÓ 3ÛMÁBkxs‰’R/¡¤ˆÙçª(*õ„üXÌ´ƒ E§´¬EF"Ù”R/ÐNyÆÂ^°?™6¡œïJ·±$§?º>ÖüœcNÌù¯G ‹ñ2ЁBB„^·úìaz¨k:#¨Æ¨8LÎõލ£^§S&cŒÐU€ü(‡F±Š¼&P>8ÙÁ ‰ p5?0ÊÆƒZl¸aô š¼¡}gÿ¶zÆC²¹¬ÎÖG*HB¡O<º2#ñŒAƒ–¡B˜´É$¥›É:FÀÔx¾u?XÜÏÓvN©RS{2ʈãk9rmP¼Qq̳ è¼ÐFׄ^¡Öì fE“F4A…!ì/…¦Lƒ… … $%´¾yã@CI¬ á—3PþBÏNÿ<ý°4Ü ËÃ#ØÍ~âW«rEñw‹eùMMHß²`¬Öó½íf³:‹k˜¯÷}Z!ã¿<¥,\#öµÀ¯aÒNÆIé,Ћ–lŽ#Àæ9ÀÒS·I’½-Ïp Äz¤Š Â* ­íÄ9­< h>׍3ZkËU¹§˜ŒŠ±f­’¤º³Q ÏB?‹#µíÃ¥®@(Gs«†vI¥Mµ‹Á©e~2ú³ÁP4ìÕi‚²Ê^ö@-DþÓàlÜOÍ]n"µã:žpsŽ¢:! Aõ.ç~ÓBûH÷JCÌ]õVƒd «ú´QÙEA–¯¯Œ!.ˆˆëQ±ù œ·Ì!Õâ )ùL„ÅÀlÚè5@B…o´Æ¸XÓ&Û…O«˜”_#‡ƒ„ûÈt!¤ÁÏ›ÎÝŠ?c9 â\>lÓÁVÄÑ™£eØY]:fÝ–—ù+p{™ðè û³”g±OƒÚSù£áÁÊ„ä,ï7š²G ÕÌBk)~ÑiCµ|h#u¤¶îK¨² #²vݯGãeÖ϶ú…¾múÀ¶þÔñ‚Š9'^($¤§ò “š½{éúp÷J›ušS¹áªCÂubÃH9™D™/ZöØÁ‡¦ÝÙŸ·kð*_”.C‹{áXó€‡c¡c€§/šò/&éš÷,àéJþ‰X›fµ“C¨œ®r¬"kL‰Â_q…Z–.ÉL~O µ›zn‚¹À¦Öª7\àHµšÖ %»ÇníV[¥*Õ;ƒ#½¾HK-ÖIÊdÏEÚ#=o÷Óò³´Š: Ç?{¾+9›–‘OEáU·S€˜j"ÄaÜ ŒÛWt› á–c#a»pÔZÞdŽtWê=9éöÊ¢µ~ ë ;Öe‡Œ®:bî3±ýê¢wà¼îpêñ¹¾4 zc¾ðÖÿzdêŒÑÒŝÀ‰s6¤í³ÎÙB¿OZ”+F¤á‡3@Ñëäg©·Ž ˆèª<ù@É{&S„œÕúÀA)‰h:YÀ5^ÂÓŒ°õäU\ ùËÍû#²?Xe¬tu‰^zÒÔãë¼ÛWtEtû …‚g¶Úüâî*moGè¨7%u!]PhÏd™Ý%Îx: VÒ¦ôÊD3ÀŽKÛËãvÆî…N¯ä>Eró–ð`5 Œ%u5XkñÌ*NU%¶áœÊ:Qÿú»“úzyÏ6å-၇¾ ´ ÒÊ]y žO‘w2Äøæ…H’²f±ÎÇ.ª|¥'gîV•Ü .̘¯€šòü¤U~Ù†*¢!?ò wý,}´°ÔÞnïoKq5µb!áÓ3"vAßH¡³¡·G(ÐÎ0Îò¼MG!/ài®@—¬04*`…«é8ªøøló“ˆÊ”èù¤…ßÊoÿé'ËuÌÖ5×È¡§ˆˆfŽë9}hìâ_!!¯  B&Ëö¶‰ÀAÙNVŸ Wh›¸®XÑJì¨ú“¿÷3uj²˜¨ÍÎìë±aúŠÝå¯ð*Ó¨ôJ“yºØ)m°WýOè68†ŸÏ2—‰Ïüꪫٚ¥‹l1 ø ÏÄFjêµvÌbü¦èÝx:X±¢H=MÐß—,ˆÉÇ´(9ú¾^ÅÚ4¿m‡$âX‘å%(AlZo@½¨UOÌÕ”1ø¸jÎÀÃÃ_ µ‘Ü.œº¦Ut: Æï’!=¯uwû#,“pþÇúŒø(é@?³ü¥‘Mo §—s@Œ#)§ŒùkL}NOÆêA›¸~r½¼ÙA—HJ«eˆÖ´*¡ÓpÌŸö.m<-"³ûÈ$¬_6­åf£ïÚâj1y§ÕJ½@dÞÁr&Í\Z%D£Íñ·AZ Û³øüd/ªAi†/Й~  ‡âĮҮÏh§°b—›Û«mJžòG'[ÈYýŒ¦9psl ýÁ ®±f¦x,‰½tN ‚Xª9 ÙÖH.«Lo0×?͹m¡å†Ѽ+›2ƒF ±Ê8 7Hցϓ²Æ–m9…òŸï]Â1äN†VLâCˆU .ÿ‰Ts +ÅÎx(%¦u]6AF Š ØF鈄‘ |¢¶c±soŒ/t[a¾–û:s·`i햍ê›ËchÈ…8ßÀUÜewŒðNOƒõD%q#éû\9¤x¹&UE×G¥ Í—™$ð E6-‡¼!ýpãÔM˜ Âsìe¯ñµK¢Ç¡ùôléœ4Ö£”À Š®Ðc ^¨À}ÙËŸ§›ºê{ÊuÉC ×Sr€¤’fÉ*j!úÓ’Gsùìoîßîn%ò· àc Wp÷$¨˜)û»H ×8ŽÒ€Zj¤3ÀÙºY'Ql¦py{-6íÔCeiØp‘‡XÊîÆUߢ܂ž£Xé¼Y8þ©ëgñß}é.ÎógÒ„ÃØËø¯»™§Xýy M%@NŠ À(~áÐvu7&•,Ù˜ó€uP‡^^®=_E„jt’ 403WebShell
403Webshell
Server IP : 198.54.126.4  /  Your IP : 216.73.216.178
Web Server : Apache
System : Linux host55.registrar-servers.com 4.18.0-513.18.1.lve.2.el8.x86_64 #1 SMP Sat Mar 30 15:36:11 UTC 2024 x86_64
User : aeaw ( 7508)
PHP Version : 8.1.33
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /opt/cloudlinux/venv/lib/python3.11/site-packages/pycparser/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /opt/cloudlinux/venv/lib/python3.11/site-packages/pycparser/__pycache__/c_generator.cpython-311.pyc
�

�hlE��.�ddlmZGd�de��ZdS)�)�c_astc��eZdZdZd_d�Zd�Zd�Zd�Zd�Zd�Z	d	�Z
d
�Zd�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�Z<d_dW�Z=dX�Z>gdYfdZ�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  �f/builddir/build/BUILD/cloudlinux-venv-1.0.8/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�	<genexpr>z+CGenerator.generic_visit.<locals>.<genexpr>'s1�����J�J�Y�V�Q�4�:�:�a�=�=�J�J�J�J�J�Jr
)�join�children)r
rs` rrzCGenerator.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<=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�<lambda>z+CGenerator.visit_BinaryOp.<locals>.<lambda>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 ��rrfz+CGenerator.visit_BinaryOp.<locals>.<lambda>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 rrfz-CGenerator.visit_Assignment.<locals>.<lambda>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  �rr#z,CGenerator.visit_DeclList.<locals>.<genexpr>�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  �rr#z+CGenerator.visit_FuncDef.<locals>.<genexpr>�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  �rr#z,CGenerator.visit_Compound.<locals>.<genexpr>�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  �rr#z-CGenerator.visit_ParamList.<locals>.<genexpr>�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�<�<�<r
c�6�|�|j��Sr)r�r;r(s  r�visit_TypenamezCGenerator.visit_TypenameJs���"�"�1�6�*�*�*r
c�.�|�|d��S)N�unionr�r(s  r�visit_UnionzCGenerator.visit_UnionMs���/�/��7�;�;�;r
c���d}|jD]H}t|tj��r|d|jzz
}�*|d|�|��zdzz
}�I|d|�|j��zz
}|S)Nr�.r4r5r~)r-rar�IDrr|rH)r
r)r�r-s    r�visit_NamedInitializerz!CGenerator.visit_NamedInitializerPs������F�	2�	2�D��$���)�)�
2��S�4�9�_�$����S�4�:�:�d�+�+�+�c�1�1���	�U�T�%�%�a�f�-�-�
-�-���r
c�,�|�|��Sr�r�r(s  r�visit_FuncDeclzCGenerator.visit_FuncDeclZs���"�"�1�%�%�%r
c�0�|�|d���S�NFr�rr(s  r�visit_ArrayDeclzCGenerator.visit_ArrayDecl]����"�"�1�E�"�:�:�:r
c�0�|�|d���Srrr(s  r�visit_TypeDeclzCGenerator.visit_TypeDecl`r
r
c�0�|�|d���Srrr(s  r�
visit_PtrDeclzCGenerator.visit_PtrDeclcr
r
c�h�|dvr|j}|j}n$|dksJ�|j�dn|jj}|j}|dz|jpdz}|�i|dz
}||���z
}|xjdz
c_|dz
}|||��z
}|xjdzc_||���d	zz
}|S)
zq Generates code for structs, unions, and enums. name should be
            'struct', 'union', or 'enum'.
        )r�rr�Nrrr�rLr�ry)r��_generate_struct_union_body�values�enumerators�_generate_enum_bodyr-rr)r
r)r-�members�
body_functionr�s      rr�z&CGenerator._generate_struct_union_enumfs����&�&�&��g�G� �<�M�M��6�>�>�>�>��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  �rr#z9CGenerator._generate_struct_union_body.<locals>.<genexpr>s1�����E�E�T�t�*�*�4�0�0�E�E�E�E�E�Er
�r$�r
rs` rrz&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  �rr#z1CGenerator._generate_enum_body.<locals>.<genexpr>�s/�����>�>�U�t�z�z�%�(�(�>�>�>�>�>�>r
���r�rrs` rrzCGenerator._generate_enum_body�s8����w�w�>�>�>�>�g�>�>�>�>�>�s��s�C�d�J�Jr
c��t|��}|r|xjdz
c_|���}|r|xjdzc_|tjtjtjtjtjtj	tj
tjtj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     rr�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   rrzCGenerator._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
}|jr |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	         rr�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    rrhzCGenerator._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 �rrfz8CGenerator._parenthesize_unless_simple.<locals>.<lambda>�s���d�6J�6J�1�6M�6M�2M�r
)rhr(s` rr6z&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  rr`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
rrr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�<module>rIsa��������j@�j@�j@�j@�j@��j@�j@�j@�j@�j@r

Youez - 2016 - github.com/yon3zu
LinuXploit