
Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­
<!DOCTYPE html>
<html>
U
    ¡ê,aÛ  ã                   @   s0   d dl mZ G dd„ deƒZG dd„ deƒZdS )é   )Útokenc                   @   s   e Zd Zdd„ Zdd„ ZdS )Ú
ParseErrorc                 C   s4   t  | d||||f ¡ || _|| _|| _|| _d S )Nz!%s: type=%r, value=%r, context=%r)Ú	ExceptionÚ__init__ÚmsgÚtypeÚvalueÚcontext)Úselfr   r   r   r	   © r   ú8/opt/alt/python38/lib64/python3.8/lib2to3/pgen2/parse.pyr      s    
ÿzParseError.__init__c                 C   s   t | ƒ| j| j | j| jffS ©N)r   r   r   r	   )r
   r   r   r   Ú
__reduce__   s    zParseError.__reduce__N)Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r   r   r      s   r   c                   @   sH   e Zd Zddd„Zddd„Zdd„ Zdd	„ Zd
d„ Zdd„ Zdd„ Z	dS )ÚParserNc                 C   s   || _ |pdd„ | _d S )Nc                 S   s   |S r   r   )ÚgrammarÚnoder   r   r   Ú<lambda>Z   ó    z!Parser.__init__.<locals>.<lambda>)r   Úconvert)r
   r   r   r   r   r   r   <   s    zParser.__init__c                 C   sH   |d kr| j j}|d d g f}| j j| d|f}|g| _d | _tƒ | _d S )Né    )r   ÚstartÚdfasÚstackÚrootnodeÚsetÚ
used_names)r
   r   ÚnewnodeZ
stackentryr   r   r   Úsetup\   s    zParser.setupc                 C   s0  |   |||¡}| jd \}}}|\}}	|| }
|
D ]º\}}| jj| \}}||kr¬|  ||||¡ |}|| d|fgkr¦|  ¡  | jsŒ dS | jd \}}}|\}}	qf dS |dkr2| jj| }|\}}||kr2|  || jj| ||¡  qq2d|f|
k�r|  ¡  | j�s*td|||ƒ‚qtd|||ƒ‚qd S )Néÿÿÿÿr   TFé   ztoo much inputz	bad input)	Úclassifyr   r   ÚlabelsÚshiftÚpopr   Úpushr   )r
   r   r   r	   ÚilabelÚdfaÚstater   ZstatesÚfirstZarcsÚiÚnewstateÚtÚvZitsdfaZ	itsstatesZitsfirstr   r   r   Úaddtokent   s>    
  ÿzParser.addtokenc                 C   sX   |t jkr0| j |¡ | jj |¡}|d k	r0|S | jj |¡}|d krTtd|||ƒ‚|S )Nz	bad token)	r   ÚNAMEr   Úaddr   ÚkeywordsÚgetÚtokensr   )r
   r   r   r	   r(   r   r   r   r#   ¤   s    
zParser.classifyc           	      C   sT   | j d \}}}|||d f}|  | j|¡}|d k	r@|d  |¡ |||f| j d< d S ©Nr!   )r   r   r   Úappend)	r
   r   r   r-   r	   r)   r*   r   r   r   r   r   r%   ²   s    zParser.shiftc           	      C   sB   | j d \}}}|d |g f}|||f| j d< | j  |d|f¡ d S )Nr!   r   )r   r7   )	r
   r   Znewdfar-   r	   r)   r*   r   r   r   r   r   r'   »   s    zParser.pushc                 C   s`   | j  ¡ \}}}|  | j|¡}|d k	r\| j rL| j d \}}}|d  |¡ n|| _| j| j_d S r6   )r   r&   r   r   r7   r   r   )r
   ZpopdfaZpopstateZpopnoder   r)   r*   r   r   r   r   r&   Â   s    z
Parser.pop)N)N)
r   r   r   r   r    r0   r#   r%   r'   r&   r   r   r   r   r      s   
 
0	r   N)Ú r   r   r   Úobjectr   r   r   r   r   Ú<module>   s   