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.pyo
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((RRZscCs_t|}|i|}d}x7||jo)t|||dd}|d7}q$W|S(Nii(R)RatlistlenR,RDRRctGetattr(R,RaRkRcR((Rtdecorator_names
cCsN|i|dd}t|djo|i||d}n|}|S(Nii(R,RmRatfuncnameR)tcom_call_functionRQ(R,RaRQRn((Rt	decoratorscCs;g}x(|D] }|i|i|dq
Wt|S(Ni(R0Ratdec_nodelistRR,Rpt
Decorators(R,RaR0Rq((Rt
decoratorssc
Cst|djo|i|dd}	nd}	|dd}|dd}|dd}|dti	jo |i
|d\}
}}nf}
}d}|i|d}|i|d}|dj	o|id=nt|	||
||||d|S(	NiiiiiiiR$(R)RaR,RsRR$R2R%R.tvarargslisttcom_arglisttnamestdefaultstflagsR`RbRjtcodeRtFunction(R,RaRyR2RbR%RxR$RwRsRv((RR\s( 

cCs|ddtijo$|i|dd\}}}nf}}d}|i|d}t
||||d|ddS(NiiiiR$(RaR.RtR,RuRvRwRxRjRytLambda(R,RaRyRxRvRw((RR[
s$
cCs|dd}|i|d}|ddtijo
g}n|i|d}|i	|d}|dj	o|id=nt
||||d|ddS(NiiiiiR$(RaR2R,R`RbR5tCOLONtbasest	com_basesRjRyRRtClass(R,RaRyR2RbR}((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((RRt?scCs
tdS(N(R(R,Ra((RtfpdefBscCs
tdS(N(R(R,Ra((RtfplistEscCs
tdS(N(R(R,Ra((Rtdotted_nameHscCs
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)tDiscardR$R5tEQUALtnodeslRRcRt
com_assignt	OP_ASSIGNtAssignt
com_augassigntlvaltcom_augassign_optopt	AugAssignR(R,RaRRRcRRR((Rt	expr_stmt\s
!cCsg}t|djod}d}nB|ddtijo|i	|d}d}n
d}d}x:t
|t|dD] }|i|i	||qW|ddti
jot||d|ddSnt||d|ddS(NiiiiiR$(R0R)RatstartRtdestR5t
RIGHTSHIFTR,RjRRcRtCOMMAtPrinttPrintnl(R,RaRcRR0R((Rt
print_stmtms 

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|i|dS(Ni(R,RjRa(R,Ra((Rtimport_stmtscCs%t|i|dd|ddS(NiR$ii(tImportR,tcom_dotted_as_namesRa(R,Ra((Rtimport_namescCs|i|d}|ddtijo"t|dgd|ddSnD|d|ddtij}t||i
|d|ddSdS(NiiiRR$i(RN(R,tcom_dotted_nameRatfromnameR5tSTARtFromRR7RUtcom_import_as_names(R,RaRUR((Rtimport_fromscCsVg}x5tdt|dD]}|i||dqWt|d|ddS(NiiR$i(RvRR)RaRcRtGlobal(R,RaRcRv((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(RRR(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(RvRwRxRcR)RaRUR5RRRCRt
CO_VARARGSRRtCO_VARKEYWORDSR,t	com_fpdefRRjRR(R,RaRURcRxRvRwR((RRusB
(



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*cCsT|d}|i|dd}t|djo|dfSn||ddfS(Niii(RUR,RtdotR)R(R,RUR((Rtcom_dotted_as_nameMs
cCsa|d}|i|dg}x:tdt|dD] }|i|i||q9W|S(Niii(RUR,RRvRR)RcR(R,RURcRv((RRWs
cCsM|d}t|djo|dddfSn|dd|ddfS(Niii(RUR)R(R,RU((Rtcom_import_as_name_s
cCsa|d}|i|dg}x:tdt|dD] }|i|i||q9W|S(Niii(RUR,RRvRR)RcR(R,RURcRv((RRis
cCsGg}x:tdt|dD] }|i|i||qW|S(Nii(R}RR)RURcRR,Rj(R,RURcR}((RR~qs
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|dS(Ni(RU(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	SubscriptRltSyntaxErrorR(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_typesR%RRRjtprimaryRRctchR5RRtcom_assign_trailerR7R	R9R
tcom_assign_listRCtcom_assign_name(R,RUR(R+RcR*R((RRsP
0








cCs\g}x=tdt|dD]#}|i|i|||qWt	|dt
|S(NiiR$(tassignsRR)RURcRR,RR(tAssTupleR#(R,RUR(R/Rc((RR's
!cCsg}xtdt|dD]g}|dt|jo-||ddtijo
tdqin|i|i
|||qWt|dt
|S(Niiis"can't assign to list comprehensionR$(R/RR)RURcR.tlist_forR%RR,RR(tAssListR#(R,RUR(R/Rc((RR-s
!cCst|d|d|dS(NiR$i(tAssNameRUR((R,RUR(((RR.scCs|dd}|tijo|i||d|Sn|tijo|i	||d|Sn|ti
jo
tdntd|dS(Niiiscan't assign to function callsunknown trailer type: %s(RURR5tDOTR,tcom_assign_attrR*R(R9tcom_subscriptlistR7R%(R,R*RUR(R((RR,s
cCst||d|d|dS(NiR$i(tAssAttrR*RUR((R,R*RUR(((RR5scCst|}|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,R8RaRcR0RRV((RRs


$cCs>|i||d}t|to|Snt|gS(Ni(R,RRURR Rh(R,RUR((RR^s
cCsN|i||d}t|to|i|in|i	|dS(Ni(
R,RRURR RhRdtextendRR(R,RdRUR((RRfs
R1cCsg}xtdt|D]s}||dtijo|i|d||Sn ||dt	i
joqn|i|i||qWt
|d|diS(NiiR$(tvaluesRR)RaRcR.R1R,tcom_list_comprehensionR5RRRjRR$(R,RaRcR:((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
ListCompIftnewiftifsR%tListCompRQ(R,RQRURR@RR$RCR>RR((RR;s.




cCs|dS(Ni(RU(R,RU((RRA<scCsMg}x:tdt|dD] }|i|i||qWt|S(Nii(	R:RR)RaRcRR,RjR(R,RaRcR:((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(NiiR<iR$iR=is.unexpected generator expression element: %s %di(RUR$R>RR,RRRRjtgenNodet
GenExprForR@RR)Rtcom_gen_iterRt	GenExprIfRCRDR%tTruet
is_outmosttGenExprtGenExprInnerRQ(R,RQRURFR@RR$RCR>RR((RRGs0





cCs|dS(Ni(RU(R,RU((RRHiscCsdg}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,RotprimaryNodeR4tcom_select_memberR9R6tOP_APPLYR%(R,RNRaR((RRuscCs<|dtijo
tdnt||dd|dS(Nismember must be a nameiR$i(RaR5RCR%RlRN(R,RNRa((RROs
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(RaR5R	tCallFuncRNR#R%tkwR)tlen_nodelistRRcRURRR,tcom_argumentRR RLR.RR%RRRt	star_nodet
dstar_nodettokR+Rj(
R,RNRaR+RRWRUR%RSRVRcRRRU((RRosD
(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,RjRRRRR%RRVR5RCtKeywordRU(R,RaRRRURVRR((RRTs +

'cCst|djo|d}|ddtijp+t|djo-|ddtijo/|ddtijo|i|||Sqng}x:tdt|dD] }|i|i||qWt|||dt|S(NiiiiR$(R)RatsubR5R|R.RR,t	com_sliceR*R(t
subscriptsRRcRt
com_subscriptR$R#(R,R*RaR(R[RYRc((RR6s
[cCs|d}|d}|tijo#|ddtijotSn|tijpt|djo|i	|Sn|i
|S(Niii(RUR+RR5R4tEllipsisR|R)R,tcom_sliceobjRj(R,RUR+R((RR\s

(#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$(R0RUR5R|RRRRcR,RjR)R.RRtjR+tSliceobjR#(R,RUR+RcR0R_((RR^s"

+
cCsd}}t|djoF|ddtijo|i|d}q|i|d}n>t|djo*|i|d}|i|d}nt	||||dt|S(NiiiiiR$(
RtlowertupperR)RUR5R|R,RjR#R*R(R#(R,R*RUR(RbRa((RRZs
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`RYRRYRR5RAtsRRRt
small_stmtt
_doc_nodes(R,RURVRYRcR((RR`s<

0 (zRRt__doc__RGRNRRRTRMRXRYRZRmRpRsR\R[R]RRdt	flow_stmtt
compound_stmtRRRtRRRRRRRRRRRRRRRRRRRRRRRRRRRORt
testlist_safet	testlist1R&RRRRRRQRRRRRRRRR8R:R<R>R@RRBRDRt_callersRjR4RuRRRRRRRR~RRRRRR'R-R.R,R5RR^RfRR.RR;RARRHRRRORoRTR6R\R^RZRR`(((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((RRss(RRftcompiler.astRKR.R5tsyst
StandardErrorRtconstsRRRRRPR
RRR#R+RRRRiRRRRRQRRRRRRRRetLESStGREATERtEQEQUALRt	LESSEQUALtGREATEREQUALtNOTEQUALRR\R]RRdRgRRhRRRRRRRRRRRRRRRROR&Rt_legal_node_typesRRRR)RnRpR/R0Rtvttok_nameRs(RR)RKR~RRnRPR+RRRRR.RpRRuRR
RRsRR#R5RRe((Rt?	sB					
			
	`Z
+H	

Anon7 - 2021