MINI MINI MANI MO
3
  \u                 @   s0   d dl mZ G dd deZG dd deZdS )   )tokenc               @   s   e Zd Zdd ZdS )
ParseErrorc             C   s4   t j| d||||f  || _|| _|| _|| _d S )Nz!%s: type=%r, value=%r, context=%r)	Exception__init__msgtypevaluecontext)selfr   r   r   r	    r   +/usr/lib64/python3.6/lib2to3/pgen2/parse.pyr      s    zParseError.__init__N)__name__
__module____qualname__r   r   r   r   r   r      s   r   c               @   sH   e Zd ZdddZdddZdd Zdd	 Zd
d Zdd
 Zdd Z	dS )ParserNc             C   s   || _ |pdd | _d S )Nc             S   s   |S )Nr   )grammarnoder   r   r   <lambda>W   s    z!Parser.__init__.<locals>.<lambda>)r   convert)r
   r   r   r   r   r   r   9   s    zParser.__init__c             C   sH   |d kr| j j}|d d g f}| j j| d|f}|g| _d | _t | _d S )N    )r   startdfasstackrootnodeset
used_names)r
   r   newnodeZ
stackentryr   r   r   setupY   s    
zParser.setupc             C   s:  | j |||}x$| jd \}}}|\}}	|| }
 x|
D ]\}}| jj| \}
}||kr| j|||| |}x@|| d|fgkr| j  | jsdS | jd	 \}}}|\}}	qpW dS |
dkr:| jj|
 }|\}}||kr:| j|
| jj|
 || P q:W d|f|
kr$| j  | js2td|||qtd|||qW d S )
Nr   r   TF   ztoo much inputz	bad inputr   )	classifyr   r   Zlabelsshiftpopr   pushr   )r
   r   r   r	   ilabeldfastater   ZstatesfirstZarcsinewstatetvZitsdfaZ	itsstatesZitsfirstr   r   r   addtokenq   s:    zParser.addtokenc             C   sX   |t jkr0| jj| | jjj|}|d k	r0|S | jjj|}|d krTtd||||S )Nz	bad token)	r   NAMEr   addr   keywordsgettokensr   )r
   r   r   r	   r$   r   r   r   r       s    
zParser.classifyc       	      C   sT   | j d \}}}|||d f}| j| j|}|d k	r@|d j| |||f| j d<