
    c                         S SK JrJrJr  SSKJr  S r " S S\5      r " S S\5      r " S S	\5      r	 " S
 S\5      r
 " S S\5      rg)    )OptionalTupleClassVar   )	Serializec                   x    \ rS rSr% Sr\\S'   \r\	\
   \S'   S\SS4S jrS rS	 rS
 rS r\" \5      rS rSrg)Symbol	   namer   is_termreturnNc                     Xl         g Nr   )selfr   s     lib/third_party/lark/grammar.py__init__Symbol.__init__   s    	    c                     [        U[        5      (       d   U5       eU R                  UR                  :H  =(       a    U R                  UR                  :H  $ r   )
isinstancer	   r   r   r   others     r   __eq__Symbol.__eq__   s?    %((/%/(||u}},Hejj1HHr   c                     X:X  + $ r    r   s     r   __ne__Symbol.__ne__   s    ""r   c                 ,    [        U R                  5      $ r   )hashr   r   s    r   __hash__Symbol.__hash__   s    DIIr   c                 P    [        U 5      R                  < SU R                  < S3$ )N())type__name__r   r"   s    r   __repr__Symbol.__repr__   s    :..		::r   c                 D    [        U 5      " U" U R                  5      5      $ r   )r(   r   r   fs     r   renamedSymbol.renamed!   s    Dz!DII,''r   )r)   
__module____qualname____firstlineno__	__slots__str__annotations__NotImplementedr   r   boolr   r   r   r#   r*   propertyfullreprr/   __static_attributes__r   r   r   r	   r	   	   sS    I
I,GXd^,S T I#; !H(r   r	   c                   N    \ rS rSr% SrSr\\   \S'   S
S jr	\
S 5       rS rSrg	)Terminal%   r   
filter_outTr   c                     Xl         X l        g r   r?   )r   r   r@   s      r   r   Terminal.__init__*   s    	$r   c                 l    [        U 5      R                  < SU R                  < SU R                  < S3$ )Nr&   , r'   )r(   r)   r   r@   r"   s    r   r:   Terminal.fullrepr.   s!    #Dz22DIItOOr   c                 Z    [        U 5      " U" U R                  5      U R                  5      $ r   )r(   r   r@   r-   s     r   r/   Terminal.renamed2   s    Dz!DII,88r   )r@   r   N)F)r)   r1   r2   r3   __serialize_fields__r   r   r8   r6   r   r9   r:   r/   r;   r   r   r   r=   r=   %   s6    /"GXd^"% P P9r   r=   c                   .    \ rS rSr% SrSr\\   \S'   Sr	g)NonTerminal6   r   Fr   r   N)
r)   r1   r2   r3   rH   r   r   r8   r6   r;   r   r   r   rJ   rJ   6   s    "#GXd^#r   rJ   c                       \ rS rSr% Sr\\S'   \\S'   \\   \S'   \\	   \S'   \
\S4   \S'   SS\S\S\\   S\\	   S\
\S4   S
S	4S jjrS rSrg	)RuleOptions<   keep_all_tokensexpand1prioritytemplate_sourceempty_indicesrP   rQ   rR   rS   .rT   Nr   c                 @    Xl         X l        X0l        X@l        XPl        g r   rO   )r   rP   rQ   rR   rS   rT   s         r   r   RuleOptions.__init__E   s    . .*r   c           	      x    SU R                   < SU R                  < SU R                  < SU R                  < S3	$ )NzRuleOptions(rD   r'   )rP   rQ   rR   rS   r"   s    r   r*   RuleOptions.__repr__L   s,      LLMM  	
 	
r   )rT   rQ   rP   rR   rS   )FFNNr   )r)   r1   r2   r3   rH   r8   r6   r   intr5   r   r   r*   r;   r   r   r   rM   rM   <   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   rM   c                   R    \ rS rSrSrSrSr\\\	4r
SS jrS rS rS	 rS
 rS rSrg)RuleU   zt
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)r]   r^   ra   r_   r`   Nc                     Xl         X l        X@l        X0l        U=(       d
    [	        5       U l        [        U R                   [        U R                  5      45      U l        g r   )	r]   r^   r_   ra   rM   r`   r!   tuplerb   )r   r]   r^   ra   r_   r`   s         r   r   Rule.__init__`   sB    "

/+-4;;dnn(=>?
r   c                 b    [        U R                  [        U R                  5      45      U l        g r   )r!   r]   rd   r^   rb   r"   s    r   _deserializeRule._deserializeh   s     4;;dnn(=>?
r   c                     SU R                   R                  < SSR                  S U R                   5       5      < S3$ )N<z :  c              3   8   #    U  H  oR                   v   M     g 7fr   r   ).0xs     r   	<genexpr>Rule.__str__.<locals>.<genexpr>l   s     8XAs   >)r]   r   joinr^   r"   s    r   __str__Rule.__str__k   s*    "kk..8X8X0XYYr   c           	      x    SU R                   < SU R                  < SU R                  < SU R                  < S3	$ )NzRule(rD   r'   )r]   r^   r_   r`   r"   s    r   r*   Rule.__repr__n   s$    )-dnndjjRVR^R^__r   c                     U R                   $ r   )rb   r"   s    r   r#   Rule.__hash__q   s    zzr   c                     [        U[        5      (       d  gU R                  UR                  :H  =(       a    U R                  UR                  :H  $ )NF)r   r[   r]   r^   r   s     r   r   Rule.__eq__t   s7    %&&{{ell*Pt~~/PPr   )rb   r_   r^   r`   ra   r]   )r   NN)r)   r1   r2   r3   __doc__r4   rH   r=   rJ   rM   __serialize_namespace__r   rg   rs   r*   r#   r   r;   r   r   r   r[   r[   U   sE    
 NIM&[@@@Z`Qr   r[   N)typingr   r   r   utilsr   TOKEN_DEFAULT_PRIORITYr	   r=   rJ   rM   r[   r   r   r   <module>r      sT    , ,   (Y (89v 9"$& $
) 
2"Q9 "Qr   