hyb
2026-01-07 c7f60dc7e9a36596f0e0d1787bd0cca4e9b57bcb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
Ë
Iñúh~Eãó&—ddlmZGd„de«Zy)é)Úc_astcó—eZdZdZd^d„Zd„Zd„Zd„Zd„Zd„Z    d„Z
d    „Z d
„Z d „Z d „Zid d“dd“dd“dd“dd“dd“dd“dd“dd“dd“dd“dd “d!d “d"d#“d$d#“d%d&“d'd&“d(d&i¥Zd)„Zd*„Zd+„Zd,„Zd^d-„Zd.„Zd/„Zd0„Zd1„Zd2„Zd3„Zd4„Zd5„Zd6„Zd7„Zd8„Zd9„Z d:„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„Z0dJ„Z1dK„Z2dL„Z3dM„Z4dN„Z5dO„Z6dP„Z7dQ„Z8dR„Z9dS„Z:dT„Z;dU„Z<d^dV„Z=dW„Z>gdXfdY„Z?dZ„Z@d[„ZAd\„ZBy])_Ú
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ó —d|_||_y)z“ Constructs C-code generator
 
            reduce_parentheses:
                if True, eliminates needless parentheses on binary operators
        éN)Ú indent_levelÚreduce_parentheses)Úselfr    s  úHH:\Change_password\venv_build\Lib\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ón—d|jjz}t|||j«|«S)NÚvisit_)Ú    __class__Ú__name__ÚgetattrÚ generic_visit)r
