U
    :qLe£  ã                   @   s8   d dl mZ d dlmZ d dlmZ G dd„ deƒZdS )é    )ÚCommonTokenFactory)ÚTokenSource)ÚTokenc                   @   sN   e Zd Zdeedœdd„Zedd„ ƒZdd„ Zed	d
„ ƒZ	dd„ Z
dd„ ZdS )ÚListTokenSourceN)ÚtokensÚ
sourceNamec                 C   s4   |d krt dƒ‚|| _|| _d| _d | _tj| _d S )Nztokens cannot be nullr   )ÚReferenceErrorr   r   ÚposÚeofTokenr   ÚDEFAULTÚ_factory)Úselfr   r   © r   úm/home/p21-0144/sympy/latex2sympy2solve-back-end/sympyEq/lib/python3.8/site-packages/antlr4/ListTokenSource.pyÚ__init__"   s    zListTokenSource.__init__c                 C   sœ   | j t| jƒk r| j| j  jS | jd k	r0| jjS t| jƒdkr˜| jt| jƒd  }|j}|d k	r‚| d¡}|dkr‚t|ƒ| d S |j|j |j d S dS ©Nr   é   Ú
)	r	   Úlenr   Úcolumnr
   ÚtextÚrfindÚstopÚstart)r   Ú	lastTokenÚ	tokenTextZlastNewLiner   r   r   r   4   s    

zListTokenSource.columnc              
   C   sÖ   | j t| jƒkr’| jd krŒd}t| jƒdkrR| jt| jƒd  j}|dkrR|d }td|d ƒ}| j | |  ¡ ft	j
dt	j||| j| j¡| _| jS | j| j  }| j t| jƒd krÄ|jt	j
krÄ|| _|  j d7  _ |S )Néÿÿÿÿr   r   ÚEOF)r	   r   r   r
   r   Úmaxr   ÚcreateÚgetInputStreamr   r   ÚDEFAULT_CHANNELÚliner   Útype)r   r   ZpreviousStopr   Útr   r   r   Ú	nextTokenL   s.    
      ÿ zListTokenSource.nextTokenc                 C   s|   | j t| jƒk r| j| j  jS | jd k	r0| jjS t| jƒdkrx| jt| jƒd  }|j}|j}|d k	rt|| d¡7 }|S dS r   )r	   r   r   r"   r
   r   Úcount)r   r   r"   r   r   r   r   r"   a   s    
zListTokenSource.linec                 C   sb   | j t| jƒk r | j| j   ¡ S | jd k	r4| j ¡ S t| jƒdkrZ| jt| jƒd   ¡ S d S d S )Nr   r   )r	   r   r   r    r
   )r   r   r   r   r    z   s    

zListTokenSource.getInputStreamc                 C   s0   | j d k	r| j S |  ¡ }|d k	r(| ¡ S dS d S )NÚList)r   r    ÚgetSourceName)r   ÚinputStreamr   r   r   r(   ˆ   s    
zListTokenSource.getSourceName)N)Ú__name__Ú
__module__Ú__qualname__ÚlistÚstrr   Úpropertyr   r%   r"   r    r(   r   r   r   r   r      s   

r   N)Úantlr4.CommonTokenFactoryr   Úantlr4.Lexerr   Úantlr4.Tokenr   r   r   r   r   r   Ú<module>   s   