
    Q                     R   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
 e
rLddlmZ ddlmZ d dlmZmZ ej"                  d	k\  rd d
lmZ nd d
lmZ ej"                  dk\  rd 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 G d de      Z G d de      Zy)    )deepcopyN)
ModuleType)Callable
CollectionDictOptionalTYPE_CHECKING   )PostLex)Lexer)UnionType)      )Literal)r   
   )	TypeAlias)	Serialize)TerminalDefTokenz(Literal["earley", "lalr", "cyk", "auto"]r   _ParserArgTypezYUnion[Literal["auto", "basic", "contextual", "dynamic", "dynamic_complete"], Type[Lexer]]_LexerArgTypec                       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Zd ZddZy)	LexerConf)	terminalsignoreg_regex_flags	use_bytes
lexer_typer   	re_moduler   zOptional[PostLex]postlex	callbacksr   skip_validationr   r   strictNc
                 P   || _         | j                   D 
ci c]  }
|
j                  |
 c}
| _        t        | j                         t        | j                        k(  sJ || _        || _        |xs i | _        || _        || _        || _	        || _
        |	| _        d | _        y c c}
w N)r   nameterminals_by_namelenr   r!   r"   r   r    r#   r   r$   r   )selfr   r    r   r!   r"   r   r#   r   r$   ts              lib/third_party/lark/common.py__init__zLexerConf.__init__+   s    "59^^!D^!&&!)^!D4>>"c$*@*@&AAAA"b*"." "Es   B#c                 b    | j                   D ci c]  }|j                  | c}| _        y c c}w r&   )r   r'   r(   )r*   r+   s     r,   _deserializezLexerConf._deserialize:   s(    59^^!D^!&&!)^!D!Ds   ,c                 ^    t        |       t        | j                  |      | j                  t        | j                  |      t        | j
                  |      t        | j                  |      t        | j                  |      t        | j                  |      t        | j                  |            S r&   )
typer   r   r    r   r!   r"   r   r#   r   )r*   memos     r,   __deepcopy__zLexerConf.__deepcopy__=   s    tDzT^^T*NNT[[$'T\\4(T^^T*T''.T))40T^^T*	
 		
    ) NNr   FFFr&   )__name__
__module____qualname____serialize_fields__r   __serialize_namespace__r   __annotations__r   strr   	_Callbackintboolr   r   r-   r/   r3   r5   r4   r,   r   r      s    \)l+&&sO  CN##O''L LP Y^*["9 j ZdehZi   xK $T#y.%9:PShl @D TXE

r4   r   c                       e Zd ZdZd Zy)
ParserConf)rulesstartparser_typec                 `    t        |t              sJ || _        || _        || _        d | _        y r&   )
isinstancelistrB   r"   rC   rD   )r*   rB   r"   rC   s       r,   r-   zParserConf.__init__M   s/    %&&&
"
r4   N)r6   r7   r8   r9   r-   r5   r4   r,   rA   rA   J   s    : r4   rA   )copyr   systypesr   typingr   r   r   r   r	   larkr   lexerr   r   r   version_infor   typing_extensionsr   utilsr   r   r   r   r;   r   r=   r   rA   r5   r4   r,   <module>rQ      s     
  F F"
6!"-
7"$/  % I Hx{ xeWe^$	+
	 +
\	  	 r4   