o
    V۷i                     @   s   d dl mZm Z  d dlmZmZmZmZ ddlmZm	Z	 ddl
mZ ddlmZmZmZ d dlmZ G d	d
 d
ee ZG dd dee ZdS )    )deepcopycopy)DictAnyGenericList   )TokenLexerThread)ParserCallbacks   )ShiftParseTableBaseStateT)UnexpectedTokenc                   @   sp   e Zd ZU dZee ed< eed< eed< eed< eed< e	ee	ee
f f ed< dee dedefdd	Zd
S )	ParseConf)parse_table	callbacksstartstart_state	end_statestatesr   r   r   r   r   r   c                 C   s<   || _ | j j| | _| j j| | _| j j| _|| _|| _d S N)r   start_statesr   
end_statesr   r   r   r   )selfr   r   r    r   T/home/ubuntu/vllm_env/lib/python3.10/site-packages/lark/parsers/lalr_parser_state.py__init__   s   

zParseConf.__init__N)__name__
__module____qualname__	__slots__r   r   __annotations__r   strr   tupler   r   r   r   r   r      s   
 r   c                   @   s   e Zd ZU dZee ed< eed< ee ed< e	ed< ddee defddZ
ed	efd
dZd	efddZdd ZddddZdded	efddZdS )ParserState)
parse_conflexerstate_stackvalue_stackr'   r(   r)   r*   Nc                 C   s*   || _ || _|p| j jg| _|pg | _d S r   )r'   r(   r   r)   r*   )r   r'   r(   r)   r*   r   r   r   r   (   s   zParserState.__init__returnc                 C   s
   | j d S )N)r)   r   r   r   r   position.   s   
zParserState.positionc                 C   s.   t |tstS t| jt|jko| j|jkS r   )
isinstancer&   NotImplementedlenr)   r.   )r   otherr   r   r   __eq__3   s   
 zParserState.__eq__c                 C   s   |   S r   )r   r-   r   r   r   __copy__8   s   zParserState.__copy__TParserState[StateT]c                 C   s2   t | | j| jt| j|rt| jS t| jS r   )typer'   r(   r   r)   r   r*   )r   deepcopy_valuesr   r   r   r   ;   s   zParserState.copyFtokenc              	   C   sp  | j }| j}| jj}| jj}| jj}	 |d }z|| |j \}	}
W n ty<   dd ||  D }t	||| d dw |
|ksCJ |	t
u rf|rKJ ||
 ||j|vr\| d S ||j | d S |
}t|j}|r|| d  }|| d = || d = ng }|r|| |n|}||d  |jj \}}|t
u sJ || || |r|d |kr|d S q)NTr,   c                 S   s   h | ]}|  r|qS r   )isupper).0sr   r   r   	<setcomp>O   s    z)ParserState.feed_token.<locals>.<setcomp>)stateinteractive_parser)r)   r*   r'   r   r   r   r6   KeyErrorkeysr   r   appendr1   	expansionoriginname)r   r8   is_endr)   r*   r   r   r   r=   actionargexpectedrulesizer;   value_action	new_stater   r   r   
feed_tokenC   sH   



zParserState.feed_token)NN)T)r+   r5   )F)r   r    r!   r"   r   r   r#   r
   r   listr   propertyr.   boolr3   r4   r   r	   r   rN   r   r   r   r   r&       s   
 r&   N)r   r   typingr   r   r   r   r(   r	   r
   commonr   lalr_analysisr   r   r   lark.exceptionsr   r   r&   r   r   r   r   <module>   s    