
    bi                         d dl mZmZmZmZmZmZ ddlmZ d Z	 G d de      Z
 G d de
      Z G d d	e
      Z G d
 de      Z G d de      Zy)    )AnyDictOptionalTupleClassVarSequence   )	Serializec                   n    e Zd ZU dZeed<   eZee	   ed<   deddfdZ
d Zd Zd	 Zd
 Z ee      Zd Zy)Symbolnamer   is_termreturnNc                     || _         y Nr   )selfr   s     G/home/cdr/jupyterlab/.venv/lib/python3.12/site-packages/lark/grammar.py__init__zSymbol.__init__   s	    	    c                     t        |t              st        S | j                  |j                  k(  xr | j                  |j                  k(  S r   )
isinstancer   NotImplementedr   r   r   others     r   __eq__zSymbol.__eq__   s7    %(!!||u}},Hejj1HHr   c                     | |k(   S r    r   s     r   __ne__zSymbol.__ne__   s    EM""r   c                 ,    t        | j                        S r   )hashr   r   s    r   __hash__zSymbol.__hash__   s    DIIr   c                 L    t        |       j                  d| j                  dS )N())type__name__r   r"   s    r   __repr__zSymbol.__repr__   s    :..		::r   c                 D     t        |        || j                              S r   )r'   r   r   fs     r   renamedzSymbol.renamed"   s    tDz!DII,''r   )r(   
__module____qualname__	__slots__str__annotations__r   r   r   boolr   r   r   r#   r)   propertyfullreprr-   r   r   r   r   r   	   sS    I
I,GXd^,S T I
#; !H(r   r   c                   R    e Zd ZU dZdZee   ed<   ddededdfdZ	e
d	        Zd
 Zy)Terminalr   
filter_outTr   r   r9   r   Nc                      || _         || _        y r   r8   )r   r   r9   s      r   r   zTerminal.__init__+   s    	$r   c                 f    t        |       j                  d| j                  d| j                  dS )Nr%   , r&   )r'   r(   r   r9   r"   s    r   r5   zTerminal.fullrepr/   s!    #Dz22DIItOOr   c                 Z     t        |        || j                        | j                        S r   )r'   r   r9   r+   s     r   r-   zTerminal.renamed3   s!    tDz!DII,88r   )F)r(   r.   r/   __serialize_fields__r   r   r3   r2   r1   r   r4   r5   r-   r   r   r   r7   r7   &   sK    /"GXd^"%S %d %t % P P9r   r7   c                   >    e Zd ZU dZdZee   ed<   ddee	e
f   fdZy)NonTerminalr   Fr   Nr   c                 2    t        | j                        ddS )Nr@   )r   __type__)r1   r   )r   memos     r   	serializezNonTerminal.serialize<   s     DIIMBBr   r   )r(   r.   r/   r>   r   r   r3   r2   r   r1   r   rD   r   r   r   r@   r@   7   s,    "#GXd^#Cd38n Cr   r@   c                       e Zd ZU dZeed<   eed<   ee   ed<   ee   ed<   e	edf   ed<   ddededee   dee   de	edf   d	dfd
Z
d Zy)RuleOptionskeep_all_tokensexpand1prioritytemplate_sourceempty_indicesrH   rI   rJ   rK   .rL   Nr   c                 J    || _         || _        || _        || _        || _        y r   rG   )r   rH   rI   rJ   rK   rL   s         r   r   zRuleOptions.__init__K   s(    . .*r   c           	      p    d| j                   d| j                  d| j                  d| j                  d	S )NzRuleOptions(r<   r&   )rH   rI   rJ   rK   r"   s    r   r)   zRuleOptions.__repr__R   s,      LLMM  	
 	
r   )FFNNr   )r(   r.   r/   r>   r3   r2   r   intr1   r   r   r)   r   r   r   rF   rF   B   s    gMsmc]"s##+ +T +S[\_S` +  yA  BE  yF +  \a  bf  hk  bk  \l +  tx +
r   rF   c                       e Zd ZU dZdZdZeeefZ	ee
d<   ee   e
d<   ee
d<   ee   e
d<   ee
d<   ee
d	<   	 ddedee   dedee   dee   f
dZd Zd Zd Zd Zd Zy
)Rulez
        origin : a symbol
        expansion : a list of symbols
        order : index of this expansion amongst all rules of the same name
    )origin	expansionaliasoptionsorder_hash)rR   rS   rV   rT   rU   rR   rS   rV   rT   rU   rW   Nc                     || _         || _        || _        || _        |xs
 t	               | _        t        | j                   t        | j                        f      | _        y r   )	rR   rS   rT   rV   rF   rU   r!   tuplerW   )r   rR   rS   rV   rT   rU   s         r   r   zRule.__init__m   sJ    "

/+-4;;dnn(=>?
r   c                 b    t        | j                  t        | j                        f      | _        y r   )r!   rR   rY   rS   rW   r"   s    r   _deserializezRule._deserializev   s     4;;dnn(=>?
r   c                 |    d| j                   j                  ddj                  d | j                  D              dS )N<z :  c              3   4   K   | ]  }|j                     y wr   r   ).0xs     r   	<genexpr>zRule.__str__.<locals>.<genexpr>z   s     8XA8Xs   >)rR   r   joinrS   r"   s    r   __str__zRule.__str__y   s*    "kk..8X8X0XYYr   c           	      p    d| j                   d| j                  d| j                  d| j                  d	S )NzRule(r<   r&   )rR   rS   rT   rU   r"   s    r   r)   zRule.__repr__|   s$    )-dnndjjRVR^R^__r   c                     | j                   S r   )rW   r"   s    r   r#   zRule.__hash__   s    zzr   c                     t        |t              sy| j                  |j                  k(  xr | j                  |j                  k(  S )NF)r   rQ   rR   rS   r   s     r   r   zRule.__eq__   s4    %&{{ell*Pt~~/PPr   )r   NN)r(   r.   r/   __doc__r0   r>   r7   r@   rF   __serialize_namespace__r2   r   r   rO   r   r1   r   r[   re   r)   r#   r   r   r   r   rQ   rQ   [   s    
 NIM&[@JC=J Z^@{ @x7G @@&.sm@CKKCX@@Z`Qr   rQ   N)typingr   r   r   r   r   r   utilsr
   TOKEN_DEFAULT_PRIORITYr   r7   r@   rF   rQ   r   r   r   <module>rn      sV    A A   (Y (:9v 9"C& C
) 
2*Q9 *Qr   