KGRKJGETMRETU895U-589TY5MIGM5JGB5SDFESFREWTGR54TY
Server : Apache/2.2.17 (Unix) mod_ssl/2.2.17 OpenSSL/0.9.8e-fips-rhel5 DAV/2 PHP/5.2.17
System : Linux localhost 2.6.18-419.el5 #1 SMP Fri Feb 24 22:47:42 UTC 2017 x86_64
User : nobody ( 99)
PHP Version : 5.2.17
Disable Function : NONE
Directory :  /usr/lib64/python2.4/compiler/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : //usr/lib64/python2.4/compiler/transformer.pyc
m
=5Dc(@sBdZdkTdkZdkZdkZdkZdefdYZdkl	Z	l
Z
dklZlZl
Z
dZdd	Zd
ZdZdZd
fdYZeieieieieieieieieieieieiei ei!ei"gZ#hei$d<ei%d<ei&d<ei'd<ei(d<ei)d<ei*d<Z+ei,ei-ei.ei/ei0ei1ei2eiei3ei4ei5ei6ei7ei8ei9ei:ei;ei<ei=ei>ei?ei@eiAeiBeieieieieieieiCeieieieieiei ei!ei"eiDg(ZEeFedoeEiGeiHneieieieieieieieieiei ei!gZIdkJZJhZKx'eiLiMD]\ZNZOeOeKeN<qWx'eiPiMD]\ZNZOeOeKeN<qWdZQdS(sParse tree transformation module.

Transforms Python source code into an abstract syntax tree (AST)
defined in the ast module.

The simplest ways to invoke this module are via parse and parseFile.
parse(buf) -> AST
parseFile(path) -> AST
(t*NtWalkerErrorcBstZRS(N(t__name__t
__module__(((t,/usr/lib64/python2.4/compiler/transformer.pyR"s(s
CO_VARARGSsCO_VARKEYWORDS(s	OP_ASSIGNs	OP_DELETEsOP_APPLYcCs3t|d}|id}|it|S(NtUs
(topentpathtftreadtsrctclosetparse(RR
R((Rt	parseFile(s
texeccCs_|djp
|djoti|Sn.|djoti|Sn
tddS(NRtsingletevals4compile() arg 3 must be 'exec' or 'eval' or 'single'(tmodetTransformert
parsesuitetbuft	parseexprt
ValueError(RR((RR2s

cCsg}x|D]}t|do|i|iq
t|tdjo|itt|q
t|tgjo|it|q
|i|q
W|S(NtasList(NN(	tltnodestitemthasattrtappendRttypetNonettuple(RRR((RR;scCsnt|dtp|dSnxG|dD];}t|to%t|}|dj	o|Sqfq+q+WdS(Nii(t
isinstancetastRtchildt
extractLineNotlinenoR(R!R$R"((RR#Is
cGs{|d}ti|oJyt||dSWqwtj
o!t|Gt|G|GHqwXntdt|dS(Niis$Can't find appropriate Node type: %s(targstkindRthas_keyt	TypeErrortlenRtstr(R%R&((RtNodeSs
RcBsAtZdZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZ
dZd
ZdZdZdZeZeZeZdZdZdZdZdZdZdZdZdZdZdZ dZ!dZ"dZ#dZ$d Z%d!Z&d"Z'd#Z(d$Z)d%Z*d&Z+d'Z,d(Z-d)Z.d*Z/d+Z0d,Z1d-Z2d.Z3d/Z4e4Z5e4Z6e4Z7d0Z8d1Z9d2Z:d3Z;d4Z<d5Z=d6Z>d7Z?d8Z@d9ZAd:ZBd;ZCd<ZDd=ZEd>ZFd?ZGd@ZHdAZIdBZJdCZKdDZLdEZMdFZNhZOdGZPdHZQdIZRdJZSdKZTdLZUdMZVdNZWdOZXdPZYdQZZdRZ[dSZ\dTZ]dUZ^dVZ_dWZ`dXZadYZbdZZcd[Zdd\Zed]Zfd^Zgeheid_od`ZjdaZkdbZln
dcZjeheiddodeZmdfZnndgZodhZpdiZqdjZrdkZsdlZtdmZudnZvdoZwexdpZyRS(qsUtility object for transforming Python parse trees.

    Exposes the following methods:
        tree = transform(ast_tree)
        tree = parsesuite(text)
        tree = parseexpr(text)
        tree = parsefile(fileob | filename)
    cCsh|_xGtiiD]6\}}t||ot|||i|<qqW|i	|it
i<ht
i|i
<t
i|i<t
i|i<t
i|i<t
i|i<t
i|i<t
i|i<|_d|_dS(N(tselft	_dispatchtsymboltsym_nametitemstvaluetnameRtgetattrtcom_NEWLINEttokentNEWLINEtLPARt	atom_lpartLSQBt	atom_lsqbtLBRACEtatom_lbracet	BACKQUOTEtatom_backquotetNUMBERtatom_numbertSTRINGtatom_stringtNAMEt	atom_namet_atom_dispatchRtencoding(R,R2R1((Rt__init__is	rcCsFt|tp
t|tpti|dd}n|i|S(s,Transform an AST into a modified parse tree.t	line_infoiN(R ttreeRtlisttparsert	ast2tupleR,tcompile_node(R,RI((Rt	transformys cCs|iti|S(s6Return a modified parse tree for the given suite text.N(R,RNRKtsuitettext(R,RP((RRscCs|iti|S(s;Return a modified parse tree for the given expression text.N(R,RNRKtexprRP(R,RP((RRscCs<t|tdjot|}n|i|iS(s@Return a modified parse tree for the contents of the given file.tN(RtfileRR,RR	(R,RS((Rt	parsefilescCs0|d}|tijo%|d|_|d}|d}n|tijo|i|dSn|tijo|i|dSn|tijo|i|dSn|ti	jo|i	|dSn|ti
jo|i
|dSn|tijo|i|dSntd|fdS(Niiisunexpected node type(
tnodetnR.t
encoding_declR,RFtsingle_inputt
file_inputt
eval_inputtlambdeftfuncdeftclassdefR(R,RURV((RRMs$


cCs:|dd}|tijo|i|dSntS(Ni(RURVR5R6R,tcom_stmttPass(R,RURV((RRXscCs|i|ti}|dj	o
d}nd}g}xN||D]B}|dt
ijo(|dt
ijo|i
||qCqCWt|t|S(Nii(R,t
get_docstringtnodelistR.RYtdocRtitstmtsRUR5t	ENDMARKERR6tcom_append_stmttModuletStmt(R,RaRURcRbRd((RRYs

(cCst|i|dS(Ni(t
ExpressionR,tcom_nodeRa(R,Ra((RRZscCst|}|djo|ddjpt|i|}d}xy||jok||dti	jpt||ddti
jptt|||dd}|d7}qIW|S(Niii(R)RatlistlentAssertionErrorR,RDRRcR5tDOTRCtGetattr(R,RaRkRcR((Rtdecorator_names%
#cCst|djpt|ddtijpt|ddtijpt|ddtijpt|i	|dd}t|djo9|ddtijpt|i||d}n|}|S(	Niiiiiii(iii(R)RaRlR5tATR6R.tdotted_nameR,RotfuncnameR7tcom_call_functionRQ(R,RaRQRr((Rt	decoratorscCsVg}xC|D];}|dtijpt|i|i|dq
Wt|S(Nii(	R0Ratdec_nodelistR.RtRlRR,t
Decorators(R,RaR0Ru((Rt
decoratorssc
Csst|djo:|ddtijpt|i|dd}	n!t|djptd}	|dd}|dd}|dd}|dti
jo |i|d\}
}}nf}
}d}|i|d}|i|d}|dj	oCt|tptt|idtpt|id=nt|	||
||||d	|S(
NiiiiiiiiR$(R)RaR.RwRlR,RR$R2R%tvarargslisttcom_arglisttnamestdefaultstflagsR`RbRjtcodeR RhRtDiscardtFunction(R,RaR}R2RbR%R|R$R{RwRz((RR\s( 

cCs|ddtijo$|i|dd\}}}nf}}d}|i|d}t
||||d|ddS(NiiiiR$(RaR.RxR,RyRzR{R|RjR}tLambda(R,RaR}R|RzR{((RR[
s$
cCs|dd}|i|d}|ddtijo
g}n|i|d}|i	|d}|dj	oCt|t
ptt|idtpt|id=nt||||d|ddS(NiiiiiR$(RaR2R,R`RbR5tCOLONtbasest	com_basesRjR}RR RhRlRR~tClass(R,RaR}R2RbR((RR]s

cCs|i|dS(Ni(R,R^Ra(R,Ra((Rtstmt.scCsGg}x4tdt|dD]}|i|||qWt|S(Nii(RdtrangeR)RaRcR,RfRh(R,RaRdRc((Rtsimple_stmt5s
cCs
tdS(N(R(R,Ra((Rt
parameters<scCs
tdS(N(R(R,Ra((RRx?scCs
tdS(N(R(R,Ra((RtfpdefBscCs
tdS(N(R(R,Ra((RtfplistEscCs
tdS(N(R(R,Ra((RRqHscCs
tdS(N(R(R,Ra((Rtcomp_opKscCs
tdS(N(R(R,Ra((RttrailerNscCs
tdS(N(R(R,Ra((RtsliceopQscCs
tdS(N(R(R,Ra((RtargumentTscCs|d}|i||d}t|djot|d|iSn|ddti	joig}xAtdt|ddD]#}|i
|i||tqWt||d|ddSnE|i|d}|i|d}t||d|d|dStddS(NiiR$iiscan't get here(RatenR,tlookup_nodetexprNodeR)R~R$R5tEQUALtnodeslRRcRt
com_assignt	OP_ASSIGNtAssignt
com_augassigntlvaltcom_augassign_optopt	AugAssignR(R,RaRRRcRRR((Rt	expr_stmt\s
!cCs+g}t|djod}d}nt|ddtijoOt|djp|ddtijpt	|i|d}d}n
d}d}x:t|t|dD] }|i|i||qW|ddtijot||d|ddSnt||d|ddS(NiiiiiiR$(R0R)RatstartRtdestR5t
RIGHTSHIFTtCOMMARlR,RjRRcRtPrinttPrintnl(R,RaRcRR0R((Rt
print_stmtms 
2
cCs|i|dtS(Ni(R,RRat	OP_DELETE(R,Ra((Rtdel_stmtscCstd|ddS(NR$ii(R_Ra(R,Ra((Rt	pass_stmtscCstd|ddS(NR$ii(tBreakRa(R,Ra((Rt
break_stmtscCstd|ddS(NR$ii(tContinueRa(R,Ra((Rt
continue_stmtscCsZt|djo"ttdd|ddSnt|i|dd|ddS(NiR$ii(R)RatReturntConstRR,Rj(R,Ra((Rtreturn_stmts"cCs%t|i|dd|ddS(NiR$ii(tYieldR,RjRa(R,Ra((Rt
yield_stmtscCst|djo|i|d}nd}t|djo|i|d}nd}t|djo|i|d}nd}t|||d|ddS(NiiiR$ii(	R)RaR,Rjtexpr3Rtexpr2texpr1tRaise(R,RaRRR((Rt
raise_stmtscCs+t|djpt|i|dS(Nii(R)RaRlR,Rj(R,Ra((Rtimport_stmtscCs%t|i|dd|ddS(NiR$ii(tImportR,tcom_dotted_as_namesRa(R,Ra((Rtimport_namescCs|dddjpt|ddtijpt|dddjpt|i|d}|ddtijo"t	|d	gd|ddSnD|d|ddtij}t	||i
|d|ddSdS(
NiitfromitimportiRR$(RN(RaRlR.RqR,tcom_dotted_nametfromnameR5tSTARtFromRR7RUtcom_import_as_names(R,RaRUR((Rtimport_fromscCsVg}x5tdt|dD]}|i||dqWt|d|ddS(NiiR$i(RzRR)RaRcRtGlobal(R,RaRcRz((Rtglobal_stmts
cCs|i|d}t|djoG|i|d}t|djo|i|d}qwd}nd}}t|||d|ddS(	NiiiiiR$ii(	R,RjRaRR)RRRtExec(R,RaRRR((Rt	exec_stmts

cCs^|i|d}t|djo|i|d}nd}t||d|ddS(NiiiR$ii(R,RjRaRR)RRtAssert(R,RaRR((Rtassert_stmts
cCsg}xetdt|ddD]G}|i||d}|i||d}|i	||fq#Wt|ddjo|i|d}nd}t||d|ddS(NiiiiiR$i(
ttestsRR)RaRcR,RjttestNodet	suiteNodeRtelseNodeRtIf(R,RaRRcRRR((Rtif_stmtscCst|i|d}|i|d}t|djo|i|d}nd}t|||d|ddS(NiiiiR$ii(	R,RjRaRtbodyNodeR)RRtWhile(R,RaRRR((Rt
while_stmtscCs|i|dt}|i|d}|i|d}t|djo|i|d}nd}t||||d|ddS(NiiiiR$ii(R,RRaRt
assignNodeRjtlistNodeRR)RRtFor(R,RaRRRR((Rtfor_stmtscCs6|ddtijo|i|Sn|i|S(Nii(RaR.t
except_clauseR,tcom_try_finallytcom_try_except(R,Ra((Rttry_stmtscCsqt|djo|i|dSng}x6|D].}|dtijo|i||q5q5Wt	|S(Nii(
R)RaR,R^RdRUR.RRfRh(R,RaRURd((RROscCs|it|S(N(R,t
com_binarytTupleRa(R,Ra((Rttestlist scCsct|djoC|ddtijo+|i|d}|i||dSn|i|S(Niii(	R)RaR.tgen_forR,Rjttesttcom_generator_expressionR(R,RaR((Rt
testlist_gexp*s+cCsPt|djo-|ddtijo|i|dSn|it|S(Nii(R)RaR.R[R,RtOr(R,Ra((RR0s+cCs|it|S(N(R,RtAndRa(R,Ra((Rtand_test6scCsF|i|d}t|djot|d|ddSn|S(NiiR$i(R,RjRatresultR)tNot(R,RaR((Rtnot_test:sc	Cs|i|d}t|djo|Sng}xtdt|dD]}||d}|d}|dt
ijoB|d}t|djo!|djo
d}qd}qnt
|d}|dd}|i||i||fqMWt||d|S(	Niiiitnotsnot insis notR$(R,RjRaRUR)tresultsRRctnlRVR5RCRt
_cmp_typesR$RtCompare(	R,RaRURcRRVRRR$((Rt
comparisonAs$



$cCs|it|S(N(R,RtBitorRa(R,Ra((RRQbscCs|it|S(N(R,RtBitxorRa(R,Ra((Rtxor_exprfscCs|it|S(N(R,RtBitandRa(R,Ra((Rtand_exprjscCs|i|d}xtdt|dD]}|i||}||ddti	jo$t
||gd|dd}q,||ddtijo$t||gd|dd}q,t
d||ddq,W|S(NiiiR$sunexpected token: %s(R,RjRaRURR)RctrightR5t	LEFTSHIFTt	LeftShiftRt
RightShiftR(R,RaRURRc((Rt
shift_exprns$$cCs|i|d}xtdt|dD]}|i||}||ddti	jo$t
||gd|dd}q,||ddtijo$t||gd|dd}q,t
d||ddq,W|S(NiiiR$sunexpected token: %s(R,RjRaRURR)RcRR5tPLUStAddtMINUStSubR(R,RaRURRc((Rt
arith_expr{s$$cCs|i|d}xtdt|dD]}|i||}||dd}|t	i
jot||g}n|t	ijot
||g}nZ|t	ijot||g}n4|t	ijot||g}ntd||dd|_q,W|S(Niiisunexpected token: %s(R,RjRaRURR)RcRttR5RtMultSLASHtDivtPERCENTtModtDOUBLESLASHtFloorDivRR$(R,RaRURRcR((Rtterms 
cCs|d}|d}|i|d|dd}|tijot|d|dSnS|ti	jot
|d|dSn+|tijot|d|d}n|S(NiiiR$i(
RateltRR,RRUR5RtUnaryAddRtUnarySubtTILDEtInvert(R,RaRURR((Rtfactors

!cCs|i|d}x|tdt|D]e}||}|dti	jo/t
||i||dgd|dSn|i||}q)W|S(NiiR$i(R,RjRaRURR)RcRR5t
DOUBLESTARtPowertcom_apply_trailer(R,RaRURcR((Rtpowers
cCs.|i|dd|S|ddt_tS(Nii(R,RERaRVR$(R,Ra((RtatomscCs7|ddtijotfSn|i|dS(Nii(RaR5tRPARRR,Rj(R,Ra((RR8scCs7|ddtijotfSn|i|dS(Nii(RaR5tRSQBtListR,tcom_list_constructor(R,Ra((RR:scCs7|ddtijotfSn|i|dS(Nii(RaR5tRBRACEtDictR,t
com_dictmaker(R,Ra((RR<scCst|i|dS(Ni(t	BackquoteR,RjRa(R,Ra((RR>scCs,t|dd}t|d|ddS(NiiR$i(RRatkR(R,RaR((RR@scCsh|ioP|iddgjot|di|i}ntd|i|fSnt|SdS(Nsutf-8s
iso-8859-1s# coding: %s
%s(R,RFtunicodetlittencodeR(R,R((Rtdecode_literals

cCsFd}x%|D]}||i|d7}q
Wt|d|ddS(NRRiR$ii(RRaRUR,RR(R,RaRUR((RRBs
cCs t|ddd|ddS(NiiR$i(tNameRa(R,Ra((RRDscCs|i|dS(Ni(R,R-RU(R,RU((RRscCs|i|d|dS(Nii(R,R-RU(R,RU((RRjscGsttdS(N(R~RR(R,R%((RR4scCsg}g}d}d}x|t|jo||}|dtijp|dti	jo|dtijoO||d}|dti
jo)|i|d|tB}|d}qn|t|jo\||d}|ti	jo||d}ntd||i|d|tB}nPn|i|i||d}|t|joPn||dtijo,|i|i||d|d}n%t|o|itdn|d}qW|||fS(Niiisunexpected token: %si(RzR{R|RcR)RaRUR5RR	RCRt
CO_VARARGSRRtCO_VARKEYWORDSR,t	com_fpdefRRjRR(R,RaRURcR|RzR{R((RRysB
(



cCs9|ddtijo|i|dSn|ddS(Niii(RUR5R7R,t
com_fplist(R,RU((RR6scCsut|djo|i|dSng}x:tdt|dD] }|i|i||qGWt|S(Nii(	R)RUR,RRJRRcRR(R,RURcRJ((RR<scCs_d}xN|D]F}t|tfjo'|ddjo||dd}q
q
W|d S(NRRiit.i(R2RURVR(R,RUR2RV((RREs*cCs|dtijpt|d}|i|dd}t|djo|dfSn|dddjpt|ddt	i
jpt||ddfS(Niitasi(RUR.tdotted_as_nameRlR,RtdotR)RR5RC(R,RUR#((Rtcom_dotted_as_nameMs
cCs||dtijpt|d}|i|dg}x:tdt|dD] }|i
|i||qTW|S(Niii(RUR.tdotted_as_namesRlR,R$RzRR)RcR(R,RURcRz((RRWs
cCs|dtijpt|d}|ddtijptt|djo|dddfSn|dddjp
t||ddtijpt|dd|ddfS(NiiR!i(RUR.timport_as_nameRlR5RCR)R(R,RU((Rtcom_import_as_name_s
cCs||dtijpt|d}|i|dg}x:tdt|dD] }|i
|i||qTW|S(Niii(RUR.timport_as_namesRlR,R'RzRR)RcR(R,RURcRz((RRis
cCsGg}x:tdt|dD] }|i|i||qW|S(Nii(RRR)RURcRR,Rj(R,RURcR((RRqs
cCs5t|i|d|i|dd|ddS(NiiR$i(t
TryFinallyR,RjRa(R,Ra((RRwsc	CsL|i|d}g}d}xtdt|dD]}||}|dtijot|djoJ|i|d}t|djo|i|dt}qd}nd}}|i|||i||dfn|dtijo|i||d}q8q8Wt|i|d||d|ddS(NiiiiR$(R,RjRaRtclausesRRRR)RcRUR.RRRRRRR5RCt	TryExcept(	R,RaRURcRRRRR*((RR}s$


+cCs#|dtijpt|dS(Nii(RUR.t	augassignRl(R,RU((RRscCsJ|i|}|ittttfjo|Snt	d|ii
dS(sReturn node suitable for lvalue of augmented assignment

        Names, slices, and attributes are the only allowable nodes.
        scan't assign to %sN(R,RjRURt	__class__RtSlicet	SubscriptRntSyntaxErrorR(R,RUR((RRs
cCsx~|d}|tijp |tijp|tijo5t|djo|i||Sn|d}q|t
jo.t|djo
tdn|d}q|tijo|ddti
jo
tdnt|djo|i|d}x^tdt|dD]C}||}|dtijo
tdn|i||}q"W|i||d|Sn|d}q|ti
jo|dd}|tijo/|d}|dtijo
tdqoq||tijo?|d}|dtijo
tdn|i||Sq||tijo|i|d|Sq|tdqtd	qWdS(
Niiiscan't assign to operatoriscan't assign to ()scan't assign to []scan't assign to literalsbad assignment(RURR.texprlistRRR)R,tcom_assign_tuplet	assigningt
_assign_typesR0RR
RjtprimaryRRctchR5R	Rtcom_assign_trailerR7RR9Rtcom_assign_listRCtcom_assign_name(R,RUR3R6RcR5R((RRsP
0








cCs\g}x=tdt|dD]#}|i|i|||qWt	|dt
|S(NiiR$(tassignsRR)RURcRR,RR3tAssTupleR#(R,RUR3R:Rc((RR2s
!cCsg}xtdt|dD]}|dt|jo[||ddtijo
tdn||ddti	jpt
||dn|i|i
|||qWt|dt|S(Niiis"can't assign to list comprehensionR$(R:RR)RURcR.tlist_forR0R5RRlRR,RR3tAssListR#(R,RUR3R:Rc((RR8s
2!cCst|d|d|dS(NiR$i(tAssNameRUR3(R,RUR3((RR9scCs|dd}|tijo|i||d|Sn|tijo|i	||d|Sn|ti
jo
tdntd|dS(Niiiscan't assign to function callsunknown trailer type: %s(RURR5RmR,tcom_assign_attrR5R3R9tcom_subscriptlistR7R0(R,R5RUR3R((RR7s
cCst||d|d|dS(NiR$i(tAssAttrR5RUR3(R,R5RUR3((RR?scCst|}|djo%|d}|i||dSng}xDtd|dD]0}||}|i	|i||dqWW||dt|S(s=Compile 'NODE (OP NODE)*' into (type, [ node1, ..., nodeN ]).iiiR$N(R)RaRRVR,RR0RRcRtconstructorR#(R,RBRaRcR0RRV((RRs


$cCsR|i||d}|dj	ptt|to|Snt|gS(Ni(R,RRURRRlR Rh(R,RUR((RR^s
cCsb|i||d}|dj	ptt|to|i	|i
n|i|dS(Ni(R,RRURRRlR RhRdtextendRR(R,RdRUR((RRfs
R<cCsg}xtdt|D]}||dtijo:t||djpt|i	|d||Sn ||dt
ijoqn|i|i
||qWt|d|diS(NiiR$(tvaluesRR)RaRcR.R<RlR,tcom_list_comprehensionR5RRRjRR$(R,RaRcRD((RRs
cCso|dd}g}xE|o=|dd}
|
djo|i|dt}	|i|d}t
|	|g}|dd|_|i|t
|djo
d}qW|i|d}q|
djoq|i|d}t|d|dd}|ii|t
|djo
d}qW|i|d}qtd	||fqWt||d|S(
NiitforiitifR$is,unexpected list comprehension element: %s %d(RUR$tforsRR,RRRRjRtListCompFortnewforRR)Rt
com_list_iterRt
ListCompIftnewiftifsR0tListCompRQ(R,RQRURRJRR$RMRHRR((RREs.




cCs#|dtijpt|dS(Nii(RUR.t	list_iterRl(R,RU((RRK<scCsMg}x:tdt|dD] }|i|i||qWt|S(Nii(	RDRR)RaRcRR,RjR(R,RaRcRD((RR@s
RcCs|dd}g}xB|o:|dd}
|
djo|i|dt}	|i|d}t
|	|gd|dd}|i|t
|djo
d}qT|i|d}q|
djoq|i|d}t|d|dd}|ii|t
|djo
d}qT|i|d}qtd	||fqWt|d
_tt||d|S(NiiRFiR$iRGis.unexpected generator expression element: %s %di(RUR$RHRR,RRRRjtgenNodet
GenExprForRJRR)Rtcom_gen_iterRt	GenExprIfRMRNR0tTruet
is_outmosttGenExprtGenExprInnerRQ(R,RQRURQRJRR$RMRHRR((RRGs0





cCs#|dtijpt|dS(Nii(RUR.tgen_iterRl(R,RU((RRSiscCsdg}xQtdt|dD]7}|i|i|||i||dfqWt|S(Niii(	R0RR)RaRcRR,RjR(R,RaRcR0((RRms
5cCs|dd}|tijo|i||dSn|tijo|i||dSn|ti	jo|i
||dtSntd|dS(Niiisunknown node type: %s(
RaRR5R7R,RstprimaryNodeRmtcom_select_memberR9R@tOP_APPLYR0(R,RZRaR((RRuscCs<|dtijo
tdnt||dd|dS(Nismember must be a nameiR$i(RaR5RCR0RnRZ(R,RZRa((RR[s
c
CsC|dtijot|gdt|Sng}d}t|}xt
d|dD]}
||
}|dti
jp|dtijoPn|i||\}}|djoHt|to8t|djo%|ddtijo
tdn|i|q\W|
d}
|
|jo&||
dtijo|
d}
nd}}	x|
|jo||
}||
d}|
d}
|dti
jo-|dj	o
tdn|i|}qa|dtijo-|	dj	o
tdn|i|}	qatd	|qaWt||||	dt|S(
NiR$iiis&generator expression needs parenthesiss$already have the varargs indentifiers#already have the kwargs indentifiersunknown node type: %s(RaR5RtCallFuncRZR#R%tkwR)tlen_nodelistRRcRURR	R,tcom_argumentRR RWR.RR0RRRt	star_nodet
dstar_nodettokR6Rj(
R,RZRaR6RRcRUR%R_RbRcR^Ra((RRssD
(H

%







cCsDt|djoI|ddtijo1|i|d}d|i||dfSnt|djo/|o
t	dnd|i|dfSn|i|d}|d}x6t|djo"|dti
jo|d}qW|dti
jot	d|dnt|d|d|d}d|fS(Niiiis!non-keyword arg after keyword args#keyword can't be an expression (%s)R$(R)RaR.RR,RjRRR^R0RRVR5RCtKeywordRU(R,RaR^RURVRR((RR`s +

'cCst|djo|d}|ddtijp+t|djo-|ddtijo/|ddtijo|i|||Sqng}x:tdt|dD] }|i|i||qWt|||dt|S(NiiiiR$(R)RatsubR5RR.RR,t	com_sliceR5R3t
subscriptsRRcRt
com_subscriptR/R#(R,R5RaR3RgReRc((RR@s
[cCs|d}|d}|tijo#|ddtijotSn|tijpt|djo|i	|Sn|i
|S(Niii(RUR6RR5RmtEllipsisRR)R,tcom_sliceobjRj(R,RUR6R((RRhs

(#cCsEg}|ddtijo|itdd}n!|i|i	|dd}|t
|jo@||dtijo(|i|i	|||d}n|itdxkt
|t
|D]T}||}t
|djo|itdq|i|i	|dqWt|dt|S(NiiiiR$(R0RUR5RRRRRcR,RjR)R.RRtjR6tSliceobjR#(R,RUR6RcR0Rk((RRjs"

+
cCsd}}t|djoF|ddtijo|i|d}q|i|d}n>t|djo*|i|d}|i|d}nt	||||dt|S(NiiiiiR$(
RtlowertupperR)RUR5RR,RjR.R5R3R#(R,R5RUR3RnRm((RRfs
cCs|djo|d}|d}n|tijoft|djo|i|dSnx3|D]+}|dti	jo|i|SqdqdWdSn|ti
jo>x3|D]+}|dti	jo|i|SqqWdSn|tijoS|ddti
jo3d}x"|D]}|t|d}qW|SndSn|ti	jp |tijp|tijo|i|dSn|tjo(t|djo|i|dSndS(NiiRR(RVRRUR.ROR)R,R`ReRRYR
R5RAtsRRRt
small_stmtt
_doc_nodes(R,RURVReRoR((RR`s<

0 (zRRt__doc__RGRNRRRTRMRXRYRZRoRtRwR\R[R]RRpt	flow_stmtt
compound_stmtRRRxRRRqRRRRRRRRRRRRRRRRRRRRRRRRORt
testlist_safet	testlist1R1RRRRRRQRRRRRRRR
R8R:R<R>R@RRBRDRt_callersRjR4RyRRRR$RR'RRRRRRRR2R8R9R7R?RR^RfRR.RRERKRRSRRR[RsR`R@RhRjRfRR`(((RR_s							
						!	
																														
									!				
			
	
													4					
		
						
	,		
		
					
	#
		"
				+			
	$	t<t>s==s<=s>=s!=RcCsg}x{|D]s}t|tijo|iti||q
t|ti	jo|i|q
|it
|q
W|S(N(RRIRRttypestIntTypeRt_namestgett
StringTypet
debug_tree(RIRR((RRs(RRrtcompiler.astRKR.R5tsyst
StandardErrorRtconstsRRRRR\R
RRR#R+RRRRuRRRRRQRRRRRRRRqtLESStGREATERtEQEQUALRt	LESSEQUALtGREATEREQUALtNOTEQUALRR\R]RRpRsRRtRRRRRRRRRRRRRRRROR1R
t_legal_node_typesRRRR4RzR|R/R0Rtvttok_nameR(RR4RKRRRzR\R+RRRRR.R|RRRR
RRRR#R5RRq((Rt?	sB					
			
	`Z
+H	

Anon7 - 2021