pfc@sddlmZmZmZdejfdYZdefdYZdefdYZdefd YZ d d Z d S( i(tgrammarttokenttokenizet PgenGrammarcBseZRS((t__name__t __module__(((s*/usr/lib64/python2.7/lib2to3/pgen2/pgen.pyRstParserGeneratorcBseZddZdZdZdZdZdZdZ dZ dZ d Z d Z d Zd Zd ZdZddZdZdZRS(cCsd}|dkr*t|}|j}n||_||_tj|j|_|j |j \|_ |_ |dk r|ni|_ |jdS(N(tNonetopentclosetfilenametstreamRtgenerate_tokenstreadlinet generatortgettokentparsetdfast startsymboltfirstt addfirstsets(tselfR R t close_stream((s*/usr/lib64/python2.7/lib2to3/pgen2/pgen.pyt__init__ s         c Cst}|jj}|j|j|j|jd|jx;|D]3}dt|j}||j|<||j |t|tstt|ts*tfd}fdt|||g}x|D]}i}xS|jD]H}x?|jD]4\}} |dk r| |j|iqqWq}Wxj|jD]\\}} x=|D]} | j| krPqqWt| |} |j | |j | |qWqgW|S(Ncsi}|||S(N((R-tbase(t addclosure(s*/usr/lib64/python2.7/lib2to3/pgen2/pgen.pytclosures csit|tst||kr%dSd|| %ds %s -> %d(t enumerateRR#RR!R( RR*R'RbttodoR+R-R.R/tj((s*/usr/lib64/python2.7/lib2to3/pgen2/pgen.pytdump_nfas       cCs~dG|GHxnt|D]`\}}dG|G|jr9dp<dGHx5|jjD]$\}}d||j|fGHqNWqWdS(NsDump of DFA fors States(final)Res %s -> %d(RfR$RR R#(RR*R,R+R-R.R/((s*/usr/lib64/python2.7/lib2to3/pgen2/pgen.pytdump_dfas  cCst}x|rt}xt|D]x\}}xit|dt|D]N}||}||krH||=x|D]}|j||qrWt}PqHqHWq"Wq WdS(Ni(tTruetFalseRftrangeRt unifystate(RR,tchangesR+tstate_iRhtstate_jR-((s*/usr/lib64/python2.7/lib2to3/pgen2/pgen.pyRUs     cCs|j\}}|jdkr+||fSt}t}|j||j|xI|jdkr|j|j\}}|j||j|qZW||fSdS(Nt|(t parse_altRCR]RaR(RRVRWtaatzz((s*/usr/lib64/python2.7/lib2to3/pgen2/pgen.pyRSs       cCsr|j\}}xS|jdks?|jtjtjfkrg|j\}}|j||}qW||fS(Nt(t[(RvRw(t parse_itemRCRNRR@tSTRINGRa(RRVtbR(td((s*/usr/lib64/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*/usr/lib64/python2.7/lib2to3/pgen2/pgen.pyRxs          cCs|jdkrH|j|j\}}|jtjd||fS|jtjtjfkrt }t }|j ||j|j||fS|j d|j|jdS(NRvt)s+expected (...) or NAME or STRING, got %s/%s( RCRRSRQRRRRNR@RyR]Rat raise_error(RRVRW((s*/usr/lib64/python2.7/lib2to3/pgen2/pgen.pyR(s       cCsc|j|ks*|dk rL|j|krL|jd|||j|jn|j}|j|S(Nsexpected %s/%s, got %s/%s(RNRRCRR(RRNRC((s*/usr/lib64/python2.7/lib2to3/pgen2/pgen.pyRQ9s *   cCsi|jj}x/|dtjtjfkr@|jj}qW|\|_|_|_|_|_ dS(Ni( RR/RtCOMMENTtNLRNRCtbegintendtline(Rttup((s*/usr/lib64/python2.7/lib2to3/pgen2/pgen.pyRAscGss|r@y||}Wq@dj|gtt|}q@Xnt||j|jd|jd|jfdS(Nt ii(tjointmaptstrt SyntaxErrorR RR(Rtmsgtargs((s*/usr/lib64/python2.7/lib2to3/pgen2/pgen.pyRHs&N(RRRRR0R&R"RRDRRTRiRjRURSRsRxRRQRR(((s*/usr/lib64/python2.7/lib2to3/pgen2/pgen.pyR s$   .    $        R]cBseZdZddZRS(cCs g|_dS(N(R(R((s*/usr/lib64/python2.7/lib2to3/pgen2/pgen.pyRSscCsP|dks!t|ts!tt|ts6t|jj||fdS(N(RR9RR;R]RR!(RR/R.((s*/usr/lib64/python2.7/lib2to3/pgen2/pgen.pyRaVs!N(RRRRRa(((s*/usr/lib64/python2.7/lib2to3/pgen2/pgen.pyR]Qs R^cBs2eZdZdZdZdZdZRS(cCspt|tsttt|jts6tt|tsKt||_||k|_i|_dS(N( R9tdictR;titerR/R]R_R$R(RR_tfinal((s*/usr/lib64/python2.7/lib2to3/pgen2/pgen.pyR]s ! cCsPt|tst||jks*tt|ts?t||j|s H %