a
    d-                     @   s   d dl mZ d dlZejd dkr0d dlmZ nd dlmZ d dlmZ d dl	m
Z
 d dlmZ d d	lmZ d d
lmZ d dlmZmZmZ G dd deZG dd deeZdS )    )StringION      )TextIO)CommonTokenFactory)LexerATNSimulator)InputStream)
Recognizer)Token)IllegalStateExceptionLexerNoViableAltExceptionRecognitionExceptionc                   @   s   e Zd ZdS )TokenSourceN)__name__
__module____qualname__ r   r   U/var/www/html/stable-diffusion-webui/venv/lib/python3.9/site-packages/antlr4/Lexer.pyr      s   r   c                       s  e Zd ZdZdZdZdZejZ	ej
ZdZdZejfeed fddZd	d
 Zdd Zdd Zdd ZedddZedddZdd Zedd ZejedddZedd Zeddd Zd!d" Z d#d$ Z!ed%d& Z"e"jed'd(d&Z"ed)d* Z#e#jed+d,d*Z#ed-d. Z$e$jed/d0d.Z$d1d2 Z%ed3d4 Z&e&je'd5d6d4Z&d7d8 Z(e)d9d:d;Z*e'd<d=d>Z+e'd?d@dAZ,e'd?dBdCZ-e.dDdEdFZ/  Z0S )GLexer)_input_output_factory_tokenFactorySourcePair_token_tokenStartCharIndex_tokenStartLine_tokenStartColumn_hitEOF_channel_type
_modeStack_mode_textr   i )inputoutputc                    st   t    || _|| _tj| _| |f| _d | _d | _	d| _
d| _d| _d| _tj| _tj| _g | _| j| _d | _d S )NF)super__init__r   r   r   DEFAULTr   r   _interpr   r   r   r   r   r
   DEFAULT_CHANNELr   INVALID_TYPEr   r    DEFAULT_MODEr!   r"   )selfr%   r&   	__class__r   r   r)   .   s     

	zLexer.__init__c                 C   sf   | j d ur| j d d | _tj| _tj| _d| _d| _	d| _
d | _d| _tj| _g | _| j  d S )Nr   r'   F)r   seekr   r
   r-   r   r,   r   r   r   r   r"   r   r   r.   r!   r    r+   resetr/   r   r   r   r3   ^   s    
zLexer.resetc              
   C   sl  | j d u rtd| j  }z:| jrB|   | jW | j | S d | _tj| _	| j j
| _| jj| _| jj| _d | _d}tj| _| j}z| j| j | j}W n8 ty } z | | | | W Y d }~n
d }~0 0 | j dtjkrd| _| jtjkr|| _| j| jkrd}q*| j| jkrxq*qx|r2q | jd u rF|   | jW | j | S | j | 0 d S )Nz+nextToken requires a non-null input stream.Fr   T)r   r   markr   emitEOFr   releaser
   r,   r   indexr   r+   columnr   liner   r"   r-   r   SKIPmatchr!   r   notifyListenersrecoverLAEOFMOREemit)r/   ZtokenStartMarkerZcontinueOuterttypeer   r   r   	nextTokenr   sP    

!



 zLexer.nextTokenc                 C   s   | j | _d S N)r;   r   r4   r   r   r   skip   s    z
Lexer.skipc                 C   s   | j | _d S rF   )rA   r   r4   r   r   r   more   s    z
Lexer.more)mc                 C   s
   || _ d S rF   )r!   r/   rI   r   r   r   mode   s    z
Lexer.modec                 C   s:   | j jrtdt| | jd | j| j | | d S )Nz	pushMode file)	r+   debugprintstrr   r    appendr!   rK   rJ   r   r   r   pushMode   s    zLexer.pushModec                 C   sP   t | jdkrtd| jjr:td| jd d  | jd | | j  | j	S )Nr   zEmpty StackzpopMode back to r'   rL   )
lenr    	Exceptionr+   rN   rO   r   rK   popr!   r4   r   r   r   popMode   s    zLexer.popModec                 C   s   | j S rF   )r   r4   r   r   r   inputStream   s    zLexer.inputStream)r%   c                 C   s0   d | _ | | j f| _|   || _ | | j f| _d S rF   )r   r   r3   )r/   r%   r   r   r   rW      s
    c                 C   s   | j jS rF   )r   
