o
    b²“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$   ú?/home/ubuntu/.local/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*     
-