<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet"
        integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.3.0/css/all.min.css"
        integrity="sha512-SzlrxWUlpfuzQ+pcUCosxcglQRNAq/DZjVsC0lE40xsADsfeQoEypE+enwcOiGjk/bSuGGKHEyjSoQ1zVisanQ=="
        crossorigin="anonymous" referrerpolicy="no-referrer" />
</head>
</html>
3

  \u                 @   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S )
ParseErrorc             C   s4   t j| d||||f  || _|| _|| _|| _d S )Nz!%s: type=%r, value=%r, context=%r)	Exception__init__msgtypevaluecontext)selfr   r   r   r	    r   +/usr/lib64/python3.6/lib2to3/pgen2/parse.pyr      s    zParseError.__init__N)__name__
__module____qualname__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 )Nr   )grammarnoder   r   r   <lambda>W   s    z!Parser.__init__.<locals>.<lambda>)r   convert)r
   r   r   r   r   r   r   9   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   setupY   s    zParser.setupc             C   s:  | j |||}x$| jd \}}}|\}}	|| }
 x|
D ]\}}| jj| \}}||kr| j|||| |}x@|| d|fgkr| j  | jsdS | jd	 \}}}|\}}	qpW dS |dkr:| jj| }|\}}||kr:| j|| jj| || P q:W d|f|
kr$| j  | js2td|||qtd|||qW d S )
Nr   r   TF   ztoo much inputz	bad inputr   )	classifyr   r   Zlabelsshiftpopr   pushr   )r
   r   r   r	   ilabeldfastater   ZstatesfirstZarcsinewstatetvZitsdfaZ	itsstatesZitsfirstr   r   r   addtokenq   s:    zParser.addtokenc             C   sX   |t jkr0| jj| | jjj|}|d k	r0|S | j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| j|}|d k	r@|d j| |||f| j d< d S )Nr   r   r   r   )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 j|d|f d S )Nr   r   r   r   )r   r2   )	r
   r   Znewdfar)   r	   r%   r&   r   r   r   r   r   r#      s    zParser.pushc             C   s`   | j j \}}}| j| j|}|d k	r\| j rL| j d \}}}|d j| n|| _| j| j_d S )Nr   r   r   )r   r"   r   r   r2   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   r,   r    r!   r#   r"   r   r   r   r   r      s   
 
0	r   N) r   r   r   objectr   r   r   r   r   <module>   s   