Viewing File: /opt/alt/python35/lib64/python3.5/lib2to3/pgen2/__pycache__/driver.cpython-35.opt-1.pyc



YfY@sdZdZddgZddlZddlZddlZddlZddlZddlm	Z	m
Z
mZmZm
Z
GdddeZd	d
Zdddd
dddZddZddZedkrejeedS)zZParser driver.

This provides a high-level interface to parse a file into a syntax tree.

z#Guido van Rossum <guido@python.org>Driverload_grammarN)grammarparsetokentokenizepgenc@speZdZddddZdddZdddZdd	d
ZddddZdd
dZdS)rNcCs7||_|dkr!tj}||_||_dS)N)rlogging	getLoggerloggerconvert)selfrr
rr9/opt/alt/python35/lib64/python3.5/lib2to3/pgen2/driver.py__init__s
		zDriver.__init__FcCstj|j|j}|jd}d}d}}}}	}
d}x|D]~}|\}}}}	}
|||fkr|\}
}||
kr|d|
|7}|
}d}||kr||
||7}|}|tjtjfkr*||7}|	\}}|jdrQ|d7}d}qQ|t	j
krFtj|}|rl|jj
dt	j||||j||||fr|r|jj
dPd}|	\}}|jdrQ|d7}d}qQWtjd||||f|jS)	z4Parse a series of tokens and return the syntax tree.rrN
z%s %r (prefix=%r)zStop.zincomplete input)rZParserrr
ZsetuprCOMMENTNLendswithrOPZopmaprdebugtok_nameZaddtokenZ
ParseErrorZrootnode)rtokensrplinenocolumntypevaluestartendZ	line_textprefixZ	quintupleZs_linenoZs_columnrrrparse_tokens&sR






	zDriver.parse_tokenscCs"tj|j}|j||S)z*Parse a stream and return the syntax tree.)rgenerate_tokensreadliner#)rstreamrrrrrparse_stream_rawVszDriver.parse_stream_rawcCs|j||S)z*Parse a stream and return the syntax tree.)r')rr&rrrrparse_stream[szDriver.parse_streamc
Cs;tj|d|}z|j||SWd|jXdS)z(Parse a file and return the syntax tree.rN)codecsopenr(close)rfilenameencodingrr&rrr
parse_file_szDriver.parse_filecCs+tjtj|j}|j||S)z*Parse a string and return the syntax tree.)rr$ioStringIOr%r#)rtextrrrrrparse_stringgszDriver.parse_string)	__name__
__module____qualname__rr#r'r(r/r3rrrrrs0cCsOtjj|\}}|dkr*d}||djtttjdS)Nz.txtr.z.pickle)ospathsplitextjoinmapstrsysversion_info)gtheadtailrrr_generate_pickle_namemsrCzGrammar.txtTFcCs|dkrtj}|dkr0t|n|}|sLt||r|jd|tj|}|r|jd|y|j|Wqtk
r}z|jd|WYdd}~XqXnt	j
}|j||S)z'Load the grammar (maybe from a pickle).Nz!Generating grammar tables from %szWriting grammar tables to %szWriting failed: %s)r
rrC_newerinfor	Zgenerate_grammardumpOSErrorrZGrammarload)r@Zgpsaveforcergerrrrts&
cCsNtjj|sdStjj|s,dStjj|tjj|kS)z0Inquire whether file a was written since file b.FT)r8r9existsgetmtime)abrrrrDs
rDcGsf|stjdd}tjdtjdtjddx$|D]}t|ddd	dqBWdS)
zMain program, when run as a script: produce grammar pickle files.

    Calls load_grammar for each argument, a path to a grammar text file.
    rNlevelr&formatz%(message)srITrJ)r>argvr
ZbasicConfigINFOstdoutr)argsr@rrrmains
rW__main__)__doc__
__author____all__r*r0r8r
r>rrrrrr	objectrrCrrDrWr4exitintrrrr<module>s (P	

Back to Directory File Manager