a
    d                     @   sx   d dl mZmZmZ ddlmZ d ZG dd deZG dd deZG dd	 d	eZ	G d
d deZ
G dd deZdS )    )OptionalTupleClassVar   )	Serializec                   @   sj   e Zd ZU dZeed< eZee	 ed< eddddZ
dd	 Zd
d Zdd Zdd ZeeZdd ZdS )Symbolnamer	   is_termN)r	   returnc                 C   s
   || _ d S Nr   )selfr	    r   U/var/www/html/stable-diffusion-webui/venv/lib/python3.9/site-packages/lark/grammar.py__init__   s    zSymbol.__init__c                 C   s*   t |tsJ || j|jko(| j|jkS r   )
isinstancer   r
   r	   r   otherr   r   r   __eq__   s    zSymbol.__eq__c                 C   s
   | |k S r   r   r   r   r   r   __ne__   s    zSymbol.__ne__c                 C   s
   t | jS r   )hashr	   r   r   r   r   __hash__   s    zSymbol.__hash__c                 C   s   dt | j| jf S )Nz%s(%r))type__name__r	   r   r   r   r   __repr__   s    zSymbol.__repr__c                 C   s   t | || jS r   )r   r	   r   fr   r   r   renamed!   s    zSymbol.renamed)r   
__module____qualname__	__slots__str__annotations__NotImplementedr
   r   boolr   r   r   r   r   propertyfullreprr   r   r   r   r   r   	   s   
r   c                   @   s@   e Zd ZU dZdZee ed< dddZe	dd Z
d	d
 ZdS )Terminalr	   
filter_outTr
   Fc                 C   s   || _ || _d S r   r)   )r   r	   r*   r   r   r   r   *   s    zTerminal.__init__c                 C   s   dt | j| j| jf S )Nz
%s(%r, %r))r   r   r	   r*   r   r   r   r   r'   .   s    zTerminal.fullreprc                 C   s   t | || j| jS r   )r   r	   r*   r   r   r   r   r   2   s    zTerminal.renamedN)F)r   r   r    __serialize_fields__r
   r   r%   r#   r   r&   r'   r   r   r   r   r   r(   %   s   


r(   c                   @   s"   e Zd ZU dZdZee ed< dS )NonTerminalr   Fr
   N)r   r   r    r+   r
   r   r%   r#   r   r   r   r   r,   6   s   
r,   c                   @   s|   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eeee ee e	edf d	dddZ
dd Zd	S )RuleOptionskeep_all_tokensexpand1prioritytemplate_sourceempty_indicesr/   r0   r1   r2   .r3   FNr   )r/   r0   r1   r2   r3   r   c                 C   s"   || _ || _|| _|| _|| _d S r   r.   )r   r/   r0   r1   r2   r3   r   r   r   r   E   s
    zRuleOptions.__init__c                 C   s   d| j | j| j| jf S )NzRuleOptions(%r, %r, %r, %r))r/   r0   r1   r2   r   r   r   r   r   L   s    zRuleOptions.__repr__)FFNNr   )r   r   r    r+   r%   r#   r   intr"   r   r   r   r   r   r   r   r-   <   s   
*r-   c                   @   sT   e Zd ZdZdZdZeeefZ	dddZ
dd	 Zd
d Zdd Zdd Zdd ZdS )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)r6   r7   r:   r8   r9   r   Nc                 C   s>   || _ || _|| _|| _|p t | _t| j t| jf| _d S r   )	r6   r7   r8   r:   r-   r9   r   tupler;   )r   r6   r7   r:   r8   r9   r   r   r   r   `   s    zRule.__init__c                 C   s   t | jt| jf| _d S r   )r   r6   r<   r7   r;   r   r   r   r   _deserializeh   s    zRule._deserializec                 C   s"   d| j jddd | jD f S )Nz	<%s : %s> c                 s   s   | ]}|j V  qd S r   r   ).0xr   r   r   	<genexpr>l       zRule.__str__.<locals>.<genexpr>)r6   r	   joinr7   r   r   r   r   __str__k   s    zRule.__str__c                 C   s   d| j | j| j| jf S )NzRule(%r, %r, %r, %r))r6   r7   r8   r9   r   r   r   r   r   n   s    zRule.__repr__c                 C   s   | j S r   )r;   r   r   r   r   r   q   s    zRule.__hash__c                 C   s&   t |tsdS | j|jko$| j|jkS )NF)r   r5   r6   r7   r   r   r   r   r   t   s    
zRule.__eq__)r   NN)r   r   r    __doc__r!   r+   r(   r,   r-   Z__serialize_namespace__r   r=   rD   r   r   r   r   r   r   r   r5   U   s   

r5   N)typingr   r   r   utilsr   ZTOKEN_DEFAULT_PRIORITYr   r(   r,   r-   r5   r   r   r   r   <module>   s   