ó ÿgdSc@s¨dZdZddgZddlZddlZddlZddlmZmZm Z m Z m Z de fd„ƒYZ d„Zd deedd „Zd „ZdS( sZParser driver. This provides a high-level interface to parse a file into a syntax tree. s#Guido van Rossum tDrivert load_grammariÿÿÿÿN(tgrammartparsettokenttokenizetpgencBsSeZddd„Zed„Zed„Zed„Zed„Zed„Z RS(cCs:||_|dkr$tjƒ}n||_||_dS(N(RtNonetloggingt getLoggertloggertconvert(tselfRR R ((sD/usr/local/lib/python2.7/site-packages/sphinx/pycode/pgen2/driver.pyt__init__s    cCsËtj|j|jƒ}|jƒd}d}d}}}} } d} tj} xn|D]N\}}}} } |||fkrã|\} }|| krº| d| |7} | }d}n||krã| | ||!7} |}qãn|tjtj fkr9| |7} | \}}|j dƒrZ|d7}d}qZqZn|t j krU| |}n|j ||| |fƒrtPnd} | \}}|j dƒrZ|d7}d}qZqZWtjd||| ƒ‚|jS(s4Parse a series of tokens and return the syntax tree.iits sincomplete inputN(RtParserRR tsetupRtopmapRtCOMMENTtNLtendswithRtOPtaddtokent ParseErrortrootnode(R ttokenstdebugtptlinenotcolumnttypetvaluetstarttendt line_texttprefixRts_linenots_column((sD/usr/local/lib/python2.7/site-packages/sphinx/pycode/pgen2/driver.pyt parse_tokens%sF               cCs"tj|jƒ}|j||ƒS(s*Parse a stream and return the syntax tree.(Rtgenerate_tokenstreadlineR&(R tstreamRR((sD/usr/local/lib/python2.7/site-packages/sphinx/pycode/pgen2/driver.pytparse_stream_rawTscCs|j||ƒS(s*Parse a stream and return the syntax tree.(R*(R R)R((sD/usr/local/lib/python2.7/site-packages/sphinx/pycode/pgen2/driver.pyt parse_streamYscCs2t|ƒ}z|j||ƒSWd|jƒXdS(s(Parse a file and return the syntax tree.N(topenR+tclose(R tfilenameRR)((sD/usr/local/lib/python2.7/site-packages/sphinx/pycode/pgen2/driver.pyt parse_file]s cCs(tjt|ƒjƒ}|j||ƒS(s*Parse a string and return the syntax tree.(RR'tgenerate_linestnextR&(R ttextRR((sD/usr/local/lib/python2.7/site-packages/sphinx/pycode/pgen2/driver.pyt parse_stringesN( t__name__t __module__RR tFalseR&R*R+R/R3(((sD/usr/local/lib/python2.7/site-packages/sphinx/pycode/pgen2/driver.pyRs  /   ccs5x|jtƒD] }|VqWxtr0dVq"WdS(s<Generator that behaves like readline without using StringIO.RN(t splitlinestTrue(R2tline((sD/usr/local/lib/python2.7/site-packages/sphinx/pycode/pgen2/driver.pyR0ks  s Grammar.txtc Cs2|d krtjƒ}n|d kr†tjj|ƒ\}}|dkrTd}n||ddjttt j d ƒƒd}n|sœt ||ƒ r|j d|ƒt j|ƒ}|r.|j d|ƒy|j|ƒWqtk r}|j d t|ƒƒqXq.ntjƒ}|j|ƒ|S( s'Load the grammar (maybe from a pickle).s.txtRs-sphinxt.is.pickles!Generating grammar tables from %ssWriting grammar tables to %ssWriting failed:N(RRR tostpathtsplitexttjointmaptstrtsphinxt version_infot_newertinfoRtgenerate_grammartdumptIOErrorRtGrammartload( tgttgptsavetforceR theadttailtgte((sD/usr/local/lib/python2.7/site-packages/sphinx/pycode/pgen2/driver.pyRss&    2!  cCsNtjj|ƒstStjj|ƒs,tStjj|ƒtjj|ƒkS(s0Inquire whether file a was written since file b.(R;R<texistsR6R8tgetmtime(tatb((sD/usr/local/lib/python2.7/site-packages/sphinx/pycode/pgen2/driver.pyRCŽs (t__doc__t __author__t__all__R;RRAtsphinx.pycode.pgen2RRRRRtobjectRR0RR8R6RRC(((sD/usr/local/lib/python2.7/site-packages/sphinx/pycode/pgen2/driver.pyt s    (O