ÚnodeÚmethods   r ÚvisitzCGenerator.visits2€Ø˜DŸN™N×3Ñ3Ñ3ˆØ8Œwt˜V T×%7Ñ%7Ó8¸Ó>Ð>r cóZ‡—|€ydjˆfd„|j«D««S)NÚc3óF•K—|]\}}‰j|«–—Œy­w©N©r)Ú.0Úc_nameÚcr
s   €r ú    <genexpr>z+CGenerator.generic_visit.<locals>.<genexpr>'søèø€ÒJ©Y¨V°Q˜4Ÿ:™: aŸ=ÑJùsƒ!)ÚjoinÚchildren)r
rs` r rzCGenerator.generic_visit#s&ø€Ø ˆ<Øà—7‘7ÓJ¸$¿-¹-»/ÔJÓJÐ Jr có—|jSr)Úvalue©r
Úns  r Úvisit_ConstantzCGenerator.visit_Constant)s €Øw‰wˆr có—|jSr©Únamer(s  r Úvisit_IDzCGenerator.visit_ID,s €Øv‰vˆ r cóF—d}|jr|d|jzz }|S)Nz#pragmar)Ústring)r
r)Úrets   r Ú visit_PragmazCGenerator.visit_Pragma/s%€ØˆØ 8Š8Ø 3˜Ÿ™‘>Ñ !ˆC؈
r có€—|j|j«}|dz|j|j«zdzS)Nú[ú])Ú_parenthesize_unless_simpler-rÚ    subscript)r
r)Úarrrefs   r Úvisit_ArrayRefzCGenerator.visit_ArrayRef5s7€Ø×1Ñ1°!·&±&Ó9ˆØ˜‰|˜dŸj™j¨¯©Ó5Ñ5¸Ñ;Ð;r cóŽ—|j|j«}||jz|j|j«zSr)r6r-ÚtyperÚfield)r
r)Úsrefs   r Úvisit_StructRefzCGenerator.visit_StructRef9s6€Ø×/Ñ/°·±Ó7ˆØa—f‘f‰}˜tŸz™z¨!¯'©'Ó2Ñ2Ð2r có€—|j|j«}|dz|j|j«zdzS)Nú(ú))r6r-rÚargs)r
r)Úfrefs   r Úvisit_FuncCallzCGenerator.visit_FuncCall=s7€Ø×/Ñ/°·±Ó7ˆØc‰z˜DŸJ™J q§v¡vÓ.Ñ.°Ñ4Ð4r có—|jdk(rd|j|j«zS|j|j«}|jdk(rd|zS|jdk(rd|zS|j›|›S)NÚsizeofz
sizeof(%s)zp++z%s++zp--z%s--)ÚoprÚexprr6)r
r)Úoperands   r Ú visit_UnaryOpzCGenerator.visit_UnaryOpAsw€Ø 4‰48Ò ð  $§*¡*¨Q¯V©VÓ"4Ñ4Ð 4à×6Ñ6°q·v±vÓ>ˆG؏t‰tuŠ}Ø Ñ'Ð'Ø—‘˜’Ø Ñ'Ð'à!"§¢¡wÐ/Ð/r z||rz&&rú|éú^éú&éz==éz!=ú>éz>=ú<z<=z>>éz<<ú+éú-Ú*é    ú/ú%c󮇇—‰j‰jˆˆfd„«}‰j‰jˆˆfd„«}|›d‰j›d|›S)Ncóæ•—‰j|«xs]‰jxrOt|tj«xr3‰j
|j ‰j
‰j k\ Sr©Ú_is_simple_noder    Ú
isinstancerÚBinaryOpÚprecedence_maprG©Údr)r
s €€r ú<lambda>z+CGenerator.visit_BinaryOp.<locals>.<lambda>ksfø€˜4×/Ñ/°Ó2òMØ×-Ñ-òM´*¸QÄÇÁÓ2OòMØ×)Ñ)¨!¯$©$Ñ/°4×3FÑ3FÀqÇtÁtÑ3LÑLðN€r cóæ•—‰j|«xs]‰jxrOt|tj«xr3‰j
|j ‰j
‰j kD Srr_rds €€r rfz+CGenerator.visit_BinaryOp.<locals>.<lambda>wsfø€˜4×/Ñ/°Ó2òLØ×-Ñ-òL´*¸QÄÇÁÓ2OòLØ×)Ñ)¨!¯$©$Ñ/°$×2EÑ2EÀaÇdÁdÑ2KÑKðM€r r)Ú_parenthesize_ifÚleftÚrightrG)r
r)Úlval_strÚrval_strs``  r Úvisit_BinaryOpzCGenerator.visit_BinaryOp_sVù€ð×(Ñ(Ø F‰Fô NóOˆð×(Ñ(Ø G‰Gô MóNˆò
& q§t£t©XÐ6Ð6r có–—|j|jd„«}|j|j«›d|j›d|›S)Ncó6—t|tj«Sr)rarÚ
Assignment)r)s r rfz-CGenerator.visit_Assignment.<locals>.<lambda>s€¤j°´E×4DÑ4DÓ&E€r r)rhÚrvaluerÚlvaluerG)r
r)rls   r Úvisit_AssignmentzCGenerator.visit_Assignment|s=€Ø×(Ñ(ØŸH™HÙEóGˆð"ŸZ™Z¨¯©Õ1°1·4³4¹ÐBÐBr có8—dj|j«Sr)r$Únamesr(s  r Úvisit_IdentifierTypezCGenerator.visit_IdentifierType‚s€Øx‰x˜Ÿ™Ó Ð r có—t|tj«rd|j|«zdzSt|tjtj
f«rd|j|«zdzS|j|«S)Nú{ú}r@rA)rarÚInitListrÚExprListÚCompoundr(s  r Ú _visit_exprzCGenerator._visit_expr…se€Ü aœŸ™Ô (ؘŸ™ A›Ñ&¨Ñ,Ð ,Ü ˜œEŸN™N¬E¯N©NÐ;Ô <ؘŸ™ A›Ñ&¨Ñ,Ð ,à—:‘:˜a“=Ð  r cóø—|r |jn|j|«}|jr!|d|j|j«zz }|jr!|d|j |j«zz }|S)Nz : ú = )r-Ú_generate_declÚbitsizerÚinitr})r
r)Úno_typeÚss    r Ú
visit_DeclzCGenerator.visit_Declsh€ñˆAFŠF 4×#6Ñ#6°qÓ#9ˆØ 9Š9a˜5 4§:¡:¨a¯i©iÓ#8Ñ8Ñ8aØ 6Š6Ø ˜×)Ñ)¨!¯&©&Ó1Ñ1Ñ 1ˆA؈r có·—‰j|jd«}t|j«dkDr-|ddjˆfd„|jddD««zz }|S)Nrrú, c3óD•K—|]}‰j|d¬«–—Œy­w)T)rƒN)r…©r Údeclr
s  €r r#z,CGenerator.visit_DeclList.<locals>.<genexpr>šs&øèø€ò"=Ø(,ð#'§/¡/°$À /×"Eñ"=ùsƒ )rÚdeclsÚlenr$©r
r)r„s`  r Úvisit_DeclListzCGenerator.visit_DeclList—saø€Ø J‰Jq—w‘w˜q‘zÓ "ˆÜ ˆqw‰w‹<˜!Ò Ø ˜Ÿ    ™    ó"=Ø01·±¸¸° ô"=ó=ñ=ñ =ˆAàˆr có —d}|jr!|dj|j«dzz }||j|j«z }|S)Nrr)Ústorager$Ú_generate_typer;rs   r Ú visit_TypedefzCGenerator.visit_TypedefžsG€Ø ˆØ 9Š9a˜3Ÿ8™8 A§I¡IÓ.°Ñ4Ñ4aØ    ˆT×  Ñ   §¡Ó (Ñ(ˆØˆr cóŠ—d|j|jd¬«zdz}|dz|j|j«zS)Nr@F©Ú emit_declnamerAr)r‘Úto_typer6rHrs   r Ú
visit_CastzCGenerator.visit_Cast¤sC€Ø $×%Ñ% a§i¡i¸uÐ%ÓEÑ EÈÑ KˆØ3‰w˜×9Ñ9¸!¿&¹&ÓAÑAÐAr cóŠ—g}|jD]"}|j|j|««Œ$dj|«S©Nr‡©ÚexprsÚappendr}r$©r
r)Úvisited_subexprsrHs    r Úvisit_ExprListzCGenerator.visit_ExprList¨óD€ØÐØ—G‘Gò    <ˆDØ × #Ñ # D×$4Ñ$4°TÓ$:Õ ;ð    <ày‰yÐ)Ó*Ð*r cóŠ—g}|jD]"}|j|j|««Œ$dj|«Sr™ršrs    r Úvisit_InitListzCGenerator.visit_InitList®r r có(—|j|d¬«S)NÚenumr,©Ú_generate_struct_union_enumr(s  r Ú
visit_EnumzCGenerator.visit_Enum´s€Ø×/Ñ/°¸Ð/Ó?Ð?r cóV—dj|j|j««S)Nz _Alignas({}))ÚformatrÚ    alignmentr(s  r Ú visit_AlignaszCGenerator.visit_Alignas·s €Ø×$Ñ$ T§Z¡Z°· ± Ó%<Ó=Ð=r cóú—|js+dj|j«|j¬«Sdj|j«|j|j    |j«¬«S)Nz{indent}{name},
)Úindentr-z{indent}{name} = {value},
)r­r-r')r'r©rr-rr(s  r Úvisit_EnumeratorzCGenerator.visit_Enumeratorºsq€ØwŠwØ&×-Ñ-Ø×(Ñ(Ó*Ø—V‘Vð.óð ð
1×7Ñ7Ø×(Ñ(Ó*Ø—V‘VØ—j‘j §¡Ó)ð8óð r có‡—‰j|j«}d‰_‰j|j«}|jr5dj ˆfd„|jD««}|dz|zdz|zdzS|dz|zdzS)Nrú;
c3ó@•K—|]}‰j|«–—Œy­wrr)r Úpr
s  €r r#z+CGenerator.visit_FuncDef.<locals>.<genexpr>Ìsøèø€Ò!G°A $§*¡*¨Q§-Ñ!Gùóƒú
)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ˆHؘ$‘; Ñ)¨EÑ1°DÑ8¸4Ñ?Ð ?à˜$‘; Ñ%¨Ñ,Ð ,r có—d}|jD]z}t|tj«r||j    |«z }Œ2t|tj
«r||j    |«dzz }Œd||j    |«dzz }Œ||S)Nrr´r°)ÚextrarÚFuncDefrÚPragma)r
r)r„rºs    r Ú visit_FileASTzCGenerator.visit_FileASTÑs}€Ø ˆØ—5‘5ò    -ˆCܘ#œuŸ}™}Ô-ؐT—Z‘Z “_Ñ$‘ܘC¤§¡Ô.ؐT—Z‘Z “_ tÑ+Ñ+‘àT—Z‘Z “_ uÑ,Ñ,‘ð     -ðˆr có‡—‰j«dz}‰xjdz c_|jr'|djˆfd„|jD««z }‰xjdzc_|‰j«dzz }|S)Nú{
rLrc3ó@•K—|]}‰j|«–—Œy­wr©Ú_generate_stmt)r Ústmtr
s  €r r#z,CGenerator.visit_Compound.<locals>.<genexpr>àsøèø€ÒM°t˜×,Ñ,¨T×2ÑMùr³z}
)rrÚ block_itemsr$rs`  r Úvisit_CompoundzCGenerator.visit_CompoundÜsyø€Ø × Ñ Ó  %Ñ 'ˆØ ×Ò˜QÑÕØ =Š=Ø —‘ÓM¸q¿}¹}ÔMÓMÑ MˆAØ ×Ò˜QÑÕØ    ˆT× Ñ Ó   5Ñ (Ñ(ˆØˆr có‚—d|j|j«zdz|j|j«zdzS)Nr@z){ry)rr;r‚r(s  r Úvisit_CompoundLiteralz CGenerator.visit_CompoundLiteralås6€ØT—Z‘Z §¡Ó'Ñ'¨$Ñ.°·±¸A¿F¹FÓ1CÑCÀcÑIÐIr có—y)Nú;©r(s  r Úvisit_EmptyStatementzCGenerator.visit_EmptyStatementés€Ør cóL‡—djˆfd„|jD««S)Nr‡c3ó@•K—|]}‰j|«–—Œy­wrr)r Úparamr
s  €r r#z-CGenerator.visit_ParamList.<locals>.<genexpr>ísøèø€ÒA¨u˜Ÿ™ E×*ÑAùr³)r$Úparamsr(s` r Úvisit_ParamListzCGenerator.visit_ParamListìsø€Øy‰yÓA¸¿¹ÔAÓAÐAr cój—d}|jr!|d|j|j«zz }|dzS)NÚreturnrrÉ)rHrrs   r Ú visit_ReturnzCGenerator.visit_Returnïs2€Ø ˆØ 6Š61˜˜dŸj™j¨¯©Ó0Ñ0Ñ01ؐ3‰wˆr có—y)Nzbreak;rÊr(s  r Ú visit_BreakzCGenerator.visit_Breakôs€Ør có—y)Nz    continue;rÊr(s  r Úvisit_ContinuezCGenerator.visit_Continue÷s€Ør cóؗd|j|j«zdz}|d|j|j«zdzz }|d|j|j«zdzz }|S)Nr@z) ? z) : rA)r}ÚcondÚiftrueÚiffalsers   r Úvisit_TernaryOpzCGenerator.visit_TernaryOpúsk€Ø 4×#Ñ# A§F¡FÓ+Ñ +¨fÑ 4ˆØ    ˆS4×#Ñ# A§H¡HÓ-Ñ -°Ñ 6Ñ6ˆØ    ˆS4×#Ñ# A§I¡IÓ.Ñ .°Ñ 4Ñ4ˆØˆr có,—d}|jr||j|j«z }|dz }||j|jd¬«z }|jr6||j «dzz }||j|jd¬«z }|S)Nzif (ú)
T©Ú
add_indentzelse
)rÙrrÂrÚrÛrrs   r Úvisit_IfzCGenerator.visit_Ifs€Ø ˆØ 6Š61˜Ÿ
™
 1§6¡6Ó*Ñ*1Ø    ˆU‰
