
    3\hQ                         	 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mZm	Z	m
Z
mZmZ  G d de          Zd Z	 	 ddZd Zd Zd Zedk    r$ ej         e e                                  dS dS )z#Guido van Rossum <guido@python.org>Driverload_grammar    N   )grammarparsetokentokenizepgenc                   >    e Zd Zd	dZd
dZd
dZd
dZddZd
dZdS )r   Nc                 Z    || _         |t          j                    }|| _        || _        d S N)r   logging	getLoggerloggerconvert)selfr   r   r   s       >/opt/python-3.11.14/usr/lib/python3.11/lib2to3/pgen2/driver.py__init__zDriver.__init__   s.    >&((F    Fc                 .   	 t          j        | j        | j                  }|                                 d}d}d x}x}x}x}	}
d}|D ].}|\  }}}}	}
|||fk    r/|\  }}||k     r|d||z
  z  z  }|}d}||k     r||
||         z  }|}|t
          j        t
          j        fv r'||z  }|	\  }}|                    d          r|dz  }d}|t          j
        k    rt          j        |         }|r-| j                            dt          j        |         ||           |                    ||||f          r|r| j                            d            n>d}|	\  }}|                    d          r|dz  }d}0t          j        d||||f          |j        S )Nr   r    
z%s %r (prefix=%r)zStop.zincomplete input)r   Parserr   r   setupr	   COMMENTNLendswithr   OPopmapr   debugtok_nameaddtoken
ParseErrorrootnode)r   tokensr    plinenocolumntypevaluestartend	line_textprefix	quintuples_linenos_columns                  r   parse_tokenszDriver.parse_tokens&   s   BLt|44				1555u5u5sY $	A $	AI1:.D%Y(((%*"(H$$dh&788F%FFH$$ix88F%F((+666%!$>>$'' aKFFux}U+ G!!"5"'."6vG G Gzz$77  /K%%g...F NFF~~d## ! "#5#'A A Azr   c                 b    	 t          j        |j                  }|                     ||          S r   )r	   generate_tokensreadliner2   )r   streamr    r%   s       r   parse_stream_rawzDriver.parse_stream_rawV   s-    8)&/::  ///r   c                 0    	 |                      ||          S r   )r7   )r   r6   r    s      r   parse_streamzDriver.parse_stream[   s    8$$VU333r   c                     	 t          j        |d|          5 }|                     ||          cd d d            S # 1 swxY w Y   d S )Nr)encoding)ioopenr9   )r   filenamer<   r    r6   s        r   
parse_filezDriver.parse_file_   s    6WXsX666 	4&$$VU33	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4s   <A A c                     	 t          j        t          j        |          j                  }|                     ||          S r   )r	   r4   r=   StringIOr5   r2   )r   textr    r%   s       r   parse_stringzDriver.parse_stringd   s8    8)"+d*;*;*DEE  ///r   )NN)F)NF)	__name__
__module____qualname__r   r2   r7   r9   r@   rD    r   r   r   r      s           . . . .`0 0 0 0
4 4 4 44 4 4 4
0 0 0 0 0 0r   c                     t           j                            |           \  }}|dk    rd}||z   d                    t	          t
          t          j                            z   dz   S )Nz.txtr   .z.pickle)ospathsplitextjoinmapstrsysversion_info)gtheadtails      r   _generate_pickle_namerV   j   sV    !!"%%JD$v~~$;#c3+;"<"<===	IIr   Grammar.txtTFc                    	 |t          j                    }|t          |           n|}|st          ||           s|                    d|            t          j        |           }|rZ|                    d|           	 |                    |           nV# t          $ r }|                    d|           Y d }~n1d }~ww xY wn(t          j
                    }|                    |           |S )Nz!Generating grammar tables from %szWriting grammar tables to %szWriting failed: %s)r   r   rV   _newerinfor
   generate_grammardumpOSErrorr   Grammarload)rS   gpsaveforcer   ges          r   r   r   q   s	   1~"$$&(j	r	"	"	"bB F2rNN 7<<<!"%% 	5KK6;;;5r



 5 5 50!444444445		5 O	r


Hs   ?B 
B?B::B?c                    	 t           j                            |           sdS t           j                            |          sdS t           j                            |           t           j                            |          k    S )NFT)rK   rL   existsgetmtime)abs     r   rY   rY      sf    :7>>! u7>>! t7A"'"2"21"5"555r   c                 6   	 t           j                            |          rt          |          S t	          t           j                            |                    }t          j        | |          }t          j	                    }|
                    |           |S r   )rK   rL   isfiler   rV   basenamepkgutilget_datar   r^   loads)packagegrammar_sourcepickled_namedatarc   s        r   load_packaged_grammarrt      s}    	 
w~~n%% ,N+++()9)9.)I)IJJLG\22DAGGDMMMHr   c                      	 | st           j        dd          } t          j        t          j        t           j        d           | D ]}t          |dd           dS )Nr   z%(message)s)levelr6   formatT)ra   rb   )rQ   argvr   basicConfigINFOstdoutr   )argsrS   s     r   mainr}      sq      x|gl3:,. . . . 0 0Rd$/////4r   __main__)rW   NTFN)
__author____all__r=   rK   r   rm   rQ   r   r   r   r   r	   r
   objectr   rV   r   rY   rt   r}   rE   exitintrH   r   r   <module>r      sA   3
^
$ 
			 				   



 4 3 3 3 3 3 3 3 3 3 3 3 3 3J0 J0 J0 J0 J0V J0 J0 J0ZJ J J '+04   *6 6 6  (   zCHSSTTVV__ r   