o
    i                     @   s  U d dl mZ d dlZd dlmZ d dlmZmZmZm	Z	m
Z
mZ e
rUddlmZ ddlmZ ddlmZ d d	lmZmZ d d
lmZ ejdkrOd dlmZ nd dlmZ ddlmZ ddlmZmZ dZded< dZded< eegef Zee ef Z!G dd deZ"G dd deZ#dS )    )deepcopyN)
ModuleType)Callable
CollectionDictOptionalTYPE_CHECKINGList   )PostLex)Lexer)Rule)UnionType)Literal)   
   )	TypeAlias)	Serialize)TerminalDefTokenz(Literal["earley", "lalr", "cyk", "auto"]r   _ParserArgTypezYUnion[Literal["auto", "basic", "contextual", "dynamic", "dynamic_complete"], Type[Lexer]]_LexerArgTypec                   @   s   e Zd ZU dZefZee ed< eed< ee	 ed< ded< e
e	ef ed< eed< eed	< eed
< ee ed< eed< 		ddee dedee	 dddee
e	ef  ded	ed
edefddZdd ZdddZdS )	LexerConf)	terminalsignoreg_regex_flags	use_bytes
lexer_typer   	re_moduler   zOptional[PostLex]postlex	callbacksr   skip_validationr   r   strict Nr   Fc
           
      C   sn   || _ dd | j D | _t| j t| jksJ || _|| _|p!i | _|| _|| _|| _|| _	|	| _
d | _d S )Nc                 S      i | ]}|j |qS r$   name.0tr$   r$   H/home/ubuntu/veenaModal/venv/lib/python3.10/site-packages/lark/common.py
<dictcomp>-       z&LexerConf.__init__.<locals>.<dictcomp>)r   terminals_by_namelenr   r    r!   r   r   r"   r   r#   r   )
selfr   r   r   r    r!   r   r"   r   r#   r$   r$   r+   __init__*   s   

zLexerConf.__init__c                 C   s   dd | j D | _d S )Nc                 S   r%   r$   r&   r(   r$   r$   r+   r,   :   r-   z*LexerConf._deserialize.<locals>.<dictcomp>)r   r.   )r0   r$   r$   r+   _deserialize9   s   zLexerConf._deserializec                 C   sT   t | t| j|| jt| j|t| j|t| j|t| j|t| j|t| j	|S N)
typer   r   r   r   r    r!   r   r"   r   )r0   memor$   r$   r+   __deepcopy__<   s   






zLexerConf.__deepcopy__)r$   NNr   FFFr3   )__name__
__module____qualname____serialize_fields__r   __serialize_namespace__r   __annotations__r   strr   _LexerCallbackintboolr   r   r1   r2   r6   r$   r$   r$   r+   r      s8   
 
r   c                   @   sX   e Zd ZU dZed ed< eed< ee ed< eed< ded dedee fddZ	d	S )

ParserConf)rulesstartparser_typer   rB   r!   rC   rD   c                 C   s$   t |tsJ || _|| _|| _d S r3   )
isinstancelistrB   r!   rC   )r0   rB   r!   rC   r$   r$   r+   r1   P   s   
zParserConf.__init__N)
r7   r8   r9   r:   r	   r<   ParserCallbacksr=   r   r1   r$   r$   r$   r+   rA   H   s   
 "rA   )$copyr   systypesr   typingr   r   r   r   r   r	   larkr   lexerr   grammarr   r   r   r   version_infor   typing_extensionsutilsr   r   r   r   r<   r   r>   r=   rG   r   rA   r$   r$   r$   r+   <module>   s*     
-