ˆØ    ˆT×  Ñ   §¡°dÐ  Ó ;Ñ;ˆØ 9Š9Ø ×"Ñ"Ó$ xÑ/Ñ /ˆAØ ×$Ñ$ Q§Y¡Y¸4Ð$Ó@Ñ @ˆA؈r cóp—d}|jr||j|j«z }|dz }|jr!|d|j|j«zz }|dz }|jr!|d|j|j«zz }|dz }||j    |j
d¬«z }|S)Nzfor (rÉrrÞTrß)r‚rrÙÚnextrÂrÃrs   r Ú    visit_ForzCGenerator.visit_For
s¦€Ø ˆØ 6Š61˜Ÿ
™
 1§6¡6Ó*Ñ*1Ø    ˆS‰ˆØ 6Š61˜˜dŸj™j¨¯©Ó0Ñ0Ñ01Ø    ˆS‰ˆØ 6Š61˜˜dŸj™j¨¯©Ó0Ñ0Ñ01Ø    ˆU‰
ˆØ    ˆT×  Ñ   §¡°DÐ  Ó 9Ñ9ˆØˆr có¨—d}|jr||j|j«z }|dz }||j|jd¬«z }|S)Núwhile (rÞTrß)rÙrrÂrÃrs   r Ú visit_WhilezCGenerator.visit_WhilesP€Ø ˆØ 6Š61˜Ÿ
™
 1§6¡6Ó*Ñ*1Ø    ˆU‰
