U
    :qLeä
  ã                   @   s:   d dl Z d dlmZ G dd„ deƒZG dd„ de jƒZdS )é    N)ÚTokenc                   @   s¢   e Zd Zedœdd„Zdd„ Zedd„ ƒZe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d„Zedœdd„Zeedœdd„Zdd„ Zd S )!ÚInputStream)Údatac                 C   s   d| _ || _|  ¡  d S )Nz<empty>)ÚnameÚstrdataÚ_loadString)Úselfr   © r	   úi/home/p21-0144/sympy/latex2sympy2solve-back-end/sympyEq/lib/python3.8/site-packages/antlr4/InputStream.pyÚ__init__   s    zInputStream.__init__c                 C   s(   d| _ dd„ | jD ƒ| _t| jƒ| _d S )Nr   c                 S   s   g | ]}t |ƒ‘qS r	   )Úord)Ú.0Úcr	   r	   r
   Ú
<listcomp>   s     z+InputStream._loadString.<locals>.<listcomp>)Ú_indexr   r   ÚlenÚ_size©r   r	   r	   r
   r      s    zInputStream._loadStringc                 C   s   | j S ©N©r   r   r	   r	   r
   Úindex   s    zInputStream.indexc                 C   s   | j S r   )r   r   r	   r	   r
   Úsize   s    zInputStream.sizec                 C   s
   d| _ d S )Nr   r   r   r	   r	   r
   Úreset'   s    zInputStream.resetc                 C   s:   | j | jkr(|  d¡tjks t‚tdƒ‚|  j d7  _ d S )Né   zcannot consume EOF)r   r   ÚLAr   ÚEOFÚAssertionErrorÚ	Exceptionr   r	   r	   r
   Úconsume*   s    zInputStream.consume)Úoffsetc                 C   sL   |dkrdS |dk r|d7 }| j | d }|dk s<|| jkrBtjS | j| S )Nr   r   )r   r   r   r   r   )r   r   Úposr	   r	   r
   r   0   s    zInputStream.LAc                 C   s
   |   |¡S r   )r   )r   r   r	   r	   r
   ÚLT:   s    zInputStream.LTc                 C   s   dS )Néÿÿÿÿr	   r   r	   r	   r
   Úmark>   s    zInputStream.mark)Úmarkerc                 C   s   d S r   r	   )r   r$   r	   r	   r
   ÚreleaseA   s    zInputStream.releaser   c                 C   s&   || j kr|| _ d S t|| jƒ| _ d S r   )r   Úminr   )r   r   r	   r	   r
   ÚseekG   s    
zInputStream.seek)ÚstartÚstopc                 C   s8   || j kr| j d }|| j kr"dS | j||d … S d S )Nr   Ú )r   r   )r   r(   r)   r	   r	   r
   ÚgetTextN   s
    


zInputStream.getTextc                 C   s   | j S r   )r   r   r	   r	   r
   Ú__str__V   s    zInputStream.__str__N)Ú__name__Ú
__module__Ú__qualname__Ústrr   r   Úpropertyr   r   r   r   Úintr   r!   r#   r%   r'   r+   r,   r	   r	   r	   r
   r      s   


r   c                   @   s   e Zd Zdd„ ZdS )ÚTestInputStreamc                 C   sœ   t dƒ}|  d|j¡ |  d|j¡ |  tdƒ| d¡¡ | ¡  |  d|j¡ | d¡ |  tj	| d¡¡ |  d| 
dd¡¡ | ¡  |  d|j¡ d S )NZabcder   é   Úar   Zbcdé   )r   ZassertEqualr   r   r   r   r   r'   r   r   r+   r   )r   Ústreamr	   r	   r
   Ú
testStream\   s    
zTestInputStream.testStreamN)r-   r.   r/   r8   r	   r	   r	   r
   r3   Z   s   r3   )ZunittestÚantlr4.Tokenr   Úobjectr   ZTestCaser3   r	   r	   r	   r
   Ú<module>   s   K