ó v®¸Qc@s‡ddlmZmZmZdejfd„ƒYZdefd„ƒYZdefd„ƒYZdefd „ƒYZ d d „Z d S( i(tgrammarttokenttokenizet PgenGrammarcBseZRS((t__name__t __module__(((s(/sys/lib/python2.7/lib2to3/pgen2/pgen.pyRstParserGeneratorcBs°eZdd„Zd„Zd„Zd„Zd„Zd„Zd„Z d„Z d„Z d „Z d „Z d „Zd „Zd „Zd„Zdd„Zd„Zd„ZRS(cCs d}|dkr*t|ƒ}|j}n||_||_tj|jƒ|_|j ƒ|j ƒ\|_ |_ |dk r‰|ƒni|_ |jƒdS(N(tNonetopentclosetfilenametstreamRtgenerate_tokenstreadlinet generatortgettokentparsetdfast startsymboltfirstt addfirstsets(tselfR R t close_stream((s(/sys/lib/python2.7/lib2to3/pgen2/pgen.pyt__init__ s         c Csˆtƒ}|jjƒ}|jƒ|j|jƒ|jd|jƒx;|D]3}dt|jƒ}||j|<||j |tupdate( RR*R,R-ttotalsett overlapcheckR.R/tfsettinversetitsfirsttsymbol((s(/sys/lib/python2.7/lib2to3/pgen2/pgen.pyR>ss2            c Csïi}d}xÖ|jtjkräx |jtjkrC|jƒq$W|jtjƒ}|jtjdƒ|j ƒ\}}|jtjƒ|j ||ƒ}t |ƒ}|j |ƒt |ƒ}|||<|dkr|}qqW||fS(Nt:( RttypeRt ENDMARKERtNEWLINERtexpectR:tOPt parse_rhstmake_dfaRt simplify_dfa( RRRR*tatzR,toldlentnewlen((s(/sys/lib/python2.7/lib2to3/pgen2/pgen.pyR‘s"      c s‡fd†}‡fd†‰t||ƒ|ƒg}x×|D]Ï}i}xS|jD]H}x?|jD]4\}} |dk rcˆ| |j|iƒƒqcqcWqSWxj|jƒD]\\}} x=|D]} | j| kr¿Pq¿q¿Wt| |ƒ} |j| ƒ|j| |ƒq¬Wq=W|S(Ncsi}ˆ||ƒ|S(N((R-tbase(t addclosure(s(/sys/lib/python2.7/lib2to3/pgen2/pgen.pytclosure°s csT||krdSd|| %ds %s -> %d(t enumerateRR#RR!R( RR*R'R[ttodoR+R-R.R/tj((s(/sys/lib/python2.7/lib2to3/pgen2/pgen.pytdump_nfaÍs       cCs~dG|GHxnt|ƒD]`\}}dG|G|jr9dp<dGHx5|jjƒD]$\}}d||j|ƒfGHqNWqWdS(NsDump of DFA fors States(final)R^s %s -> %d(R_R$RR R#(RR*R,R+R-R.R/((s(/sys/lib/python2.7/lib2to3/pgen2/pgen.pytdump_dfaÝs  cCs¦t}x™|r¡t}x†t|ƒD]x\}}xit|dt|ƒƒD]N}||}||krH||=x|D]}|j||ƒqrWt}PqHqHWq"Wq WdS(Ni(tTruetFalseR_trangeRt unifystate(RR,tchangesR+tstate_iRatstate_jR-((s(/sys/lib/python2.7/lib2to3/pgen2/pgen.pyROäs     cCs±|jƒ\}}|jdkr+||fStƒ}tƒ}|j|ƒ|j|ƒxI|jdkr¢|jƒ|jƒ\}}|j|ƒ|j|ƒqZW||fSdS(Nt|(t parse_altR=tNFAStateRZR(RRPRQtaatzz((s(/sys/lib/python2.7/lib2to3/pgen2/pgen.pyRMùs       cCsr|jƒ\}}xS|jdks?|jtjtjfkrg|jƒ\}}|j|ƒ|}qW||fS(Nt(t[(RpRq(t parse_itemR=RHRR:tSTRINGRZ(RRPtbR(td((s(/sys/lib/python2.7/lib2to3/pgen2/pgen.pyRl s  cCsÁ|jdkrU|jƒ|jƒ\}}|jtjdƒ|j|ƒ||fS|jƒ\}}|j}|dkr†||fS|jƒ|j|ƒ|dkr³||fS||fSdS(NRqt]t+t*(RwRx(R=RRMRKRRLRZt parse_atom(RRPRQR=((s(/sys/lib/python2.7/lib2to3/pgen2/pgen.pyRrs          cCs¹|jdkrH|jƒ|jƒ\}}|jtjdƒ||fS|jtjtjfkrœt ƒ}t ƒ}|j ||jƒ|jƒ||fS|j d|j|jƒdS(NRpt)s+expected (...) or NAME or STRING, got %s/%s( R=RRMRKRRLRHR:RsRmRZt raise_error(RRPRQ((s(/sys/lib/python2.7/lib2to3/pgen2/pgen.pyRy(s       cCsc|j|ks*|dk rL|j|krL|jd|||j|jƒn|j}|jƒ|S(Nsexpected %s/%s, got %s/%s(RHRR=R{R(RRHR=((s(/sys/lib/python2.7/lib2to3/pgen2/pgen.pyRK9s *   cCsi|jjƒ}x/|dtjtjfkr@|jjƒ}qW|\|_|_|_|_|_ dS(Ni( RR/RtCOMMENTtNLRHR=tbegintendtline(Rttup((s(/sys/lib/python2.7/lib2to3/pgen2/pgen.pyRAscGss|r@y||}Wq@dj|gtt|ƒƒ}q@Xnt||j|jd|jd|jfƒ‚dS(Nt ii(tjointmaptstrt SyntaxErrorR RR€(Rtmsgtargs((s(/sys/lib/python2.7/lib2to3/pgen2/pgen.pyR{Hs&N(RRRRR0R&R"RR>RRNRbRcRORMRlRrRyRKRR{(((s(/sys/lib/python2.7/lib2to3/pgen2/pgen.pyR s$   .    $        RmcBseZd„Zdd„ZRS(cCs g|_dS(N(R(R((s(/sys/lib/python2.7/lib2to3/pgen2/pgen.pyRSscCs|jj||fƒdS(N(RR!(RR/R.((s(/sys/lib/python2.7/lib2to3/pgen2/pgen.pyRZVsN(RRRRRZ(((s(/sys/lib/python2.7/lib2to3/pgen2/pgen.pyRmQs RWcBs2eZd„Zd„Zd„Zd„ZdZRS(cCs%||_||k|_i|_dS(N(RXR$R(RRXtfinal((s(/sys/lib/python2.7/lib2to3/pgen2/pgen.pyR]s cCs||j|s ÿH %