ˆØ    ˆT×  Ñ   §¡°DÐ  Ó 9Ñ9ˆØˆr cóԗd}||j|jd¬«z }||j«dzz }|jr||j    |j«z }|dz }|S)Nzdo
Trßræz);)rÂrÃrrÙrrs   r Ú visit_DoWhilezCGenerator.visit_DoWhilesh€Ø ˆØ    ˆT×  Ñ   §¡°DÐ  Ó 9Ñ9ˆØ    ˆT× Ñ Ó   9Ñ ,Ñ,ˆØ 6Š61˜Ÿ
™
 1§6¡6Ó*Ñ*1Ø    ˆT‰    ˆØˆr có®—d}||j|j«z }|jr#|dz }||j|j«z }|dz }|S)Nz_Static_assert(ú,rA)rrÙÚmessagers   r Úvisit_StaticAssertzCGenerator.visit_StaticAssert$sS€Ø ˆØ    ˆTZ‰Z˜Ÿ™Ó ÑˆØ 9Š9Ø ‰HˆAØ —‘˜AŸI™IÓ&Ñ &ˆAØ    ˆS‰ˆØˆr cóˆ—d|j|j«zdz}||j|jd¬«z }|S)Nzswitch (rÞTrß)rrÙrÂrÃrs   r Ú visit_SwitchzCGenerator.visit_Switch-sA€Ø ˜Ÿ™ A§F¡FÓ+Ñ +¨eÑ 3ˆØ    ˆT×  Ñ   §¡°DÐ  Ó 9Ñ9ˆØˆr có–—d|j|j«zdz}|jD]}||j|d¬«z }Œ|S)Nzcase ú:
