509318396
Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­
<!DOCTYPE html>
<html>
3

  \Œ  ã               @   s°   d Z ddgZddlZddlZddlZddlZddlZddlZddlm	Z	m
Z
mZmZmZ G dd„ deƒZdd	„ Zddd„Zdd„ Zdd„ Zdd„ Zedkr¬ejeeƒ  ƒƒ dS )z#Guido van Rossum <guido@python.org>ÚDriverÚload_grammaré    Né   )ÚgrammarÚparseÚtokenÚtokenizeÚpgenc               @   sH   e Zd Zddd„Zddd„Zddd„Zdd	d
„Zddd„Zddd„ZdS )r   Nc             C   s&   || _ |d krtjƒ }|| _|| _d S )N)r   ÚloggingÚ	getLoggerÚloggerÚconvert)Úselfr   r   r   © r   ú,/usr/lib64/python3.6/lib2to3/pgen2/driver.pyÚ__init__    s
    zDriver.__init__Fc             C   sv  t j| j| jƒ}|jƒ  d}d}d  } } } }	}
d}�x4|D �]}|\}}}}	}
|||fkr¤|\}}||k rˆ|d||  7 }|}d}||k r¤||
||… 7 }|}|tjtjfkrÜ||7 }|	\}}|jdƒr@|d7 }d}q@|t	j
krðtj| }|�r| jjdt	j| ||ƒ |j||||fƒ�r6|�r4| jjdƒ P d}|	\}}|jdƒr@|d7 }d}q@W t jd||||fƒ‚|jS )Nr   r   Ú Ú
z%s %r (prefix=%r)zStop.zincomplete input)r   ZParserr   r   Zsetupr   ÚCOMMENTÚNLÚendswithr   ÚOPZopmapr   ÚdebugÚtok_nameZaddtokenZ
ParseErrorZrootnode)r   Útokensr   ÚpÚlinenoÚcolumnÚtypeÚvalueÚstartÚendZ	line_textÚprefixZ	quintupleZs_linenoZs_columnr   r   r   Úparse_tokens'   sR    



zDriver.parse_tokensc             C   s   t j|jƒ}| j||ƒS )N)r   Úgenerate_tokensÚreadliner#   )r   Ústreamr   r   r   r   r   Úparse_stream_rawW   s    zDriver.parse_stream_rawc             C   s   | j ||ƒS )N)r'   )r   r&   r   r   r   r   Úparse_stream\   s    zDriver.parse_streamc          
   C   s*   t j|d|ƒ}z| j||ƒS |jƒ  X d S )NÚr)ÚcodecsÚopenr(   Úclose)r   ÚfilenameÚencodingr   r&   r   r   r   Ú
parse_file`   s    zDriver.parse_filec             C   s   t jtj|ƒjƒ}| j||ƒS )N)r   r$   ÚioÚStringIOr%   r#   )r   Útextr   r   r   r   r   Úparse_stringh   s    zDriver.parse_string)NN)F)F)F)NF)F)	Ú__name__Ú
__module__Ú__qualname__r   r#   r'   r(   r/   r3   r   r   r   r   r      s   

0


c             C   s:   t jj| ƒ\}}|dkrd}|| djtttjƒƒ d S )Nz.txtr   Ú.z.pickle)ÚosÚpathÚsplitextÚjoinÚmapÚstrÚsysÚversion_info)ÚgtÚheadÚtailr   r   r   Ú_generate_pickle_namen   s    rC   úGrammar.txtTFc             C   s°   |d krt jƒ }|d kr t| ƒn|}|s4t|| ƒ rš|jd| ƒ tj| ƒ}|r¬|jd|ƒ y|j|ƒ W q¬ tk
r– } z|jd|ƒ W Y d d }~X q¬X nt	j
ƒ }|j|ƒ |S )Nz!Generating grammar tables from %szWriting grammar tables to %szWriting failed: %s)r
   r   rC   Ú_newerÚinfor	   Zgenerate_grammarÚdumpÚOSErrorr   ÚGrammarÚload)r@   ZgpÚsaveÚforcer   ÚgÚer   r   r   r   u   s    
 
c             C   s8   t jj| ƒsdS t jj|ƒs dS t jj| ƒt jj|ƒkS )NFT)r8   r9   ÚexistsÚgetmtime)ÚaÚbr   r   r   rE   Š   s
    rE   c             C   sF   t jj|ƒrt|ƒS tt jj|ƒƒ}tj| |ƒ}tj	ƒ }|j
|ƒ |S )N)r8   r9   Úisfiler   rC   ÚbasenameÚpkgutilÚget_datar   rI   Úloads)ÚpackageZgrammar_sourceZpickled_nameÚdatarM   r   r   r   Úload_packaged_grammar“   s    
rZ   c              G   sF   | st jdd … } tjtjt jdd� x| D ]}t|ddd� q,W dS )Nr   z%(message)s)Úlevelr&   ÚformatT)rK   rL   )r>   Úargvr
   ZbasicConfigÚINFOÚstdoutr   )Úargsr@   r   r   r   Úmain§   s    
ra   Ú__main__)rD   NTFN)Ú
__author__Ú__all__r*   r0   r8   r
   rU   r>   r   r   r   r   r   r	   Úobjectr   rC   r   rE   rZ   ra   r4   ÚexitÚintr   r   r   r   Ú<module>   s"   P 
	