Viewing File: /opt/alt/python35/lib64/python3.5/lib2to3/pgen2/__pycache__/driver.cpython-35.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__FcCs"tj|j|j}|jd}d}d}}}}	}
d}x|D]}|\}}}}	}
|||fkr||f|kst||f|f|\}
}||
kr|d|
|7}|
}d}||kr||
||7}|}|tjtjfkrT||7}|	\}}|j	drQ|d7}d}qQ|t
jkrptj|}|r|j
jdt
j||||j||||fr|r|j
jdPd}|	\}}|j	drQ|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
ZsetupAssertionErrorrCOMMENTNLendswithrOPZopmaprdebugtok_nameZaddtokenZ
ParseErrorZrootnode)rtokensrplinenocolumntypevaluestartendZ	line_textprefixZ	quintupleZs_linenoZs_columnrrrparse_tokens&sT

*




	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)r0r4rrrrrs0cCsOtjj|\}}|dkr*d}||djtttjdS)Nz.txtr.z.pickle)ospathsplitextjoinmapstrsysversion_info)gtheadtailrrr_generate_pickle_namemsrDzGrammar.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
rrD_newerinfor	Zgenerate_grammardumpOSErrorrZGrammarload)rAZgpsaveforcergerrrrts&
cCsNtjj|sdStjj|s,dStjj|tjj|kS)z0Inquire whether file a was written since file b.FT)r9r:existsgetmtime)abrrrrEs
rEcGsf|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)srJTrK)r?argvr
ZbasicConfigINFOstdoutr)argsrArrrmains
rX__main__)__doc__
__author____all__r+r1r9r
r?rrrrrr	objectrrDrrErXr5exitintrrrr<module>s (P	

Back to Directory File Manager