Trß)rrHÚstmtsr©r
r)r„rÃs    r Ú
visit_CasezCGenerator.visit_Case2sP€Ø d—j‘j §¡Ó(Ñ (¨5Ñ 0ˆØ—G‘Gò    <ˆDØ ×$Ñ$ T°dÐ$Ó;Ñ ;‰Að    <àˆr cóX—d}|jD]}||j|d¬«z }Œ|S)Nz    default:
Trß)ròrÂrós    r Ú visit_DefaultzCGenerator.visit_Default8s9€Ø ˆØ—G‘Gò    <ˆDØ ×$Ñ$ T°dÐ$Ó;Ñ ;‰Að    <àˆr cóX—|jdz|j|j«zS)Nrñ)r-rÂrÃr(s  r Ú visit_LabelzCGenerator.visit_Label>s$€Øv‰v˜‰~ × 3Ñ 3°A·F±FÓ ;Ñ;Ð;r có&—d|jzdzS)Nzgoto rÉr,r(s  r Ú
visit_GotozCGenerator.visit_GotoAs€Ø˜Ÿ™Ñ #Ñ%Ð%r có—y)Nz...rÊr(s  r Úvisit_EllipsisParamzCGenerator.visit_EllipsisParamDs€Ør có&—|j|d«S)NÚstructr¥r(s  r Ú visit_StructzCGenerator.visit_StructGs€Ø×/Ñ/°°8Ó<Ð<r có8—|j|j«Sr)r‘r;r(s  r Úvisit_TypenamezCGenerator.visit_TypenameJs€Ø×"Ñ" 1§6¡6Ó*Ð*r có&—|j|d«S)NÚunionr¥r(s  r Ú visit_UnionzCGenerator.visit_UnionMs€Ø×/Ñ/°°7Ó;Ð;r cóü—d}|jD]I}t|tj«r|d|jzz }Œ0|d|j    |«zdzz }ŒK|d|j |j «zz }|S)Nrú.r4r5r)r-rarÚIDrr}rH)r
r)r„r-s    r Úvisit_NamedInitializerz!CGenerator.visit_NamedInitializerPs|€Ø ˆØ—F‘Fò    2ˆDܘ$¤§¡Ô)ؐS˜4Ÿ9™9‘_Ñ$‘àS˜4Ÿ:™: dÓ+Ñ+¨cÑ1Ñ1‘ð        2ð
    
