����JFIF���������
1#@!#!123s
D7net
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
proc
/
self
/
root
/
opt
/
alt
/
python39
/
lib64
/
python3.9
/
lib2to3
/
pgen2
/
__pycache__
/
Filename :
driver.cpython-39.pyc
back
Copy
a ����XC?hQ����������������������@���s����d�Z�dZddgZddlZddlZddlZddlZddlZddlm Z m Z mZmZm Z �G�dd��de�Zd d ��Zddd�Zdd��Zdd��Zdd��Zedkr�e�ee������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_grammar�����N����)�grammar�parse�token�tokenize�pgenc�������������������@���sH���e�Zd�Zddd�Zddd�Zddd�Zdd d �Zddd�Zdd d�ZdS�)r���Nc�����������������C���s&���||�_�|d�u�rt���}||�_||�_d�S�)N)r����logging� getLogger�logger�convert)�selfr���r ���r�����r����9/opt/alt/python39/lib64/python3.9/lib2to3/pgen2/driver.py�__init__���s ����zDriver.__init__Fc�����������������C���s���t��|�j|�j�}|����d}d}d�}�}�}�} } d}|D��]8}|\}}}} } |||fkr�||f|ksxJ�||f|f��|\} }|| k�r�|d| |��7�}| }d}||k�r�|| ||��7�}|}|tjtjfv�r�||7�}| \}}|�d�r<|d7�}d}q<|t j k�r tj|�}|�r(|�j� dt j|�||��|�||||f��rT|�rN|�j� d����q�d}| \}}|�d�r<|d7�}d}q<t��d||||f��|jS�) z4Parse a series of tokens and return the syntax tree.r���r���N��� z%s %r (prefix=%r)zStop.zincomplete input)r���ZParserr���r ���Zsetupr����COMMENT�NL�endswithr����OPZopmapr����debug�tok_nameZaddtokenZ ParseErrorZrootnode)r����tokensr����p�lineno�column�type�value�start�endZ line_text�prefixZ quintupleZs_linenoZs_columnr���r���r����parse_tokens&���sX���� � �zDriver.parse_tokensc�����������������C���s���t��|j�}|��||�S��z*Parse a stream and return the syntax tree.)r����generate_tokens�readliner#���)r����streamr���r���r���r���r����parse_stream_rawV���s����zDriver.parse_stream_rawc�����������������C���s���|���||�S�r$���)r(���)r���r'���r���r���r���r����parse_stream[���s����zDriver.parse_streamc�����������������C���s@���t�j|d|d��}|��||�W��d����S�1�s20����Y��dS�)z(Parse a file and return the syntax tree.�r)�encodingN)�io�openr)���)r����filenamer+���r���r'���r���r���r���� parse_file_���s����zDriver.parse_filec�����������������C���s���t��t�|�j�}|��||�S�)z*Parse a string and return the syntax tree.)r���r%���r,����StringIOr&���r#���)r����textr���r���r���r���r����parse_stringd���s����zDriver.parse_string)NN)F)F)F)NF)F) �__name__� __module__�__qualname__r���r#���r(���r)���r/���r2���r���r���r���r���r������s��� 0 c�����������������C���s:���t�j�|��\}}|dkrd}||�d�tttj���d�S�)Nz.txtr����.z.pickle)�os�path�splitext�join�map�str�sys�version_info)�gt�head�tailr���r���r����_generate_pickle_namej���s����rB����Grammar.txtTFc�������������� ���C���s����|du�rt����}|du�r t|��n|}|s2t||��s�|�d|���t�|��}|r�|�d|��z|�|��W�q��ty��}�z|�d|��W�Y�d}~q�d}~0�0�nt � ��}|�|��|S�)z'Load the grammar (maybe from a pickle).Nz!Generating grammar tables from %szWriting grammar tables to %szWriting failed: %s)r ���r���rB����_newer�infor ���Zgenerate_grammar�dump�OSErrorr����Grammar�load)r?���Zgp�save�forcer����g�er���r���r���r���q���s���� $ c�����������������C���s8���t�j�|��sdS�t�j�|�s dS�t�j�|��t�j�|�kS�)z0Inquire whether file a was written since file b.FT)r7���r8����exists�getmtime)�a�br���r���r���rD�������s ����rD���c�����������������C���sF���t�j�|�rt|�S�tt�j�|��}t�|�|�}t� ��}|� |��|S�)a���Normally, 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. )r7���r8����isfiler���rB����basename�pkgutil�get_datar���rH����loads)�packageZgrammar_sourceZpickled_name�datarL���r���r���r����load_packaged_grammar����s���� rY���c������������������G���sB���|�st�jdd��}�tjtjt�jdd��|�D�]}t|ddd��q*dS�)z�Main program, when run as a script: produce grammar pickle files. Calls load_grammar for each argument, a path to a grammar text file. r���Nz%(message)s)�levelr'����formatT)rJ���rK���)r=����argvr ���ZbasicConfig�INFO�stdoutr���)�argsr?���r���r���r����main����s�����r`����__main__)rC���NTFN)�__doc__� __author__�__all__r,���r7���r ���rT���r=���r���r���r���r���r���r ����objectr���rB���r���rD���rY���r`���r3����exit�intr���r���r���r����<module>���s$���M���