o
    ÃÚ·iì  ã                   @   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                   @   sT   e Zd ZdZddedefdd„Zedd„ ƒZd	d
„ Z	edd„ ƒZ
dd„ Zdd„ ZdS )ÚListTokenSource)ÚtokensÚ
sourceNameÚposÚeofTokenÚ_factoryNr   r   c                 C   s4   |d u rt dƒ‚|| _|| _d| _d | _tj| _d S )Nztokens cannot be nullr   )ÚReferenceErrorr   r   r   r	   r   ÚDEFAULTr
   )Úselfr   r   © r   úL/home/ubuntu/vllm_env/lib/python3.10/site-packages/antlr4/ListTokenSource.pyÚ__init__#   s   zListTokenSource.__init__c                 C   sœ   | j t| jƒk r| j| j  jS | jd ur| jjS t| jƒdkrL| jt| jƒd  }|j}|d urA| d¡}|dkrAt|ƒ| d S |j|j |j d S dS ©Nr   é   Ú
)	r   Úlenr   Úcolumnr	   ÚtextÚrfindÚstopÚstart)r   Ú	lastTokenÚ	tokenTextÚlastNewLiner   r   r   r   5   s   

zListTokenSource.columnc              
   C   sÖ   | j t| jƒkrI| jd u rFd}t| jƒdkr)| jt| jƒd  j}|dkr)|d }td|d ƒ}| j | |  ¡ ft	j
dt	j||| j| j¡| _| jS | j| j  }| j t| jƒd krb|jt	j
krb|| _|  j d7  _ |S )Néÿÿÿÿr   r   ÚEOF)r   r   r   r	   r   Úmaxr
   ÚcreateÚgetInputStreamr   r   ÚDEFAULT_CHANNELÚliner   Útype)r   r   ÚpreviousStopr   Útr   r   r   Ú	nextTokenM   s"   
ÿ zListTokenSource.nextTokenc                 C   s|   | j t| jƒk r| j| j  jS | jd ur| jjS t| jƒdkr<| jt| jƒd  }|j}|j}|d ur:|| d¡7 }|S dS r   )r   r   r   r#   r	   r   Úcount)r   r   r#   r   r   r   r   r#   b   s   
zListTokenSource.linec                 C   s^   | j t| jƒk r| j| j   ¡ S | jd ur| j ¡ S t| jƒdkr-| jt| jƒd   ¡ S d S )Nr   r   )r   r   r   r!   r	   )r   r   r   r   r!   {   s   

zListTokenSource.getInputStreamc                 C   s,   | j d ur| j S |  ¡ }|d ur| ¡ S dS )NÚList)r   r!   ÚgetSourceName)r   ÚinputStreamr   r   r   r*   ‰   s   
zListTokenSource.getSourceName)N)Ú__name__Ú
__module__Ú__qualname__Ú	__slots__Ú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   