ˆUT×%Ñ% a§f¡fÓ-Ñ -Ñ-ˆØˆr có$—|j|«Sr©r‘r(s  r Úvisit_FuncDeclzCGenerator.visit_FuncDeclZs€Ø×"Ñ" 1Ó%Ð%r có(—|j|d¬«S©NFr”r
r(s  r Úvisit_ArrayDeclzCGenerator.visit_ArrayDecl]ó€Ø×"Ñ" 1°EÐ"Ó:Ð:r có(—|j|d¬«Sr r
r(s  r Úvisit_TypeDeclzCGenerator.visit_TypeDecl`rr có(—|j|d¬«Sr r
r(s  r Ú visit_PtrDeclzCGenerator.visit_PtrDeclcrr có®—|dvr|j}|j}n7|dk(sJ‚|j€dn|jj}|j}|dz|j
xsdz}|h|dz }||j «z }|xjdz c_|dz }|||«z }|xjdzc_||j «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      r r¦z&CGenerator._generate_struct_union_enumfsã€ð Ð&Ñ &Ø—g‘gˆGØ ×<Ñ<‰Mà˜6’>Ð !>ØŸ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ó8‡—djˆfd„|D««S)Nrc3ó@•K—|]}‰j|«–—Œy­wrrÁr‰s  €r r#z9CGenerator._generate_struct_union_body.<locals>.<genexpr>søèø€ÒE°Tt×*Ñ*¨4×0ÑEùr³©r$©r
rs` r rz&CGenerator._generate_struct_union_body~sø€Øw‰wÓE¸WÔEÓEÐEr cóD‡—djˆfd„|D««dddzS)Nrc3ó@•K—|]}‰j|«–—Œy­wrr)r r'r
s  €r r#z1CGenerator._generate_enum_body.<locals>.<genexpr>ƒsøèø€Ò>¨Ut—z‘z %×(Ñ>ùr³éþÿÿÿr´rrs` r rzCGenerator._generate_enum_bodys$ø€àw‰wÓ>°gÔ>Ó>¸sÀÐCÀdÑJÐJr có—t|«}|r|xjdz c_|j«}|r|xjdzc_|tjtj
tj tjtjtjtjtjtjtjtjtjtj f vr||j#|«zdzS|tj$fvr|j#|«S|tj&fvr||j#|«zS||j#|«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{rr|ÚIf)r
r)ràÚtypr­s     r rÂzCGenerator._generate_stmt…s€ô
1‹gˆÙ t×(Ò(¨AÑ-Õ(Ø×"Ñ"Ó$ˆÙ t×(Ò(¨AÑ-Õ(à Ü—
‘
œE×,Ñ,¬e¯j©j¼%¿-¹-Ü—‘¤§¡´·±ÄÇÁÜ—‘¤§¡´·±¼5¿=¹=Ü—‘ð     ñ  ð˜DŸJ™J q›MÑ)¨EÑ1Ð 1Ø ”U—^‘^Ð%Ñ %ð
—:‘:˜a“=Ð  Ø ”U—X‘XKÑ Ø˜DŸJ™J q›MÑ)Ð )à˜DŸJ™J q›MÑ)¨DÑ0Ð 0r cóT—d}|jrdj|j«dz}|jr!|dj|j«dzz }|jr$||j    |jd«dzz }||j |j «z }|S)z& Generation from a Decl node.
        rrr)Úfuncspecr$rÚalignrr‘r;rs   r r€zCGenerator._generate_decl£sŒ€ð ˆØ :Š:˜3Ÿ8™8 A§J¡JÓ/°#Ñ5qØ 9Š9a˜3Ÿ8™8 A§I¡IÓ.°Ñ4Ñ4aØ 7Š7A˜Ÿ™ A§G¡G¨A¡JÓ/°#Ñ5Ñ5AØ    ˆT×  Ñ   §¡Ó (Ñ(ˆØˆr Tcóö—t|«}|tjk(rèd}|jr!|dj    |j«dzz }||j |j«z }|j r|r |j nd}t|«D]d\}}t|tj«r|dk7r(t||dz
