a
    d	                     @   sT   d dl mZ d dlmZ d dlmZ d dlmZ G dd deZ	G dd de	Z
d	S )
    )StringIO)DFA)str_list)DFAStatec                   @   sH   e Zd ZdZdeeedddZdd Zeddd	Z	e
d
ddZdS )DFASerializerdfaliteralNamessymbolicNamesNc                 C   s   || _ || _|| _d S Nr   )selfr   r	   r
    r   a/var/www/html/stable-diffusion-webui/venv/lib/python3.9/site-packages/antlr4/dfa/DFASerializer.py__init__   s    zDFASerializer.__init__c                 C   s  | j jd u rd S t }| j  D ]}d}|jd ur>t|j}td|D ]r}|j| }|d urH|jdkrH|| 	| | 
|}|d || |d || 	| |d qHq"| }t|dkrW d    d S |W  d    S W d    n1 s
0    Y  d S )Nr   i-z->
)r   s0r   ZsortedStatesedgeslenrangestateNumberwritegetStateStringgetEdgeLabelgetvalue)r   bufsnitlabeloutputr   r   r   __str__   s*    






zDFASerializer.__str__r   c                 C   sh   |dkrdS | j d ur2|t| j kr2| j |d  S | jd urX|t| jkrX| j|d  S t|d S d S )Nr   EOF   )r	   r   r
   strr   r   r   r   r   r   .   s    zDFASerializer.getEdgeLabel)r   c                 C   sl   |j }|jrdndd t| |jr(dnd }|jrd|jd urP|d t|j S |d t|j S n|S d S )N: r   ^z=>)r   ZisAcceptStater&   ZrequiresFullContextZ
predicatesr   Z
prediction)r   r   r   ZbaseStateStrr   r   r   r   8   s    (
zDFASerializer.getStateString)NN)__name__
__module____qualname__	__slots__r   listr   r"   intr   r   r   r   r   r   r   r      s
   
r   c                       s0   e Zd Zed fddZedddZ  ZS )LexerDFASerializer)r   c                    s   t  |d  d S r   )superr   )r   r   	__class__r   r   r   E   s    zLexerDFASerializer.__init__r#   c                 C   s   dt | d S )N')chrr'   r   r   r   r   H   s    zLexerDFASerializer.getEdgeLabel)r+   r,   r-   r   r   r0   r   __classcell__r   r   r3   r   r1   C   s   r1   N)ior   Zantlr4r   Zantlr4.Utilsr   Zantlr4.dfa.DFAStater   objectr   r1   r   r   r   r   <module>   s
   5