ó rgdSc@s‡ddlmZmZmZdejfd„ƒYZdefd„ƒYZdefd„ƒYZdefd „ƒYZ d d „Z d S( iÿÿÿÿ(tgrammarttokenttokenizet PgenGrammarcBseZRS((t__name__t __module__(((sB/usr/local/lib/python2.7/site-packages/sphinx/pycode/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((sB/usr/local/lib/python2.7/site-packages/sphinx/pycode/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((sB/usr/local/lib/python2.7/site-packages/sphinx/pycode/pgen2/pgen.pyR>ss2            cCs×i}d}x¾|jtjkrÌx |jtjkrC|jƒq$W|jtjƒ}|jtjdƒ|j ƒ\}}|jtjƒ|j ||ƒ}|j |ƒ|||<|dkr|}qqW||fS(Nt:( RttypeRt ENDMARKERtNEWLINERtexpectR:tOPt parse_rhstmake_dfat simplify_dfa(RRRR*tatzR,((sB/usr/local/lib/python2.7/site-packages/sphinx/pycode/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(sB/usr/local/lib/python2.7/site-packages/sphinx/pycode/pgen2/pgen.pytclosure°s csT||krdSd|| %ds %s -> %d(t enumerateRR#RR!R( RR*R'RYttodoR+R-R.R/tj((sB/usr/local/lib/python2.7/site-packages/sphinx/pycode/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/((sB/usr/local/lib/python2.7/site-packages/sphinx/pycode/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_iR_tstate_jR-((sB/usr/local/lib/python2.7/site-packages/sphinx/pycode/pgen2/pgen.pyROäs     cCs±|jƒ\}}|jdkr+||fStƒ}tƒ}|j|ƒ|j|ƒxI|jdkr¢|jƒ|jƒ\}}|j|ƒ|j|ƒqZW||fSdS(Nt|(t parse_altR=tNFAStateRXR(RRPRQtaatzz((sB/usr/local/lib/python2.7/site-packages/sphinx/pycode/pgen2/pgen.pyRMùs       cCsr|jƒ\}}xS|jdks?|jtjtjfkrg|jƒ\}}|j|ƒ|}qW||fS(Nt(t[(RnRo(t parse_itemR=RHRR:tSTRINGRX(RRPtbR(td((sB/usr/local/lib/python2.7/site-packages/sphinx/pycode/pgen2/pgen.pyRj s  cCsÁ|jdkrU|jƒ|jƒ\}}|jtjdƒ|j|ƒ||fS|jƒ\}}|j}|dkr†||fS|jƒ|j|ƒ|dkr³||fS||fSdS(NRot]t+t*(RuRv(R=RRMRKRRLRXt parse_atom(RRPRQR=((sB/usr/local/lib/python2.7/site-packages/sphinx/pycode/pgen2/pgen.pyRps          cCs¹|jdkrH|jƒ|jƒ\}}|jtjdƒ||fS|jtjtjfkrœt ƒ}t ƒ}|j ||jƒ|jƒ||fS|j d|j|jƒdS(NRnt)s+expected (...) or NAME or STRING, got %s/%s( R=RRMRKRRLRHR:RqRkRXt raise_error(RRPRQ((sB/usr/local/lib/python2.7/site-packages/sphinx/pycode/pgen2/pgen.pyRw(s       cCsc|j|ks*|dk rL|j|krL|jd|||j|jƒn|j}|jƒ|S(Nsexpected %s/%s, got %s/%s(RHRR=RyR(RRHR=((sB/usr/local/lib/python2.7/site-packages/sphinx/pycode/pgen2/pgen.pyRK9s *   cCsi|jjƒ}x/|dtjtjfkr@|jjƒ}qW|\|_|_|_|_|_ dS(Ni( RR/RtCOMMENTtNLRHR=tbegintendtline(Rttup((sB/usr/local/lib/python2.7/site-packages/sphinx/pycode/pgen2/pgen.pyRAscGss|r@y||}Wq@dj|gtt|ƒƒ}q@Xnt||j|jd|jd|jfƒ‚dS(Nt ii(tjointmaptstrt SyntaxErrorR R}R~(Rtmsgtargs((sB/usr/local/lib/python2.7/site-packages/sphinx/pycode/pgen2/pgen.pyRyHs&N(RRRRR0R&R"RR>RRNR`RaRORMRjRpRwRKRRy(((sB/usr/local/lib/python2.7/site-packages/sphinx/pycode/pgen2/pgen.pyR s$   .    $        RkcBseZd„Zdd„ZRS(cCs g|_dS(N(R(R((sB/usr/local/lib/python2.7/site-packages/sphinx/pycode/pgen2/pgen.pyRSscCs|jj||fƒdS(N(RR!(RR/R.((sB/usr/local/lib/python2.7/site-packages/sphinx/pycode/pgen2/pgen.pyRXVsN(RRRRRX(((sB/usr/local/lib/python2.7/site-packages/sphinx/pycode/pgen2/pgen.pyRkQs RUcBs,eZd„Zd„Zd„Zd„ZRS(cCs%||_||k|_i|_dS(N(RVR$R(RRVtfinal((sB/usr/local/lib/python2.7/site-packages/sphinx/pycode/pgen2/pgen.pyR]s cCs||j|s ÿH #