
    ;e                     L    	 d dl mZ  G d de          Z G d de          ZdS )   )tokenc                       e Zd Z	 d Zd ZdS )
ParseErrorc           
          t                               | |d|d|d|           || _        || _        || _        || _        d S )Nz: type=z, value=z
, context=)	Exception__init__msgtypevaluecontext)selfr	   r
   r   r   s        */usr/lib/python3.11/lib2to3/pgen2/parse.pyr   zParseError.__init__   sX    4CCuuugg"7 	8 	8 	8	
    c                 T    t          |           | j        | j         | j        | j        ffS N)r
   r	   r   r   )r   s    r   
__reduce__zParseError.__reduce__   s$    DzzDHdiT\JJJr   N)__name__
__module____qualname__r   r    r   r   r   r      s:        2  K K K K Kr   r   c                   >    e Zd Z	 d	dZd	dZd Zd Zd Zd Zd Z	dS )
ParserNc                 *    	 || _         |pd | _        d S )Nc                     |S r   r   )grammarnodes     r   <lambda>z!Parser.__init__.<locals>.<lambda>Z   s     r   )r   convert)r   r   r   s      r   r   zParser.__init__<   s$    	8 >#=#=r   c                     	 || 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!   newnode
stackentrys       r   setupzParser.setup\   s]    	 =L&E $b)l'.7;
 \
%%r   c                    	 |                      |||          }	 | j        d         \  }}}|\  }}	||         }
|
D ]\  }}| j        j        |         \  }}||k    ro|                     ||||           |}||         d|fgk    rC|                                  | j        s dS | j        d         \  }}}|\  }}	||         d|fgk    C dS |dk    rE| j        j        |         }|\  }}||v r*|                     || j        j        |         ||            nGd|f|
v r.|                                  | j        st          d|||          nt          d|||          C)NTr    F   ztoo much inputz	bad input)	classifyr#   r   labelsshiftpopr"   pushr   )r   r
   r   r   ilabeldfastater   statesfirstarcsinewstatetvitsdfa	itsstatesitsfirsts                     r   addtokenzParser.addtokent   s   JtUG44)	H#z"~CMFE%=D# $H $H8|*1-1Q;; JJtUHg>>>$E -QJ<77


#z (#'44+/:b>(UD(+ !-QJ<77 !55#XX!\.q1F*0'Ix))		!T\%6q%98WMMMu:%%HHJJJ: ?()9)-ug? ? ?? %[$wGGGS)	Hr   c                    	 |t           j        k    r=| j                            |           | j        j                            |          }||S | j        j                            |          }|t          d|||          |S )Nz	bad token)	r   NAMEr&   addr   keywordsgettokensr   )r   r
   r   r   r2   s        r   r-   zParser.classify   s    45:O&&&\*..u55F!$((..>[$w???r   c                     	 | j         d         \  }}}|||d f}|                     | j        |          }||d                             |           |||f| j         d<   d S Nr+   )r#   r   r   append)	r   r
   r   r9   r   r3   r4   r   r'   s	            r   r/   zParser.shift   sl    (:b>UD.,,t|W55HOOG$$$x.
2r   c                     	 | j         d         \  }}}|d |g f}|||f| j         d<   | j                             |d|f           d S )Nr+   r    )r#   rH   )	r   r
   newdfar9   r   r3   r4   r   r'   s	            r   r1   zParser.push   sZ    -:b>UDw+x.
2
61g./////r   c                    	 | j                                         \  }}}|                     | j        |          }|O| j         r.| j         d         \  }}}|d                             |           d S || _        | j        | j        _        d S d S rG   )r#   r0   r   r   rH   r$   r&   )r   popdfapopstatepopnoder'   r3   r4   r   s           r   r0   z
Parser.pop   s    ,$(JNN$4$4!',,t|W55z ;#':b> UDR((((( '+/?((( r   r   )
r   r   r   r   r)   r?   r-   r/   r1   r0   r   r   r   r   r      s        :? ? ? ?@       0.H .H .H`  / / /0 0 0
; 
; 
; 
; 
;r   r   N) r   r   r   objectr   r   r   r   <module>rQ      s         K K K K K K K Kn; n; n; n; n;V n; n; n; n; n;r   