ó 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 |t|tƒst‚t|tƒs*t‚‡fd†}‡fd†‰t||ƒ|ƒg}x×|D]Ï}i}xS|jD]H}x?|jD]4\}} |dk rˆ| |j|iƒƒqqWq}Wxj|jƒD]\\}} x=|D]} | j| kréPqéqéWt| |ƒ} |j | ƒ|j | |ƒqÖWqgW|S(Ncsi}ˆ||ƒ|S(N((R-tbase(t addclosure(s(/sys/lib/python2.7/lib2to3/pgen2/pgen.pytclosure°s csit|tƒst‚||kr%dSd|| %ds %s -> %d(t enumerateRR#RR!R( RR*R'RbttodoR+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)Res %s -> %d(RfR$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(tTruetFalseRftrangeRt unifystate(RR,tchangesR+tstate_iRhtstate_jR-((s(/sys/lib/python2.7/lib2to3/pgen2/pgen.pyRUäs     cCs±|jƒ\}}|jdkr+||fStƒ}tƒ}|j|ƒ|j|ƒxI|jdkr¢|jƒ|jƒ\}}|j|ƒ|j|ƒqZW||fSdS(Nt|(t parse_altRCR]RaR(RRVRWtaatzz((s(/sys/lib/python2.7/lib2to3/pgen2/pgen.pyRSùs       cCsr|jƒ\}}xS|jdks?|jtjtjfkrg|jƒ\}}|j|ƒ|}qW||fS(Nt(t[(RvRw(t parse_itemRCRNRR@tSTRINGRa(RRVtbR(td((s(/sys/lib/python2.7/lib2to3/pgen2/pgen.pyRs s  cCsÁ|jdkrU|jƒ|jƒ\}}|jtjdƒ|j|ƒ||fS|jƒ\}}|j}|dkr†||fS|jƒ|j|ƒ|dkr³||fS||fSdS(NRwt]t+t*(R}R~(RCRRSRQRRRRat parse_atom(RRVRWRC((s(/sys/lib/python2.7/lib2to3/pgen2/pgen.pyRxs          cCs¹|jdkrH|jƒ|jƒ\}}|jtjdƒ||fS|jtjtjfkrœt ƒ}t ƒ}|j ||jƒ|jƒ||fS|j d|j|jƒdS(NRvt)s+expected (...) or NAME or STRING, got %s/%s( RCRRSRQRRRRNR@RyR]Rat raise_error(RRVRW((s(/sys/lib/python2.7/lib2to3/pgen2/pgen.pyR(s       cCsc|j|ks*|dk rL|j|krL|jd|||j|jƒn|j}|jƒ|S(Nsexpected %s/%s, got %s/%s(RNRRCRR(RRNRC((s(/sys/lib/python2.7/lib2to3/pgen2/pgen.pyRQ9s *   cCsi|jjƒ}x/|dtjtjfkr@|jjƒ}qW|\|_|_|_|_|_ dS(Ni( RR/RtCOMMENTtNLRNRCtbegintendtline(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 R…R†(Rtmsgtargs((s(/sys/lib/python2.7/lib2to3/pgen2/pgen.pyRHs&N(RRRRR0R&R"RRDRRTRiRjRURSRsRxRRQRR(((s(/sys/lib/python2.7/lib2to3/pgen2/pgen.pyR s$   .    $        R]cBseZd„Zdd„ZRS(cCs g|_dS(N(R(R((s(/sys/lib/python2.7/lib2to3/pgen2/pgen.pyRSscCsP|dks!t|tƒs!t‚t|tƒs6t‚|jj||fƒdS(N(RR9R‹R;R]RR!(RR/R.((s(/sys/lib/python2.7/lib2to3/pgen2/pgen.pyRaVs!N(RRRRRa(((s(/sys/lib/python2.7/lib2to3/pgen2/pgen.pyR]Qs R^cBs2eZd„Zd„Zd„Zd„ZdZRS(cCspt|tƒst‚tt|ƒjƒtƒs6t‚t|tƒsKt‚||_||k|_i|_dS(N( R9tdictR;titerR/R]R_R$R(RR_tfinal((s(/sys/lib/python2.7/lib2to3/pgen2/pgen.pyR]s ! cCsPt|tƒst‚||jks*t‚t|tƒs?t‚||j|s ÿH %