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   S/home/ubuntu/veenaModal/venv/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 )Nr   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   