ó p”þfc@sædZdZddgZddlZddlZddlZddlZddlZddlm Z m Z m Z m Z m Z defd„ƒYZd deedd „Zd „Zd „Zed krâejeeƒ ƒƒndS(sZParser driver. This provides a high-level interface to parse a file into a syntax tree. s#Guido van Rossum tDrivert load_grammariÿÿÿÿNi(tgrammartparsettokenttokenizetpgencBsVeZddd„Zed„Zed„Zed„Zded„Zed„Z RS(cCs:||_|dkr$tjƒ}n||_||_dS(N(RtNonetloggingt getLoggertloggertconvert(tselfRR R ((s,/usr/lib64/python2.7/lib2to3/pgen2/driver.pyt__init__s    cCstj|j|jƒ}|jƒd}d}d }}}} } d} x¿|D]™} | \}}}} } |||fkrà|\} }|| kr·| d| |7} | }d}n||krà| | ||!7} |}qàn|tjtjfkr6| |7} | \}}|j dƒrQ|d7}d}qQqQn|t j krUtj |}n|r~|j jdt j||| ƒn|j||| |fƒr¶|r²|j jdƒnPnd} | \}}|j dƒrQ|d7}d}qQqQWtjd||| |fƒ‚|jS( s4Parse a series of tokens and return the syntax tree.iius s%s %r (prefix=%r)sStop.tsincomplete inputN(RtParserRR tsetupRRtCOMMENTtNLtendswithRtOPtopmapR tdebugttok_nametaddtokent ParseErrortrootnode(R ttokensRtptlinenotcolumnttypetvaluetstarttendt line_texttprefixt quintuplets_linenots_column((s,/usr/lib64/python2.7/lib2to3/pgen2/driver.pyt parse_tokens&sR                cCs"tj|jƒ}|j||ƒS(s*Parse a stream and return the syntax tree.(Rtgenerate_tokenstreadlineR((R tstreamRR((s,/usr/lib64/python2.7/lib2to3/pgen2/driver.pytparse_stream_rawVscCs|j||ƒS(s*Parse a stream and return the syntax tree.(R,(R R+R((s,/usr/lib64/python2.7/lib2to3/pgen2/driver.pyt parse_stream[scCs;tj|d|ƒ}z|j||ƒSWd|jƒXdS(s(Parse a file and return the syntax tree.trN(tcodecstopenR-tclose(R tfilenametencodingRR+((s,/usr/lib64/python2.7/lib2to3/pgen2/driver.pyt parse_file_scCs+tjtj|ƒjƒ}|j||ƒS(s*Parse a string and return the syntax tree.(RR)tStringIOR*R((R ttextRR((s,/usr/lib64/python2.7/lib2to3/pgen2/driver.pyt parse_stringgsN( t__name__t __module__RR tFalseR(R,R-R4R7(((s,/usr/lib64/python2.7/lib2to3/pgen2/driver.pyRs  0  s Grammar.txtc Cs*|dkrtjƒ}n|dkr~tjj|ƒ\}}|dkrTd}n||djttt j ƒƒd}n|s”t ||ƒ r |j d|ƒt j|ƒ}|r&|j d|ƒy|j|ƒWq tk r}|j dt|ƒƒq Xq&ntjƒ}|j|ƒ|S( s'Load the grammar (maybe from a pickle).s.txtRt.s.pickles!Generating grammar tables from %ssWriting grammar tables to %ssWriting failed:N(RRR tostpathtsplitexttjointmaptstrtsyst version_infot_newertinfoRtgenerate_grammartdumptIOErrorRtGrammartload( tgttgptsavetforceR theadttailtgte((s,/usr/lib64/python2.7/lib2to3/pgen2/driver.pyRms&    *!  cCsNtjj|ƒstStjj|ƒs,tStjj|ƒtjj|ƒkS(s0Inquire whether file a was written since file b.(R<R=texistsR:tTruetgetmtime(tatb((s,/usr/lib64/python2.7/lib2to3/pgen2/driver.pyRD†s cGsc|stjd}ntjdtjdtjddƒx$|D]}t|dtdtƒq?WtS(sMain program, when run as a script: produce grammar pickle files. Calls load_grammar for each argument, a path to a grammar text file. itlevelR+tformats %(message)sRMRN(RBtargvRt basicConfigtINFOtstdoutRRT(targsRK((s,/usr/lib64/python2.7/lib2to3/pgen2/driver.pytmains t__main__(t__doc__t __author__t__all__R/R<RR5RBRRRRRRtobjectRRRTR:RRDR_R8texittint(((s,/usr/lib64/python2.7/lib2to3/pgen2/driver.pyt s      (P