o
    ?i-                     @   s   d dl mZ d dlZejd dkrd 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   I/home/ubuntu/veenaModal/venv/lib/python3.10/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dedef fdd	Zd
d Zdd Zdd Zdd ZdefddZdefddZdd Zedd ZejdefddZedd Zdefdd Zd!d" Z d#d$ Z!ed%d& Z"e"jd'efd(d&Z"ed)d* Z#e#jd+efd,d*Z#ed-d. Z$e$jd/efd0d.Z$d1d2 Z%ed3d4 Z&e&jd5e'fd6d4Z&d7d8 Z(d9e)fd:d;Z*d<e'fd=d>Z+d?e'fd@dAZ,d?e'fdBdCZ-dDe.f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   s^  | j d u r	td| j  }z	 | jr!|   | jW | j | S d | _tj| _	| j j
| _| jj| _| jj| _d | _d}	 tj| _| j}z| j| j | j}W n tyk } z| | | | W Y d }~nd }~ww | j dtjkrxd| _| jtjkr|| _| j| jkrd}n| j| jkrnq=|rq| jd u r|   | jW | j | S | j | w )Nz+nextToken requires a non-null input stream.TFr   )r   r   markr   emitEOFr   releaser
   r,   r   indexr   r+   columnr   liner   r"   r-   r   SKIPmatchr!   r   notifyListenersrecoverLAEOFMOREemit)r/   tokenStartMarkercontinueOuterttypeer   r   r   	nextTokenr   sT   

!




zLexer.nextTokenc                 C      | j | _d S N)r;   r   r4   r   r   r   skip      z
Lexer.skipc                 C   rH   rI   )rA   r   r4   r   r   r   more   rK   z
Lexer.moremc                 C   
   || _ d S rI   )r!   r/   rM   r   r   r   mode      
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!   rP   rO   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'   rR   )
lenr    	Exceptionr+   rT   rU   r   rP   popr!   r4   r   r   r   popMode   s   zLexer.popModec                 C      | j S rI   )r   r4   r   r   r   inputStream      zLexer.inputStreamc                 C   s0   d | _ | | j f| _|   || _ | | j f| _d S rI   )r   r   r3   )r/   r%   r   r   r   r^      s
   c                 C      | j jS rI   )r   
sourceNamer4   r   r   r   ra         zLexer.sourceNametokenc                 C   rN   rI   )r   )r/   rc   r   r   r   	emitToken   rQ   zLexer.emitTokenc              
   C   s>   | j | j| j| j| j| j|  d | j| j	}| 
| |S Nr   )r   creater   r   r"   r   r   getCharIndexr   r   rd   )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 re   )r9   r:   r   rf   r   r
   r@   r,   r   r8   rd   )r/   cposlposeofr   r   r   r6      s   
zLexer.emitEOFc                 C   r]   rI   r   r4   r   r   r   type   r_   z
Lexer.typerm   c                 C   rN   rI   rl   )r/   rm   r   r   r   rm         
c                 C   r`   rI   r+   r:   r4   r   r   r   r:      rb   z
Lexer.liner:   c                 C      || j _d S rI   ro   )r/   r:   r   r   r   r:         c                 C   r`   rI   r+   r9   r4   r   r   r   r9      rb   zLexer.columnr9   c                 C   rp   rI   rr   )r/   r9   r   r   r   r9      rq   c                 C   r`   rI   )r   r8   r4   r   r   r   rg     s   zLexer.getCharIndexc                 C   s   | j d ur| j S | j| jS rI   )r"   r+   getTextr   r4   r   r   r   text  s   
z
Lexer.texttxtc                 C   rN   rI   )r"   )r/   ru   r   r   r   rt     rn   c                 C   s:   g }|   }|jtjkr|| |   }|jtjks|S rI   )rG   rm   r
   r@   rW   )r/   tokensrh   r   r   r   getAllTokens  s   
zLexer.getAllTokensrF   c                 C   sR   | j }| jj}| j||}d| | d }|  }|| d | j| j|| d S )Nztoken recognition error at: '')	r   r   r8   rs   getErrorDisplaygetErrorListenerDispatchsyntaxErrorr   r   )r/   rF   startstoprt   msglistenerr   r   r   r=      s   zLexer.notifyListenerssc                 C   sL   t  }|D ]
}|| | q| W  d    S 1 sw   Y  d S rI   )r   writegetErrorDisplayForChargetvalue)r/   r   bufcr   r   r   ry   (  s
   $zLexer.getErrorDisplayr   c                 C   s>   t |d tjkrdS |dkrdS |dkrdS |dkrdS |S )	Nr   z<EOF>
z\n	z\tz\r)ordr
   r@   r/   r   r   r   r   r   .  s   zLexer.getErrorDisplayForCharc                 C   s   d|  | d S )Nrx   )r   r   r   r   r   getCharErrorDisplay:  s   zLexer.getCharErrorDisplayrec                 C   s@   | j dtjkrt|tr| j| j  d S | j   d S d S re   )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,   DEFAULT_TOKEN_CHANNELHIDDEN_CHANNELHIDDENMIN_CHAR_VALUEMAX_CHAR_VALUEsysstdoutr   r   r)   r3   rG   rJ   rL   intrP   rX   r\   propertyr^   setterra   rd   rB   r6   rm   r:   r9   rg   rt   rV   rw   r   r=   ry   r   r   r   r>   __classcell__r   r   r0   r   r      sb    04	

	



r   )ior   r   version_infotypingr   	typing.ioantlr4.CommonTokenFactoryr   antlr4.atn.LexerATNSimulatorr   antlr4.InputStreamr   antlr4.Recognizerr	   antlr4.Tokenr
   antlr4.error.Errorsr   r   r   objectr   r   r   r   r   r   <module>   s   
