<!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>
U
    e5d                     @   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   +/usr/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 )Nr   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   