tj«rd|zdz}|dz }|jr!|dj    |j«dzz }||j |j«dzz }Œ¢t|tj«rS|dk7r(t||dz
tj«rd|zdz}|d|j |j«zdzz }Œt|tj«sŒ+|jr)d    dj    |j«›|rd|znd›}Œ`d
|z}Œg|r|d|zz }|S|tjk(r|j!|j«S|tj"k(r|j%|j|¬ «S|tj&k(rdj    |j(«dzS|tjtjtjfvr"|j%|j||gz|¬ «S|j |«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ˆð ”%—.‘.Ó  ØˆA؏wŠw˜˜SŸX™X a§g¡gÓ.°Ñ4Ñ4˜Ø —‘˜AŸF™FÓ#Ñ #ˆAà!"§¢± 1—:’:À2ˆDô
 )¨Ó3ó *‘ 8ܘh¬¯©Ô8ؘQšÜ" 9¨Q°©UÑ#3´U·]±]ÔCØ#&¨¡:°Ñ#3˜DؘC‘KDØ×)Ò)Ø §¡¨×);Ñ);Ó <¸sÑ BÑB˜Ø˜DŸJ™J x§|¡|Ó4°sÑ:Ñ:‘DÜ ¬%¯.©.Ô9ؘQšÜ" 9¨Q°©UÑ#3´U·]±]ÔCØ#&¨¡:°Ñ#3˜DؘC $§*¡*¨X¯]©]Ó";Ñ;¸cÑAÑA’DÜ ¬%¯-©-Ö8Ø—~“~Ø+.¯8©8°H·N±NÔ+CÙ9=¨3°ª:À2Ð+Eð Gšð # T™zšð' *ñ(Q˜# ™*‘_Q؈HØ ”E—J‘JÒ Ø×&Ñ& q§v¡vÓ.Ð .Ø ”E—N‘NÒ "Ø×&Ñ& q§v¡v¸}Ð&ÓMÐ MØ ”E×(Ñ(Ò (Ø—8‘8˜AŸG™GÓ$ sÑ*Ð *Ø ”U—_‘_¤e§m¡m´U·^±^ÐDÑ DØ×&Ñ& q§v¡v¨y¸A¸3©Ø7Dð'óFð Fð—:‘:˜a“=Ð  r cóH—|j|«}||«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Ó ˆÙ QŒ<ؘ‘7˜S‘=Ð  àˆHr có.‡—‰j|ˆfd„«S)z. Common use case for _parenthesize_if
        có(•—‰j|« Sr)r`)rer
s €r rfz8CGenerator._parenthesize_unless_simple.<locals>.<lambda>ïsø€°d×6JÑ6JÈ1Ó6MÐ2M€r )rhr(s` r r6z&CGenerator._parenthesize_unless_simpleìsø€ð×$Ñ$ QÓ(MÓNÐNr có°—t|tjtjtjtj
tj f«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ñs9€ô˜!œeŸn™n¬e¯h©h¼¿¹Ü#Ÿo™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ÿrrrr rrrr¦rrrÂr€r‘rhr6r`rÊr r rr s.„ñó    5ò'ò?òKò òòò <ò3ò5ò 0ð ð     ˆað ð     ˆað     ð
     ˆQð ð      ˆQð ð     ˆQð ð     ˆað ðqð ð     ˆQð ðað ð˜að ð"& qð ð     ˆað ðqð ð     ˆQð ðQð ð     ˆQð ðQð ð˜Qñ €Nò7ò:Cò !ò!óòòò Bò+ò +ò @ò>ò ò-ò    òòJòòBòò
òòò ò    òòòòò
ò ò <ò&òò=ò+ò<òò&ò;ò;ò;òò0FòKó1ò<ð+-¸dó3!òjòOó
@r rN)rrÚobjectrrÊr r ú<module>rJsðõôj@õj@r