sourceNamer4   r   r   r   rX      s    zLexer.sourceName)tokenc                 C   s
   || _ d S rF   )r   )r/   rY   r   r   r   	emitToken   s    zLexer.emitTokenc              
   C   s>   | j | j| j| j| j| j|  d | j| j	}| 
| |S Nr   )r   creater   r   r"   r   r   getCharIndexr   r   rZ   )r/   tr   r   r   rB      s
    
z
Lexer.emitc              
   C   sF   | j }| j}| j| jtjd tj| jj	| jj	d ||}| 
| |S r[   )r9   r:   r   r\   r   r
   r@   r,   r   r8   rZ   )r/   cposlposeofr   r   r   r6      s    
zLexer.emitEOFc                 C   s   | j S rF   r   r4   r   r   r   type   s    z
Lexer.type)rc   c                 C   s
   || _ d S rF   rb   )r/   rc   r   r   r   rc      s    c                 C   s   | j jS rF   r+   r:   r4   r   r   r   r:      s    z
Lexer.line)r:   c                 C   s   || j _d S rF   rd   )r/   r:   r   r   r   r:      s    c                 C   s   | j jS rF   r+   r9   r4   r   r   r   r9      s    zLexer.column)r9   c                 C   s   || j _d S rF   re   )r/   r9   r   r   r   r9      s    c                 C   s   | j jS rF   )r   r8   r4   r   r   r   r]     s    zLexer.getCharIndexc                 C   s"   | j d ur| j S | j| jS d S rF   )r"   r+   getTextr   r4   r   r   r   text  s    
z
Lexer.text)txtc                 C   s
   || _ d S rF   )r"   )r/   rh   r   r   r   rg     s    c                 C   s0   g }|   }|jtjkr,|| |   }q|S rF   )rE   rc   r
   r@   rQ   )r/   tokensr^   r   r   r   getAllTokens  s    

zLexer.getAllTokens)rD   c                 C   sR   | j }| jj}| j||}d| | d }|  }|| d | j| j|| d S )Nztoken recognition error at: '')	r   r   r8   rf   getErrorDisplayZgetErrorListenerDispatchZsyntaxErrorr   r   )r/   rD   startstoprg   msgZlistenerr   r   r   r=      s    zLexer.notifyListeners)sc                 C   sL   t  2}|D ]}|| | q| W  d    S 1 s>0    Y  d S rF   )r   writegetErrorDisplayForChargetvalue)r/   rp   bufcr   r   r   rl   (  s    zLexer.getErrorDisplay)ru   c                 C   sB   t |d tjkrdS |dkr"dS |dkr.dS |dkr:dS |S d S )	Nr   z<EOF>
z\n	z\tz\r)ordr
   r@   r/   ru   r   r   r   rr   .  s    zLexer.getErrorDisplayForCharc                 C   s   d|  | d S )Nrk   )rr   rz   r   r   r   getCharErrorDisplay:  s    zLexer.getCharErrorDisplay)rec                 C   s:   | j dtjkr6t|tr,| j| j  n
| j   d S r[   )r   r?   r
   r@   
isinstancer   r+   consume)r/   r|   r   r   r   r>   B  s    
zLexer.recover)1r   r   r   	__slots__r.   rA   r;   r
   r,   ZDEFAULT_TOKEN_CHANNELZHIDDEN_CHANNELZHIDDENZMIN_CHAR_VALUEZMAX_CHAR_VALUEsysstdoutr   r   r)   r3   rE   rG   rH   intrK   rR   rV   propertyrW   setterrX   rZ   rB   r6   rc   r:   r9   r]   rg   rP   rj   r   r=   rl   rr   r{   r   r>   __classcell__r   r   r0   r   r      s`   04	

	



r   )ior   r   version_infotypingr   Z	typing.ioZantlr4.CommonTokenFactoryr   Zantlr4.atn.LexerATNSimulatorr   Zantlr4.InputStreamr   Zantlr4.Recognizerr	   Zantlr4.Tokenr
   Zantlr4.error.Errorsr   r   r   objectr   r   r   r   r   r   <module>   s   