Files
ServerSync/lib/pycparser/__pycache__/c_generator.cpython-314.pyc

144 lines
45 KiB
Plaintext
Raw Normal View History

2026-02-12 02:28:23 +02:00
+
t<10>i<EFBFBD>P<00><00>:<00>^RIHtHtHt^RIHt!RR4tR#)<06>)<03>Callable<6C>List<73>Optional)<01>c_astc<00>a<00>]tRt^toRtR<>V3RlRlltV3RlRltV3RlRltV3RlR ltV3R
lR lt V3R lR lt
V3RlRlt V3RlRlt V3RlRlt V3RlRltV3RlRlt/R^bR^bR^bR^bR^bR^bR^bR^bR ^bR!^bR"^bR#^bR$^bR%^bR&^bR'^ bR(^ bR)^ /CtV3R*lR+ltV3R,lR-ltV3R.lR/ltV3R0lR1ltR<>V3R2lR3lltV3R4lR5ltV3R6lR7ltV3R8lR9ltV3R:lR;ltV3R<lR=ltV3R>lR?ltV3R@lRAltV3RBlRCltV3RDlREltV3RFlRGltV3RHlRIlt V3RJlRKlt!V3RLlRMlt"V3RNlROlt#V3RPlRQlt$V3RRlRSlt%V3RTlRUlt&V3RVlRWlt'V3RXlRYlt(V3RZlR[lt)V3R\lR]lt*V3R^lR_lt+V3R`lRalt,V3RblRclt-V3RdlRelt.V3RflRglt/V3RhlRilt0V3RjlRklt1V3RllRmlt2V3RnlRolt3V3RplRqlt4V3RrlRslt5V3RtlRult6V3RvlRwlt7V3RxlRylt8V3RzlR{lt9V3R|lR}lt:V3R~lRlt;V3R<>lR<>lt<V3R<>lR<>lt=R<>V3R<>lR<>llt>V3R<>lR<>lt?.R<>3V3R<>lR<>llt@V3R<>lR<>ltAV3R<>lR<>ltBV3R<>lR<>ltCV3R<>ltDR<44>tEVtFR<46>#)<29><>
CGeneratorz<EFBFBD>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<00>$<<01>V^8<>dQhRS[RR/#)<04><00>reduce_parentheses<65>returnN)<01>bool)<02>format<61> __classdict__s"<22><></tmp/pip-target-zhdecbcm/lib/python/pycparser/c_generator.py<70> __annotate__<5F>CGenerator.__annotate__s<00><><00> 5<> 5<>4<EFBFBD> 5<>D<EFBFBD> 5<>c <0C> <00>^VnWnR#)zrConstructs C-code generator
reduce_parentheses:
if True, eliminates needless parentheses on binary operators
N<EFBFBD><02> indent_levelr )<02>selfr s&&r<00>__init__<5F>CGenerator.__init__s<00><00><1E><04><19>"4<>rc<00> <<01>V^8<>dQhRS[/#)r
r )<01>str)rrs"<22>rrr"s<00><><00>'<27>'<27>c<EFBFBD>'rc<08>(<00>RVP,#<00><01> )r)rs&r<00> _make_indent<6E>CGenerator._make_indent"s<00><00><12>T<EFBFBD>&<26>&<26>&<26>&rc<00>:<<01>V^8<>dQhRS[PRS[/#<00>r
<00>noder <00>r<00>Noder)rrs"<22>rrr%s<00><><00>?<3F>?<3F>%<25>*<2A>*<2A>?<3F><13>?rc<08>t<00>RVPP,p\WVP4!V4#)<01>visit_)<04> __class__<5F>__name__<5F>getattr<74> generic_visit)rr#<00>methods&& r<00>visit<69>CGenerator.visit%s.<00><00><19>D<EFBFBD>N<EFBFBD>N<EFBFBD>3<>3<>3<><06><16>t<EFBFBD>T<EFBFBD>%7<>%7<>8<><14>><3E>>rc<00>J<<01>V^8<>dQhRS[S[P,RS[/#r")rrr%r)rrs"<22>rrr)s(<00><><00>K<01>K<01>(<28>5<EFBFBD>:<3A>:<3A>"6<>K<01>3<EFBFBD>Krc<08>ba<00>VfR#RPV3RlVP444#)N<>c3<00>J<"<00>TFwrSPV4x<00>K R#5i<01>N<>r-)<04>.0<EFBFBD>c_name<6D>crs& <20>r<00> <genexpr><3E>+CGenerator.generic_visit.<locals>.<genexpr>-s<00><><00><00>J<>/<2F>Y<EFBFBD>V<EFBFBD>4<EFBFBD>:<3A>:<3A>a<EFBFBD>=<3D>=<3D>/<2F><><00> #)<02>join<69>children)rr#sf&rr+<00>CGenerator.generic_visit)s&<00><><00> <0F><<3C><15><15>7<EFBFBD>7<EFBFBD>J<>$<24>-<2D>-<2D>/<2F>J<>J<> Jrc<00>:<<01>V^8<>dQhRS[PRS[/#<00>r
<00>nr )r<00>Constantr)rrs"<22>rrr/s<00><><00><17><17><05><0E><0E><17>3<EFBFBD>rc<08><00>VP#r3)<01>value<75>rr@s&&r<00>visit_Constant<6E>CGenerator.visit_Constant/s <00><00><10>w<EFBFBD>w<EFBFBD>rc<00>:<<01>V^8<>dQhRS[PRS[/#r?)r<00>IDr)rrs"<22>rrr2s<00><><00><16><16>%<25>(<28>(<28><16>s<EFBFBD>rc<08><00>VP#r3<00><01>namerDs&&r<00>visit_ID<49>CGenerator.visit_ID2s <00><00><10>v<EFBFBD>v<EFBFBD> rc<00>:<<01>V^8<>dQhRS[PRS[/#r?)r<00>Pragmar)rrs"<22>rrr5s<00><><00><13><13>e<EFBFBD>l<EFBFBD>l<EFBFBD><13>s<EFBFBD>rc<08>b<00>RpVP'dVRVP,, pV#)z#pragmar)<01>string)rr@<00>rets&& r<00> visit_Pragma<6D>CGenerator.visit_Pragma5s'<00><00><17><03> <0C>8<EFBFBD>8<EFBFBD>8<EFBFBD> <0F>3<EFBFBD><11><18><18>><3E> !<21>C<EFBFBD><12>
rc<00>:<<01>V^8<>dQhRS[PRS[/#r?)r<00>ArrayRefr)rrs"<22>rrr;s<00><><00><<3C><<3C><05><0E><0E><<3C>3<EFBFBD><rc<08><><00>VPVP4pVR,VPVP4,R,#)<02>[<5B>])<04>_parenthesize_unless_simplerKr-<00> subscript)rr@<00>arrrefs&& r<00>visit_ArrayRef<65>CGenerator.visit_ArrayRef;s7<00><00><15>1<>1<>!<21>&<26>&<26>9<><06><15><03>|<7C>d<EFBFBD>j<EFBFBD>j<EFBFBD><11><1B><1B>5<>5<><03>;<3B>;rc<00>:<<01>V^8<>dQhRS[PRS[/#r?)r<00> StructRefr)rrs"<22>rrr?s<00><><00>3<>3<><15><1F><1F>3<>S<EFBFBD>3rc<08><><00>VPVP4pW!P,VPVP4,#r3)rZrK<00>typer-<00>field)rr@<00>srefs&& r<00>visit_StructRef<65>CGenerator.visit_StructRef?s4<00><00><13>/<2F>/<2F><01><06><06>7<><04><13>f<EFBFBD>f<EFBFBD>}<7D>t<EFBFBD>z<EFBFBD>z<EFBFBD>!<21>'<27>'<27>2<>2<>2rc<00>:<<01>V^8<>dQhRS[PRS[/#r?)r<00>FuncCallr)rrs"<22>rrrCs<00><><00>'<27>'<27><05><0E><0E>'<27>3<EFBFBD>'rc<08><><00>VPVP4pVPeVPVP4MRpVR,V,R,#)Nr1<00>(<28>))rZrK<00>argsr-)rr@<00>frefrls&& r<00>visit_FuncCall<6C>CGenerator.visit_FuncCallCsG<00><00><13>/<2F>/<2F><01><06><06>7<><04>%&<26>V<EFBFBD>V<EFBFBD>%7<>t<EFBFBD>z<EFBFBD>z<EFBFBD>!<21>&<26>&<26>!<21>R<EFBFBD><04><13>c<EFBFBD>z<EFBFBD>D<EFBFBD> <20>3<EFBFBD>&<26>&rc<00>:<<01>V^8<>dQhRS[PRS[/#r?)r<00>UnaryOpr)rrs"<22>rrrHs<00><><00>*<2A>*<2A>u<EFBFBD>}<7D>}<7D>*<2A><13>*rc<08>Z<00>VP;R8Xd!RVPVP4 R2#;R8Xd"VPVP4pV R2#R8Xd!VPVP4pV R2#VPVP4pVP V 2#)<07>sizeofzsizeof(rkzp++z++zp--z--)<04>opr-<00>exprrZ)rr@<00>operands&& r<00> visit_UnaryOp<4F>CGenerator.visit_UnaryOpHs<><00><00><0F>d<EFBFBD>d<EFBFBD><19>!<21><14><1A><1A>A<EFBFBD>F<EFBFBD>F<EFBFBD>!3<> 4<>A<EFBFBD>6<>6<><16><1E>:<3A>:<3A>1<EFBFBD>6<EFBFBD>6<EFBFBD>B<><07>!<21><19>"<22>~<7E>%<25><16><1E>:<3A>:<3A>1<EFBFBD>6<EFBFBD>6<EFBFBD>B<><07>!<21><19>"<22>~<7E>%<25><12><1E>:<3A>:<3A>1<EFBFBD>6<EFBFBD>6<EFBFBD>B<><07><1B>$<24>$<24><16><07>y<EFBFBD>)<29>)rz||z&&<26>|<7C>^<5E>&z==z!=<3D>>z>=<3D><z<=z>>z<<<3C>+<2B>-<2D>*<2A>/<2F>%c<00>:<<01>V^8<>dQhRS[PRS[/#r?)r<00>BinaryOpr)rrs"<22>rrrps<00><><00>#/<2F>#/<2F><05><0E><0E>#/<2F>3<EFBFBD>#/rc<08><>aa<01>SPSPVV3Rl4pSPSPVV3Rl4pV RSP RV 2#)c<00>"<<02>SPV4;'grSP;'d^\V\P4;'d<SP
VP ,SP
SP ,8<>'*#r3<00><07>_is_simple_noder <00>
isinstancerr<><00>precedence_maprt<00><03>dr@rs&<26><>r<00><lambda><3E>+CGenerator.visit_BinaryOp.<locals>.<lambda>|sw<00><><00><14>$<24>$<24>Q<EFBFBD>'<27>K<01>K<01><17>*<2A>*<2A>K<01>K<01><1E>q<EFBFBD>%<25>.<2E>.<2E>1<>K<01>K<01><18>'<27>'<27><01><04><04>-<2D><14>1D<31>1D<31>Q<EFBFBD>T<EFBFBD>T<EFBFBD>1J<31>J<> rc<00>"<<02>SPV4;'grSP;'d^\V\P4;'d<SP
VP ,SP
SP ,8<>'*#r3r<>r<>s&<26><>rr<>r<><00>sw<00><><00><14>$<24>$<24>Q<EFBFBD>'<27>J<01>J<01><17>*<2A>*<2A>J<01>J<01><1E>q<EFBFBD>%<25>.<2E>.<2E>1<>J<01>J<01><18>'<27>'<27><01><04><04>-<2D><04>0C<30>0C<30>A<EFBFBD>D<EFBFBD>D<EFBFBD>0I<30>I<> rr)<04>_parenthesize_if<69>left<66>rightrt)rr@<00>lval_str<74>rval_strsff r<00>visit_BinaryOp<4F>CGenerator.visit_BinaryOpps\<00><><00><18>(<28>(<28> <0A>F<EFBFBD>F<EFBFBD> <0E>
<EFBFBD><08> <18>(<28>(<28> <0A>G<EFBFBD>G<EFBFBD> <0E>
<EFBFBD><08><1B><1A>1<EFBFBD>Q<EFBFBD>T<EFBFBD>T<EFBFBD>F<EFBFBD>!<21>H<EFBFBD>:<3A>.<2E>.rc<00>:<<01>V^8<>dQhRS[PRS[/#r?)r<00>
Assignmentr)rrs"<22>rrr<00>s!<00><><00>;<3B>;<3B>%<25>"2<>"2<>;<3B>s<EFBFBD>;rc<08><><00>VPVPR4pVPVP4 RVP RV 2#)c<00>6<00>\V\P4#r3)r<>rr<>)r@s&rr<><00>-CGenerator.visit_Assignment.<locals>.<lambda><3E>s<00><00>
<EFBFBD>1<EFBFBD>e<EFBFBD>.><3E>.><3E> ?rr)r<><00>rvaluer-<00>lvaluert)rr@r<>s&& r<00>visit_Assignment<6E>CGenerator.visit_Assignment<6E>sG<00><00><17>(<28>(<28> <0A>H<EFBFBD>H<EFBFBD>?<3F>
<EFBFBD><08><17>*<2A>*<2A>Q<EFBFBD>X<EFBFBD>X<EFBFBD>&<26>'<27>q<EFBFBD><11><14><14><06>a<EFBFBD><08>z<EFBFBD>:<3A>:rc<00>:<<01>V^8<>dQhRS[PRS[/#r?)r<00>IdentifierTyper)rrs"<22>rrr<00>s!<00><><00>!<21>!<21>e<EFBFBD>&:<3A>&:<3A>!<21>s<EFBFBD>!rc<08>8<00>RPVP4#r)r;<00>namesrDs&&r<00>visit_IdentifierType<70>CGenerator.visit_IdentifierType<70>s<00><00><12>x<EFBFBD>x<EFBFBD><01><07><07> <20> rc<00>:<<01>V^8<>dQhRS[PRS[/#r?r$)rrs"<22>rrr<00>s<00><><00>%<25>%<25>U<EFBFBD>Z<EFBFBD>Z<EFBFBD>%<25>C<EFBFBD>%rc<08>F<00>T;\PRc;e#wRVPV4,R,#;\PRc;ewM;\PRc;ewMM RVPV4,R,#VPV4#)<05><00>{<7B>}rjrk)r<00>InitListr-<00>ExprList<73>CompoundrDs&&r<00> _visit_expr<70>CGenerator._visit_expr<70>sx<00><00><0F>!<21><15><1E><1E>!<21><1A>T<EFBFBD>Z<EFBFBD>Z<EFBFBD><01>]<5D>*<2A>S<EFBFBD>0<>0<>"<22>!<21><15><1E><1E>!<21>!<21>$4<>E<EFBFBD>N<EFBFBD>N<EFBFBD>$4<>$4<>4<><1A>T<EFBFBD>Z<EFBFBD>Z<EFBFBD><01>]<5D>*<2A>S<EFBFBD>0<>0<><12><1B>z<EFBFBD>z<EFBFBD>!<21>}<7D>$rc<00>@<<01>V^8<>dQhRS[PRS[RS[/#)r
r@<00>no_typer )r<00>Declr r)rrs"<22>rrr<00>s&<00><><00> <11> <11>E<EFBFBD>J<EFBFBD>J<EFBFBD> <11><14> <11>#<23> rc<08><<00>V'd VPMVPV4pVP'd*VRVPVP4,, pVP'd*VRVP VP4,, pV#)z : <20> = )rK<00>_generate_decl<63>bitsizer-<00>initr<74>)rr@r<><00>ss&&& r<00>
visit_Decl<EFBFBD>CGenerator.visit_Decl<63>sm<00><00><1E>A<EFBFBD>F<EFBFBD>F<EFBFBD>4<EFBFBD>#6<>#6<>q<EFBFBD>#9<><01> <0C>9<EFBFBD>9<EFBFBD>9<EFBFBD> <0A><15><14><1A><1A>A<EFBFBD>I<EFBFBD>I<EFBFBD>.<2E>.<2E> .<2E>A<EFBFBD> <0C>6<EFBFBD>6<EFBFBD>6<EFBFBD> <0A><15><14>)<29>)<29>!<21>&<26>&<26>1<>1<> 1<>A<EFBFBD><10>rc<00>:<<01>V^8<>dQhRS[PRS[/#r?)r<00>DeclListr)rrs"<22>rrr<00>s<00><><00><11><11><05><0E><0E><11>3<EFBFBD>rc<08><>a<00>SPVP^,4p\VP4^8<>d;VRRPV3RlVPR,44,, pV#)r<00>, c3<00>J<"<00>TFpSPVRR7x<00>K R#5i)T)r<>N)r<><00>r5<00>declrs& <20>rr8<00>,CGenerator.visit_DeclList.<locals>.<genexpr><3E>s$<00><><00><00>"<0E>@K<><04><04><0F><0F><04>d<EFBFBD><0F>3<>3<> <0B>r::<3A>NN)r-<00>decls<6C>lenr;<00>rr@r<>sf& r<00>visit_DeclList<73>CGenerator.visit_DeclList<73>sa<00><><00> <10>J<EFBFBD>J<EFBFBD>q<EFBFBD>w<EFBFBD>w<EFBFBD>q<EFBFBD>z<EFBFBD> "<22><01> <0E>q<EFBFBD>w<EFBFBD>w<EFBFBD><<3C>!<21> <1B> <0A><14><04> <09> <09>"<0E>@A<><07><07><02> <0B>"<0E><0E><0E> <0E>A<EFBFBD><11>rc<00>:<<01>V^8<>dQhRS[PRS[/#r?)r<00>Typedefr)rrs"<22>rrr<00>s<00><><00><11><11>u<EFBFBD>}<7D>}<7D><11><13>rc<08><><00>RpVP'd*VRPVP4R,, pW PVP4, pV#)r1r)<04>storager;<00>_generate_typerbr<>s&& r<00> visit_Typedef<65>CGenerator.visit_Typedef<65>sH<00><00> <0E><01> <0C>9<EFBFBD>9<EFBFBD>9<EFBFBD> <0A><13><18><18>!<21>)<29>)<29>$<24>s<EFBFBD>*<2A> *<2A>A<EFBFBD> <09> <20> <20><11><16><16> (<28>(<28><01><10>rc<00>:<<01>V^8<>dQhRS[PRS[/#r?)r<00>Castr)rrs"<22>rrr<00>s#<00><><00>B<01>B<01>E<EFBFBD>J<EFBFBD>J<EFBFBD>B<01>3<EFBFBD>Brc<08><><00>RVPVPRR7,R,pVR,VPVP4,#)rjF<><01> emit_declnamerkr)r<><00>to_typerZrur<>s&& r<00>
visit_Cast<EFBFBD>CGenerator.visit_Cast<73>sC<00><00> <0F>$<24>%<25>%<25>a<EFBFBD>i<EFBFBD>i<EFBFBD>u<EFBFBD>%<25>E<> E<><03> K<><01><10>3<EFBFBD>w<EFBFBD><14>9<>9<>!<21>&<26>&<26>A<>A<>Arc<00>:<<01>V^8<>dQhRS[PRS[/#r?)rr<>r)rrs"<22>rrr<00><00><00><><00>+<2B>+<2B><05><0E><0E>+<2B>3<EFBFBD>+rc<08><><00>.pVPF#pVPVPV44K% RPV4#<00>r<><00><04>exprs<72>appendr<64>r;<00>rr@<00>visited_subexprsrus&& r<00>visit_ExprList<73>CGenerator.visit_ExprList<73><00>?<00><00><1D><18><15>G<EFBFBD>G<EFBFBD>D<EFBFBD> <1C> #<23> #<23>D<EFBFBD>$4<>$4<>T<EFBFBD>$:<3A> ;<3B><1C><13>y<EFBFBD>y<EFBFBD>)<29>*<2A>*rc<00>:<<01>V^8<>dQhRS[PRS[/#r?)rr<>r)rrs"<22>rrr<00>r<>rc<08><><00>.pVPF#pVPVPV44K% RPV4#r<>r<>r<>s&& r<00>visit_InitList<73>CGenerator.visit_InitList<73>r<>rc<00>:<<01>V^8<>dQhRS[PRS[/#r?)r<00>Enumr)rrs"<22>rrr<00>s#<00><><00>@<01>@<01>E<EFBFBD>J<EFBFBD>J<EFBFBD>@<01>3<EFBFBD>@rc<08>(<00>VPVRR7#)<02>enumrJ<00><01>_generate_struct_union_enumrDs&&r<00>
visit_Enum<EFBFBD>CGenerator.visit_Enum<75>s<00><00><13>/<2F>/<2F><01><06>/<2F>?<3F>?rc<00>:<<01>V^8<>dQhRS[PRS[/#r?)r<00>Alignasr)rrs"<22>rrr<00>s<00><><00>><3E>><3E>u<EFBFBD>}<7D>}<7D>><3E><13>>rc<08>V<00>RPVPVP44#)z _Alignas({}))rr-<00> alignmentrDs&&r<00> visit_Alignas<61>CGenerator.visit_Alignas<61>s <00><00><1D>$<24>$<24>T<EFBFBD>Z<EFBFBD>Z<EFBFBD><01> <0B> <0B>%<<3C>=<3D>=rc<00>:<<01>V^8<>dQhRS[PRS[/#r?)r<00>
Enumeratorr)rrs"<22>rrr<00>s!<00><><00> <0E> <0E>%<25>"2<>"2<> <0E>s<EFBFBD> rc<08><00>VP'g,RPVP4VPR7#RPVP4VPVP VP4R7#)z{indent}{name},
)<02>indentrKz{indent}{name} = {value},
)r<>rKrC)rCrrrKr-rDs&&r<00>visit_Enumerator<6F>CGenerator.visit_Enumerator<6F>ss<00><00><10>w<EFBFBD>w<EFBFBD>w<EFBFBD>&<26>-<2D>-<2D><1B>(<28>(<28>*<2A><16>V<EFBFBD>V<EFBFBD>.<2E><0E> <0E>
1<>7<>7<><1B>(<28>(<28>*<2A><16>V<EFBFBD>V<EFBFBD><1A>j<EFBFBD>j<EFBFBD><11><17><17>)<29>8<><0E> rc<00>:<<01>V^8<>dQhRS[PRS[/#r?)r<00>FuncDefr)rrs"<22>rrr<00>s<00><><00>-<2D>-<2D>u<EFBFBD>}<7D>}<7D>-<2D><13>-rc<08>da<00>SPVP4p^SnSPVP4pVP'dKRP V3RlVP44pVR,V,R,V,R,#VR,V,R,#)r<00>;
c3<00>F<"<00>TFpSPV4x<00>K R#5ir3r4)r5<00>prs& <20>rr8<00>+CGenerator.visit_FuncDef.<locals>.<genexpr><3E>s<00><><00><00>!G<><1D>A<EFBFBD>$<24>*<2A>*<2A>Q<EFBFBD>-<2D>-<2D><1D><><00>!<01>
)r-r<>r<00>body<64> param_declsr;)rr@r<>r<00>knrdeclssf& r<00> visit_FuncDef<65>CGenerator.visit_FuncDef<65>s<><00><><00><13>z<EFBFBD>z<EFBFBD>!<21>&<26>&<26>!<21><04><1D><04><19><13>z<EFBFBD>z<EFBFBD>!<21>&<26>&<26>!<21><04> <0C>=<3D>=<3D>=<3D><1C>z<EFBFBD>z<EFBFBD>!G<><11><1D><1D>!G<>G<>H<EFBFBD><17>$<24>;<3B><18>)<29>E<EFBFBD>1<>D<EFBFBD>8<>4<EFBFBD>?<3F> ?<3F><17>$<24>;<3B><14>%<25><04>,<2C> ,rc<00>:<<01>V^8<>dQhRS[PRS[/#r?)r<00>FileASTr)rrs"<22>rrr<00>s<00><><00>
<11>
<11>u<EFBFBD>}<7D>}<7D>
<11><13>
rc<08>F<00>RpVPF<>pT;\PRc;ewW PV4, pK6\PRc;e#wW PV4R,, pKnW PV4R,, pK<> V#)r1r<>rr<>)<05>extrr<>r-rO)rr@r<>r s&& r<00> visit_FileAST<53>CGenerator.visit_FileAST<53>sz<00><00> <0E><01><14>5<EFBFBD>5<EFBFBD>C<EFBFBD><15>$<24>U<EFBFBD>]<5D>]<5D>_<EFBFBD><15><1A><1A>C<EFBFBD><1F>(<28>A<EFBFBD>%<25><1A>\<5C>\<5C>^<5E><15><1A><1A>C<EFBFBD><1F>4<EFBFBD>/<2F>/<2F>A<EFBFBD>$<24><16><15><1A><1A>C<EFBFBD><1F>5<EFBFBD>0<>0<>A<EFBFBD><19><11>rc<00>:<<01>V^8<>dQhRS[PRS[/#r?)rr<>r)rrs"<22>rrr<00>s<00><><00><11><11><05><0E><0E><11>3<EFBFBD>rc<08>Ra<00>SP4R,pS;P^, unVP'd-VRPV3RlVP44, pS;P^,unVSP4R,, pV#)<04>{
r1c3<00>F<"<00>TFpSPV4x<00>K R#5ir3<00><01>_generate_stmt)r5<00>stmtrs& <20>rr8<00>,CGenerator.visit_Compound.<locals>.<genexpr><3E>s<00><><00><00>M<>}<7D>t<EFBFBD><14>,<2C>,<2C>T<EFBFBD>2<>2<>}<7D>rz}
)rr<00> block_itemsr;r<>sf& r<00>visit_Compound<6E>CGenerator.visit_Compound<6E>s{<00><><00> <10> <1D> <1D> <1F>%<25> '<27><01> <0C><19><19>Q<EFBFBD><1E><19> <0C>=<3D>=<3D>=<3D> <0A><12><17><17>M<>q<EFBFBD>}<7D>}<7D>M<>M<> M<>A<EFBFBD> <0C><19><19>Q<EFBFBD><1E><19> <09>T<EFBFBD> <1E> <1E> <20>5<EFBFBD> (<28>(<28><01><10>rc<00>:<<01>V^8<>dQhRS[PRS[/#r?)r<00>CompoundLiteralr)rrs"<22>rrrs%<00><><00>J<01>J<01>u<EFBFBD>'<<3C>'<<3C>J<01><13>Jrc<08><><00>RVPVP4,R,VPVP4,R,#)rjz){r<>)r-rbr<>rDs&&r<00>visit_CompoundLiteral<61> CGenerator.visit_CompoundLiterals6<00><00><12>T<EFBFBD>Z<EFBFBD>Z<EFBFBD><01><06><06>'<27>'<27>$<24>.<2E><14><1A><1A>A<EFBFBD>F<EFBFBD>F<EFBFBD>1C<31>C<>c<EFBFBD>I<>Irc<00>:<<01>V^8<>dQhRS[PRS[/#r?)r<00>EmptyStatementr)rrs"<22>rrrs!<00><><00><13><13>e<EFBFBD>&:<3A>&:<3A><13>s<EFBFBD>rc<08><00>R#)<01>;r<>rDs&&r<00>visit_EmptyStatement<6E>CGenerator.visit_EmptyStatements<00><00>rc<00>:<<01>V^8<>dQhRS[PRS[/#r?)r<00> ParamListr)rrs"<22>rrr s#<00><><00>B<01>B<01><15><1F><1F>B<01>S<EFBFBD>Brc<08>Na<00>RPV3RlVP44#)r<>c3<00>F<"<00>TFpSPV4x<00>K R#5ir3r4)r5<00>paramrs& <20>rr8<00>-CGenerator.visit_ParamList.<locals>.<genexpr>
s<00><><00><00>A<><08>u<EFBFBD><14><1A><1A>E<EFBFBD>*<2A>*<2A><08>r)r;<00>paramsrDsf&r<00>visit_ParamList<73>CGenerator.visit_ParamList s<00><><00><13>y<EFBFBD>y<EFBFBD>A<><01><08><08>A<>A<>Arc<00>:<<01>V^8<>dQhRS[PRS[/#r?)r<00>Returnr)rrs"<22>rrr s<00><><00><17><17>e<EFBFBD>l<EFBFBD>l<EFBFBD><17>s<EFBFBD>rc<08><><00>RpVP'd*VRVPVP4,, pVR,#)r rr#)rur-r<>s&& r<00> visit_Return<72>CGenerator.visit_Return s5<00><00> <14><01> <0C>6<EFBFBD>6<EFBFBD>6<EFBFBD> <0A><13>t<EFBFBD>z<EFBFBD>z<EFBFBD>!<21>&<26>&<26>)<29>)<29> )<29>A<EFBFBD><10>3<EFBFBD>w<EFBFBD>rc<00>:<<01>V^8<>dQhRS[PRS[/#r?)r<00>Breakr)rrs"<22>rrrs<00><><00><18><18>U<EFBFBD>[<5B>[<5B><18>S<EFBFBD>rc<08><00>R#)zbreak;r<>rDs&&r<00> visit_Break<61>CGenerator.visit_Breaks<00><00>rc<00>:<<01>V^8<>dQhRS[PRS[/#r?)r<00>Continuer)rrs"<22>rrrs<00><><00><1B><1B><05><0E><0E><1B>3<EFBFBD>rc<08><00>R#)z continue;r<>rDs&&r<00>visit_Continue<75>CGenerator.visit_Continues<00><00>rc<00>:<<01>V^8<>dQhRS[PRS[/#r?)r<00> TernaryOpr)rrs"<22>rrrs<00><><00><11><11><15><1F><1F><11>S<EFBFBD>rc<08><00>RVPVP4,R,pVRVPVP4,R,, pVRVPVP4,R,, pV#)rjz) ? z) : rk)r<><00>cond<6E>iftrue<75>iffalser<65>s&& r<00>visit_TernaryOp<4F>CGenerator.visit_TernaryOpsk<00><00> <0F>$<24>"<22>"<22>1<EFBFBD>6<EFBFBD>6<EFBFBD>*<2A> *<2A>V<EFBFBD> 3<><01> <09>S<EFBFBD>4<EFBFBD>#<23>#<23>A<EFBFBD>H<EFBFBD>H<EFBFBD>-<2D> -<2D><06> 6<>6<><01> <09>S<EFBFBD>4<EFBFBD>#<23>#<23>A<EFBFBD>I<EFBFBD>I<EFBFBD>.<2E> .<2E><13> 4<>4<><01><10>rc<00>:<<01>V^8<>dQhRS[PRS[/#r?)r<00>Ifr)rrs"<22>rrrs<00><><00> <11> <11>%<25>(<28>(<28> <11>s<EFBFBD> rc<08>l<00>RpVP'd"W PVP4, pVR, pW PVPRR7, pVP'dAW P 4R,, pW PVPRR7, pV#)zif (<28>)
T<EFBFBD><01>
add_indentzelse
)rAr-rrBrCrr<>s&& r<00>visit_If<49>CGenerator.visit_Ifs<><00><00> <12><01> <0C>6<EFBFBD>6<EFBFBD>6<EFBFBD> <0A><1A><1A>A<EFBFBD>F<EFBFBD>F<EFBFBD>#<23> #<23>A<EFBFBD> <09>U<EFBFBD>
<EFBFBD><01> <09> <20> <20><11><18><18>d<EFBFBD> <20> ;<3B>;<3B><01> <0C>9<EFBFBD>9<EFBFBD>9<EFBFBD> <0A>"<22>"<22>$<24>x<EFBFBD>/<2F> /<2F>A<EFBFBD> <0A>$<24>$<24>Q<EFBFBD>Y<EFBFBD>Y<EFBFBD>4<EFBFBD>$<24>@<40> @<40>A<EFBFBD><10>rc<00>:<<01>V^8<>dQhRS[PRS[/#r?)r<00>Forr)rrs"<22>rrr)s<00><><00> <11> <11>5<EFBFBD>9<EFBFBD>9<EFBFBD> <11><13> rc<08><><00>RpVP'd"W PVP4, pVR, pVP'd*VRVPVP4,, pVR, pVP'd*VRVPVP4,, pVR, pW P VP
RR7, pV#)zfor (r#rrITrJ)r<>r-rA<00>nextrrr<>s&& r<00> visit_For<6F>CGenerator.visit_For)s<><00><00> <13><01> <0C>6<EFBFBD>6<EFBFBD>6<EFBFBD> <0A><1A><1A>A<EFBFBD>F<EFBFBD>F<EFBFBD>#<23> #<23>A<EFBFBD> <09>S<EFBFBD><08><01> <0C>6<EFBFBD>6<EFBFBD>6<EFBFBD> <0A><13>t<EFBFBD>z<EFBFBD>z<EFBFBD>!<21>&<26>&<26>)<29>)<29> )<29>A<EFBFBD> <09>S<EFBFBD><08><01> <0C>6<EFBFBD>6<EFBFBD>6<EFBFBD> <0A><13>t<EFBFBD>z<EFBFBD>z<EFBFBD>!<21>&<26>&<26>)<29>)<29> )<29>A<EFBFBD> <09>U<EFBFBD>
<EFBFBD><01> <09> <20> <20><11><16><16>D<EFBFBD> <20> 9<>9<><01><10>rc<00>:<<01>V^8<>dQhRS[PRS[/#r?)r<00>Whiler)rrs"<22>rrr7s<00><><00><11><11>U<EFBFBD>[<5B>[<5B><11>S<EFBFBD>rc<08><><00>RpVP'd"W PVP4, pVR, pW PVPRR7, pV#)<04>while (rITrJ)rAr-rrr<>s&& r<00> visit_While<6C>CGenerator.visit_While7sO<00><00> <15><01> <0C>6<EFBFBD>6<EFBFBD>6<EFBFBD> <0A><1A><1A>A<EFBFBD>F<EFBFBD>F<EFBFBD>#<23> #<23>A<EFBFBD> <09>U<EFBFBD>
<EFBFBD><01> <09> <20> <20><11><16><16>D<EFBFBD> <20> 9<>9<><01><10>rc<00>:<<01>V^8<>dQhRS[PRS[/#r?)r<00>DoWhiler)rrs"<22>rrr?s<00><><00><11><11>u<EFBFBD>}<7D>}<7D><11><13>rc<08><00>RpW PVPRR7, pW P4R,, pVP'd"W P VP4, pVR, pV#)zdo
TrJrWz);)rrrrAr-r<>s&& r<00> visit_DoWhile<6C>CGenerator.visit_DoWhile?se<00><00> <12><01> <09> <20> <20><11><16><16>D<EFBFBD> <20> 9<>9<><01> <09> <1E> <1E> <20>9<EFBFBD> ,<2C>,<2C><01> <0C>6<EFBFBD>6<EFBFBD>6<EFBFBD> <0A><1A><1A>A<EFBFBD>F<EFBFBD>F<EFBFBD>#<23> #<23>A<EFBFBD> <09>T<EFBFBD> <09><01><10>rc<00>:<<01>V^8<>dQhRS[PRS[/#r?)r<00> StaticAssertr)rrs"<22>rrrHs!<00><><00><11><11>E<EFBFBD>$6<>$6<><11>3<EFBFBD>rc<08><><00>RpW PVP4, pVP'd+VR, pW PVP4, pVR, pV#)z_Static_assert(<28>,rk)r-rA<00>messager<65>s&& r<00>visit_StaticAssert<72>CGenerator.visit_StaticAssertHsQ<00><00> <1D><01> <09>Z<EFBFBD>Z<EFBFBD><01><06><06> <1F><1F><01> <0C>9<EFBFBD>9<EFBFBD>9<EFBFBD> <0A><13>H<EFBFBD>A<EFBFBD> <0A><1A><1A>A<EFBFBD>I<EFBFBD>I<EFBFBD>&<26> &<26>A<EFBFBD> <09>S<EFBFBD><08><01><10>rc<00>:<<01>V^8<>dQhRS[PRS[/#r?)r<00>Switchr)rrs"<22>rrrQs<00><><00><11><11>e<EFBFBD>l<EFBFBD>l<EFBFBD><11>s<EFBFBD>rc<08><><00>RVPVP4,R,pW PVPRR7, pV#)zswitch (rITrJ)r-rArrr<>s&& r<00> visit_Switch<63>CGenerator.visit_SwitchQs?<00><00> <16><14><1A><1A>A<EFBFBD>F<EFBFBD>F<EFBFBD>+<2B> +<2B>e<EFBFBD> 3<><01> <09> <20> <20><11><16><16>D<EFBFBD> <20> 9<>9<><01><10>rc<00>:<<01>V^8<>dQhRS[PRS[/#r?)r<00>Caser)rrs"<22>rrrVs<00><><00><11><11>E<EFBFBD>J<EFBFBD>J<EFBFBD><11>3<EFBFBD>rc<08><><00>RVPVP4,R,pVPFpW PVRR7, pK V#)zcase <20>:
TrJ)r-ru<00>stmtsr<00>rr@r<>rs&& r<00>
visit_Case<EFBFBD>CGenerator.visit_CaseVsI<00><00> <13>d<EFBFBD>j<EFBFBD>j<EFBFBD><11><16><16>(<28> (<28>5<EFBFBD> 0<><01><15>G<EFBFBD>G<EFBFBD>D<EFBFBD> <0A>$<24>$<24>T<EFBFBD>d<EFBFBD>$<24>;<3B> ;<3B>A<EFBFBD><1C><10>rc<00>:<<01>V^8<>dQhRS[PRS[/#r?)r<00>Defaultr)rrs"<22>rrr\s<00><><00><11><11>u<EFBFBD>}<7D>}<7D><11><13>rc<08>b<00>RpVPFpW PVRR7, pK V#)z default:
TrJ)rorrps&& r<00> visit_Default<6C>CGenerator.visit_Default\s2<00><00> <18><01><15>G<EFBFBD>G<EFBFBD>D<EFBFBD> <0A>$<24>$<24>T<EFBFBD>d<EFBFBD>$<24>;<3B> ;<3B>A<EFBFBD><1C><10>rc<00>:<<01>V^8<>dQhRS[PRS[/#r?)r<00>Labelr)rrs"<22>rrrb<00><00><><00><<3C><<3C>U<EFBFBD>[<5B>[<5B><<3C>S<EFBFBD><rc<08>h<00>VPR,VPVP4,#)rn)rKrrrDs&&r<00> visit_Label<65>CGenerator.visit_Labelbs$<00><00><10>v<EFBFBD>v<EFBFBD><05>~<7E><04> 3<> 3<>A<EFBFBD>F<EFBFBD>F<EFBFBD> ;<3B>;<3B>;rc<00>:<<01>V^8<>dQhRS[PRS[/#r?)r<00>Gotor)rrs"<22>rrres<00><><00>&<26>&<26>E<EFBFBD>J<EFBFBD>J<EFBFBD>&<26>3<EFBFBD>&rc<08>6<00>RVP,R,#)zgoto r#rJrDs&&r<00>
visit_Goto<EFBFBD>CGenerator.visit_Gotoes<00><00><16><11><16><16><1F>#<23>%<25>%rc<00>:<<01>V^8<>dQhRS[PRS[/#r?)r<00> EllipsisParamr)rrs"<22>rrrhs!<00><><00><15><15>U<EFBFBD>%8<>%8<><15>S<EFBFBD>rc<08><00>R#)z...r<>rDs&&r<00>visit_EllipsisParam<61>CGenerator.visit_EllipsisParamhs<00><00>rc<00>:<<01>V^8<>dQhRS[PRS[/#r?)r<00>Structr)rrs"<22>rrrks<00><><00>=<3D>=<3D>e<EFBFBD>l<EFBFBD>l<EFBFBD>=<3D>s<EFBFBD>=rc<08>&<00>VPVR4#)<01>structr<74>rDs&&r<00> visit_Struct<63>CGenerator.visit_Structks<00><00><13>/<2F>/<2F><01>8<EFBFBD><<3C><rc<00>:<<01>V^8<>dQhRS[PRS[/#r?)r<00>Typenamer)rrs"<22>rrrns<00><><00>+<2B>+<2B><05><0E><0E>+<2B>3<EFBFBD>+rc<08>8<00>VPVP4#r3)r<>rbrDs&&r<00>visit_Typename<6D>CGenerator.visit_Typenamens<00><00><13>"<22>"<22>1<EFBFBD>6<EFBFBD>6<EFBFBD>*<2A>*rc<00>:<<01>V^8<>dQhRS[PRS[/#r?)r<00>Unionr)rrs"<22>rrrqrzrc<08>&<00>VPVR4#)<01>unionr<6E>rDs&&r<00> visit_Union<6F>CGenerator.visit_Unionqs<00><00><13>/<2F>/<2F><01>7<EFBFBD>;<3B>;rc<00>:<<01>V^8<>dQhRS[PRS[/#r?)r<00>NamedInitializerr)rrs"<22>rrrts!<00><><00><11><11><05>(><3E>(><3E><11>3<EFBFBD>rc<08>F<00>RpVPFep\V\P4'dVRVP,, pK?VRVP V4,R,, pKg VRVP VP 4,, pV#)r1<00>.rXrYr<>)rKr<>rrHr-r<>ru)rr@r<>rKs&& r<00>visit_NamedInitializer<65>!CGenerator.visit_NamedInitializertsz<00><00> <0E><01><15>F<EFBFBD>F<EFBFBD>D<EFBFBD><19>$<24><05><08><08>)<29>)<29><11>S<EFBFBD>4<EFBFBD>9<EFBFBD>9<EFBFBD>_<EFBFBD>$<24><01><11>S<EFBFBD>4<EFBFBD>:<3A>:<3A>d<EFBFBD>+<2B>+<2B>c<EFBFBD>1<>1<><01> <1B>
<EFBFBD>U<EFBFBD>T<EFBFBD>%<25>%<25>a<EFBFBD>f<EFBFBD>f<EFBFBD>-<2D> -<2D>-<2D><01><10>rc<00>:<<01>V^8<>dQhRS[PRS[/#r?)r<00>FuncDeclr)rrs"<22>rrr~s<00><><00>&<26>&<26><05><0E><0E>&<26>3<EFBFBD>&rc<08>$<00>VPV4#r3<00>r<>rDs&&r<00>visit_FuncDecl<63>CGenerator.visit_FuncDecl~s<00><00><13>"<22>"<22>1<EFBFBD>%<25>%rc<00>:<<01>V^8<>dQhRS[PRS[/#r?)r<00> ArrayDeclr)rrs"<22>rrr<00>s<00><><00>;<3B>;<3B><15><1F><1F>;<3B>S<EFBFBD>;rc<08>(<00>VPVRR7#<00>Fr<46>r<>rDs&&r<00>visit_ArrayDecl<63>CGenerator.visit_ArrayDecl<63><00><00><00><13>"<22>"<22>1<EFBFBD>E<EFBFBD>"<22>:<3A>:rc<00>:<<01>V^8<>dQhRS[PRS[/#r?)r<00>TypeDeclr)rrs"<22>rrr<00>s<00><><00>;<3B>;<3B><05><0E><0E>;<3B>3<EFBFBD>;rc<08>(<00>VPVRR7#r<>r<>rDs&&r<00>visit_TypeDecl<63>CGenerator.visit_TypeDecl<63>r<>rc<00>:<<01>V^8<>dQhRS[PRS[/#r?)r<00>PtrDeclr)rrs"<22>rrr<00>s<00><><00>;<3B>;<3B>u<EFBFBD>}<7D>}<7D>;<3B><13>;rc<08>(<00>VPVRR7#r<>r<>rDs&&r<00> visit_PtrDecl<63>CGenerator.visit_PtrDecl<63>r<>rc<00><><<01>V^8<>dQhRS[PS[P,S[P,RS[RS[/#)r
r@rKr )rr<>r<>r<>r)rrs"<22>rrr<00>s;<00><><00><11><11><16><1C><1C><05> <0B> <0B>+<2B>e<EFBFBD>j<EFBFBD>j<EFBFBD>8<><11>@C<><11> <0C>rc <0C><><00>VR9dL\V\P\P34'gQhVPpVP
pM]VR8XgQh\V\P 4'gQhVPfRMVPPpVPpVR,VP;'gR,pVe<>VR, pWPP4, pV;P^, un VR, pWT!V4, pV;P^,un WPP4R,, pV#) z\Generates code for structs, unions, and enums. name should be
'struct', 'union', or 'enum'.
r<EFBFBD>Nrr1rrr<>)r<>r<>) r<>rr<>r<>r<><00>_generate_struct_union_bodyr<79><00>values<65> enumerators<72>_generate_enum_bodyrKrr)rr@rK<00>members<72> body_functionr<6E>s&&& rr<><00>&CGenerator._generate_struct_union_enum<75>s<00><00> <10>&<26> &<26><1D>a<EFBFBD>%<25>,<2C>,<2C><05> <0B> <0B>!<<3C>=<3D>=<3D> =<3D>=<3D><17>g<EFBFBD>g<EFBFBD>G<EFBFBD> <20><<3C><<3C>M<EFBFBD><17>6<EFBFBD>><3E> !<21>><3E><1D>a<EFBFBD><15><1A><1A>,<2C>,<2C> ,<2C>,<2C><1F>h<EFBFBD>h<EFBFBD>.<2E>d<EFBFBD>A<EFBFBD>H<EFBFBD>H<EFBFBD>4H<34>4H<34>G<EFBFBD> <20>4<>4<>M<EFBFBD> <10>3<EFBFBD>J<EFBFBD>!<21>&<26>&<26>,<2C>,<2C>B<EFBFBD> '<27><01> <12> <1E> <0E><14>I<EFBFBD>A<EFBFBD> <0A>"<22>"<22>$<24> $<24>A<EFBFBD> <10> <1D> <1D><11> "<22> <1D> <0A><15>J<EFBFBD>A<EFBFBD> <0A><1D>w<EFBFBD>'<27> '<27>A<EFBFBD> <10> <1D> <1D><11> "<22> <1D> <0A>"<22>"<22>$<24>s<EFBFBD>*<2A> *<2A>A<EFBFBD><10>rc<00>J<<01>V^8<>dQhRS[S[P,RS[/#<00>r
r<>r )rrr%r)rrs"<22>rrr<00>s(<00><><00>F<01>F<01>4<EFBFBD><05>
<EFBFBD>
<EFBFBD>3C<EFBFBD>F<01><03>Frc<08>:a<00>RPV3RlV44#)r1c3<00>F<"<00>TFpSPV4x<00>K R#5ir3rr<>s& <20>rr8<00>9CGenerator._generate_struct_union_body.<locals>.<genexpr><3E>s<00><><00><00>E<>W<EFBFBD>T<EFBFBD>t<EFBFBD>*<2A>*<2A>4<EFBFBD>0<>0<>W<EFBFBD>r<00>r;<00>rr<>sf&rr<><00>&CGenerator._generate_struct_union_body<64>s<00><><00><11>w<EFBFBD>w<EFBFBD>E<>W<EFBFBD>E<>E<>Erc<00>J<<01>V^8<>dQhRS[S[P,RS[/#r<>)rrr<>r)rrs"<22>rrr<00>s*<00><><00>K<01>K<01>4<EFBFBD><05>0@<40>0@<40>+A<>K<01>c<EFBFBD>Krc<08>Na<00>RPV3RlV44RRR,#)r1c3<00>F<"<00>TFpSPV4x<00>K R#5ir3r4)r5rCrs& <20>rr8<00>1CGenerator._generate_enum_body.<locals>.<genexpr><3E>s<00><><00><00>><3E>g<EFBFBD>U<EFBFBD>t<EFBFBD>z<EFBFBD>z<EFBFBD>%<25>(<28>(<28>g<EFBFBD>rNr<00><><EFBFBD><EFBFBD><EFBFBD>r<EFBFBD>r<>sf&rr<><00>CGenerator._generate_enum_body<64>s$<00><><00><11>w<EFBFBD>w<EFBFBD>><3E>g<EFBFBD>><3E>><3E>s<EFBFBD><02>C<>d<EFBFBD>J<>Jrc<00>@<<01>V^8<>dQhRS[PRS[RS[/#)r
r@rKr )rr%r r)rrs"<22>rrr<00>s&<00><><00>(5<>(5<><05>
<EFBFBD>
<EFBFBD>(5<><04>(5<><13>(5rc <0C><><00>V'dV;P^, unVP4pV'dV;P^,unT;;\PRc;ewEM=;\PRc;ewEM";\P
Rc;ewEM;\P Rc;ewM<>;\PRc;ewM<>;\PRc;ewM<>;\PRc;ewM<>;\PRc;ewM<>;\PRc;ewMk;\PRc;ewMQ;\PRc;ewM7;\PRc;ewM;\PRc;ewMM W0P!V4,R,#;\P"Rc;ewVP!V4#\P$Rc;ewW0P!V4,#W0P!V4,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<EFBFBD>r<>r)rrrr<>r<>r<>rqr<>r?rhrVr`rArHr<>r<>r-r<>rG)rr@rKr<>s&&& rr<00>CGenerator._generate_stmt<6D>st<00><00>
<16> <10> <1D> <1D><11> "<22> <1D><15>"<22>"<22>$<24><06> <15> <10> <1D> <1D><11> "<22> <1D><0F> #<23> <0C><05>
<EFBFBD>
<EFBFBD> <0C> <0C>$<24>%<25>"<22>"<22>$<24>$<24><1E>%<25>*<2A>*<2A>,<2C>,<2C>!<21>%<25>-<2D>-<2D>/<2F>/<2F>"<22>%<25>.<2E>.<2E>"<22>"<22>#<23>%<25>/<2F>/<2F>#<23>#<23>"<22>%<25>.<2E>.<2E>"<22>"<22>"<22>%<25>.<2E>.<2E>"<22>"<22>#<23>%<25>/<2F>/<2F>#<23>#<23>"<22>%<25>.<2E>.<2E>"<22>"<22><1C>%<25>(<28>(<28>*<2A>*<2A>!<21>%<25>-<2D>-<2D>/<2F>/<2F>"<22>%<25>.<2E>.<2E>"<22>"<22> #<23>"<1E>
<EFBFBD>
<EFBFBD>1<EFBFBD> <0A>-<2D><05>5<>5<>!<21><15><1E><1E>!<21>
<1C>z<EFBFBD>z<EFBFBD>!<21>}<7D>$<24> "<22> <17><18><18><1A><1D>
<EFBFBD>
<EFBFBD>1<EFBFBD> <0A>-<2D>-<2D><1C><12><1D>
<EFBFBD>
<EFBFBD>1<EFBFBD> <0A>-<2D><04>4<>4rc<00>:<<01>V^8<>dQhRS[PRS[/#r?)rr<>r)rrs"<22>rrr<00>s<00><><00>
<11>
<11><05>
<EFBFBD>
<EFBFBD>
<11>s<EFBFBD>
rc <0C><><00>RpVP'd#RPVP4R,pVP'd*VRPVP4R,, pVP'd0W P VP^,4R,, pW P VP 4, pV#)zGeneration from a Decl node.r1r)<07>funcspecr;r<><00>alignr-r<>rbr<>s&& rr<><00>CGenerator._generate_decl<63>s<><00><00> <0E><01> <0C>:<3A>:<3A>:<3A><13><08><08><11><1A><1A>$<24>s<EFBFBD>*<2A>A<EFBFBD> <0C>9<EFBFBD>9<EFBFBD>9<EFBFBD> <0A><13><18><18>!<21>)<29>)<29>$<24>s<EFBFBD>*<2A> *<2A>A<EFBFBD> <0C>7<EFBFBD>7<EFBFBD>7<EFBFBD> <0A><1A><1A>A<EFBFBD>G<EFBFBD>G<EFBFBD>A<EFBFBD>J<EFBFBD>'<27>#<23>-<2D> -<2D>A<EFBFBD> <09> <20> <20><11><16><16> (<28>(<28><01><10>rTc<00>j<<01>V^8<>dQhRS[PRS[S[P,RS[RS[/#)r
r@<00> modifiersr<73>r )rr%rr r)rrs"<22>rrr<00>sF<00><><00>A%<25>A%<25> <10>:<3A>:<3A>A%<25><18><05>
<EFBFBD>
<EFBFBD>#<23>A%<25><1C> A%<25>
<0A> A%rc <0C><><00>T;\PRc;Ee<>wRpVP'd*VRPVP4R,, pW@P VP
4, pVP 'dV'd VP MRp\V4EF<>wrgT;\PRc;e<>wV^8wd>\W&^,
,\P4'dRV,R,pVR, pVP'd*VRPVP4R,, pVPe"WPP VP4, pVR, pK<>;\PRc;e<>wV^8wd>\W&^,
,\P4'dRV,R,pVPeVP VP4MRpVRV,R,, pEK<>\PRc;eUwVP'd5RPVP4p V'dRV 2MRp
RV V
2pEK<>R V,pEK<>EK<> V'dVRV,, pV#;\PRc;ewVP!VP
4#;\P"Rc;e!wVP%VP
VR
7#;\P&Rc;e&wRPVP(4R,#;\PRc;ewM7;\PRc;ewM;\PRc;ewMM&VP%VP
W!.,VR
7#VP V4#) 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<EFBFBD>r1rrjrkrXrYz* r<>r<>)rr<><00>qualsr;r-rb<00>declname<6D> enumerater<65>r<>r<><00> dim_quals<6C>dimr<6D>rlr<>r<>r<>r<>r<>r<>) rr@r<>r<>r<><00>nstr<74>i<>modifierrlr<><00>suffixs &&&& rr<><00>CGenerator._generate_type<70>s<><00><00><10>!<21><15><1E><1E>!<21>!<21><16><01><14>7<EFBFBD>7<EFBFBD>7<EFBFBD><15><13><18><18>!<21>'<27>'<27>*<2A>S<EFBFBD>0<>0<>A<EFBFBD><11>Z<EFBFBD>Z<EFBFBD><01><06><06>'<27>'<27><01>%&<26>Z<EFBFBD>Z<EFBFBD>Z<EFBFBD>M<EFBFBD>q<EFBFBD>z<EFBFBD>z<EFBFBD>r<EFBFBD><04>
$-<2D>Y<EFBFBD>#7<>K<EFBFBD>A<EFBFBD>"<22>.<2E>U<EFBFBD>_<EFBFBD>_<EFBFBD>.<2E> <20>A<EFBFBD>v<EFBFBD>*<2A>Y<EFBFBD>1<EFBFBD>u<EFBFBD>5E<35>u<EFBFBD>}<7D>}<7D>*U<>*U<>'*<2A>T<EFBFBD>z<EFBFBD>C<EFBFBD>'7<><04> <20>C<EFBFBD>K<EFBFBD>D<EFBFBD>'<27>1<>1<>1<> $<24><03><08><08><18>1C<31>1C<31>(D<>s<EFBFBD>(J<> J<><04>'<27>|<7C>|<7C>7<> $<24>
<EFBFBD>
<EFBFBD>8<EFBFBD><<3C><<3C>(@<40> @<40><04> <20>C<EFBFBD>K<EFBFBD>D<EFBFBD>/<2F>.<2E>U<EFBFBD>^<5E>^<5E>-<2D> <20>A<EFBFBD>v<EFBFBD>*<2A>Y<EFBFBD>1<EFBFBD>u<EFBFBD>5E<35>u<EFBFBD>}<7D>}<7D>*U<>*U<>'*<2A>T<EFBFBD>z<EFBFBD>C<EFBFBD>'7<><04>$,<2C>=<3D>=<3D>#<<3C>!%<25>
<EFBFBD>
<EFBFBD>8<EFBFBD>=<3D>=<3D> 9<>%'<27>!<21>
!<21>C<EFBFBD>$<24>J<EFBFBD><13>$4<>4<>D<EFBFBD>.<2E>#<23>]<5D>]<5D>_<EFBFBD>'<27>~<7E>~<7E>~<7E>(+<2B><08><08><18><1E><1E>(@<40><05>7;<3B>1<EFBFBD>T<EFBFBD>F<EFBFBD><1A><12><06>)+<2B>E<EFBFBD>7<EFBFBD>6<EFBFBD>(<28>';<3B><04>'*<2A>T<EFBFBD>z<EFBFBD><04> -<2D>)$8<>6<18><15><13>t<EFBFBD><1A>O<EFBFBD>A<EFBFBD><18><08>Q"<22>R<1E><15><1A><1A><1C><1B>*<2A>*<2A>1<EFBFBD>6<EFBFBD>6<EFBFBD>2<>2<><1E>!<21><15><1E><1E>!<21><1B>*<2A>*<2A>1<EFBFBD>6<EFBFBD>6<EFBFBD><1D>*<2A>O<>O<>"<22>'<27><15>%<25>%<25>'<27><1A>x<EFBFBD>x<EFBFBD><01><07><07>(<28>3<EFBFBD>.<2E>.<2E>(<28>"<22><15><1F><1F>"<22>"<22>_<EFBFBD>U<EFBFBD>]<5D>]<5D>_<EFBFBD>_<EFBFBD>7G<37>u<EFBFBD>~<7E>~<7E>7G<37>7G<37>G<><1B>*<2A>*<2A><15>F<EFBFBD>F<EFBFBD>I<EFBFBD><03>O<EFBFBD>=<3D>+<2B><12><12><13><1B>z<EFBFBD>z<EFBFBD>!<21>}<7D>$rc<00>l<<01>V^8<>dQhRS[PRS[S[P.S[3,RS[/#)r
r@<00> conditionr )rr%rr r)rrs"<22>rrr&s9<00><><00>
<15>
<15><16><1A><1A>
<15>(0<>%<25>*<2A>*<2A><1C>t<EFBFBD>1C<31>(D<>
<15> <0C>
rc <0C>d<00>VPV4pV!V4'dRV,R,#V#)z|Visits 'n' and returns its string representation, parenthesized
if the condition function applied to the node returns True.
rjrk)r<>)rr@r<>r<>s&&& rr<><00>CGenerator._parenthesize_if&s0<00><00> <11> <1C> <1C>Q<EFBFBD> <1F><01> <14>Q<EFBFBD><<3C><<3C><16><11>7<EFBFBD>S<EFBFBD>=<3D> <20><14>Hrc<00>:<<01>V^8<>dQhRS[PRS[/#r?r$)rrs"<22>rrr2s#<00><><00>O<01>O<01>U<EFBFBD>Z<EFBFBD>Z<EFBFBD>O<01>C<EFBFBD>Orc <0C>0a<00>SPVV3Rl4#)z$Common use case for _parenthesize_ifc<00>0<<01>SPV4'*#r3)r<>)r<>rs&<26>rr<><00>8CGenerator._parenthesize_unless_simple.<locals>.<lambda>4s<00><><00>d<EFBFBD>6J<36>6J<36>1<EFBFBD>6M<36>2Mr)r<>rDsf&rrZ<00>&CGenerator._parenthesize_unless_simple2s<00><><00><13>$<24>$<24>Q<EFBFBD>(M<>N<>Nrc<00>:<<01>V^8<>dQhRS[PRS[/#r?)rr%r )rrs"<22>rrr6s<00><><00>
<EFBFBD>
<EFBFBD><15><1A><1A>
<EFBFBD><04>
rc <0C><><00>\V\P\P\P\P
\P 34#)ziReturns True for nodes that are "simple" - i.e. nodes that always
have higher precedence than operators.
)r<>rrArHrVr`rhrDs&&rr<><00>CGenerator._is_simple_node6s6<00><00><1A> <0A> <12>^<5E>^<5E>U<EFBFBD>X<EFBFBD>X<EFBFBD>u<EFBFBD>~<7E>~<7E>u<EFBFBD><EFBFBD><EFBFBD><05><0E><0E> W<>
<EFBFBD>
rc<00>2<<01>V^8<>dQh/S[;R&S[;R&#)r
rr )<02>intr )rrs"<22>rrrs<00><><00><00> <16><15> <01><1D><1C>rrN)F)Gr)<00>
__module__<EFBFBD> __qualname__<5F>__firstlineno__<5F>__doc__rrr-r+rErLrSr]rernrwr<>r<>r<>r<>r<>r<>r<>r<>r<>r<>r<>r<>r<>r<>rrrrr$r-r2r7r<rDrLrRrXr]rdrirqrvr|r<>r<>r<>r<>r<>r<>r<>r<>r<>r<>r<>r<>r<>rr<>r<>r<>rZr<><00>__annotate_func__<5F>__static_attributes__<5F>__classdictcell__)rs@rrrsz<00><><00><00><08> 5<> 5<>'<27>'<27>?<3F>?<3F>K<01>K<01> <17><17><16><16><13><13> <<3C><<3C>3<>3<>'<27>'<27>
*<2A>*<2A>"<06> <0A>a<EFBFBD><06> <0A>a<EFBFBD> <06>
<0C>Q<EFBFBD> <06> <0C>Q<EFBFBD> <06> <0C>Q<EFBFBD><06> <0A>a<EFBFBD><06> <0A>a<EFBFBD><06> <0C>Q<EFBFBD><06> <0A>a<EFBFBD><06> <0C>Q<EFBFBD><06> <0A>a<EFBFBD><06> <0A>a<EFBFBD><06> <0A>a<EFBFBD><06> <0C>Q<EFBFBD>!<06>" <0C>Q<EFBFBD>#<06>$ <0C>Q<EFBFBD>%<06>& <0C>Q<EFBFBD>'<06>( <0C>Q<EFBFBD>)<06>N<EFBFBD>.#/<2F>#/<2F>J;<3B>;<3B> !<21>!<21>%<25>%<25> <11> <11><11><11><11><11>B<01>B<01>+<2B>+<2B> +<2B>+<2B> @<01>@<01>><3E>><3E> <0E> <0E>-<2D>-<2D>
<11>
<11><11><11>J<01>J<01><13><13>B<01>B<01><17><17> <18><18><1B><1B><11><11> <11> <11> <11> <11><11><11><11><11><11><11><11><11>
<11><11> <11><11> <<3C><<3C>&<26>&<26><15><15>=<3D>=<3D>+<2B>+<2B><<3C><<3C><11><11>&<26>&<26>;<3B>;<3B>;<3B>;<3B>;<3B>;<3B><11><11>8F<01>F<01>K<01>K<01>(5<>(5<>T
<11>
<11>')<29>"<22> A%<25>A%<25>F
<15>
<15>O<01>O<01>
<EFBFBD>
<EFBFBD>Q<01>rrN)<07>typingrrrr1rrr<>rr<00><module>r<>s<00><01>,<2C>+<2B><13>o
<EFBFBD>o
r