o
    ڷi                     @   sT   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
 G dd deZdS )	    )IntervalSet)RuleContext)Token)ATNType)ATNStateDecisionStatec                   @   s   e Zd ZdZdZdedefddZdede	fd	d
Z
defddZddede	fddZdefddZdefddZdefddZdefddZdede	fddZdS )ATN)
grammarTypemaxTokenTypestatesdecisionToStateruleToStartStateruleToStopStatemodeNameToStartStateruleToTokenTypelexerActionsmodeToStartStater   r	   r
   c                 C   sB   || _ || _g | _g | _g | _d | _t | _d | _d | _	g | _
d S N)r	   r
   r   r   r   r   dictr   r   r   r   )selfr	   r
    r   D/home/ubuntu/vllm_env/lib/python3.10/site-packages/antlr4/atn/ATN.py__init__   s   
zATN.__init__sctxc                 C   s"   ddl m} || }|j||dS )Nr   )LL1Analyzer)r   )antlr4.LL1Analyzerr   LOOK)r   r   r   r   analr   r   r   nextTokensInContext6   s   zATN.nextTokensInContextc                 C   s,   |j d ur|j S | |d |_ d|j _|j S )NT)nextTokenWithinRuler   readonlyr   r   r   r   r   nextTokensNoContext>   s
   
zATN.nextTokensNoContextNc                 C   s   |d kr	|  |S | ||S r   )r#   r   )r   r   r   r   r   r   
nextTokensE   s   
zATN.nextTokensstatec                 C   s*   |d ur| |_ t| j|_| j| d S r   )atnlenr   stateNumberappendr   r%   r   r   r   addStateK   s   zATN.addStatec                 C   s   d | j |j< d S r   )r   r(   r*   r   r   r   removeStateQ   s   zATN.removeStatec                 C   s"   | j | t| j d |_|jS )N   )r   r)   r'   decisionr"   r   r   r   defineDecisionStateT   s   zATN.defineDecisionStater.   c                 C   s   t | jdkr	d S | j| S )Nr   )r'   r   )r   r.   r   r   r   getDecisionStateY   s   
zATN.getDecisionStater(   c                 C   s   |dk s|t | jkrtd| j| }| |}tj|vr |S t }|| |tj |d kri|j	dkritj|v ri| j|j	 }|j
d }| |j}|| |tj |j}|d kri|j	dkritj|v s<tj|v rt|tj |S )Nr   zInvalid state number.)r'   r   	Exceptionr$   r   EPSILONr   addSet	removeOneinvokingStatetransitionsfollowState	parentCtxaddOneEOF)r   r(   r   r   	followingexpectedr5   rtr   r   r   getExpectedTokensq   s(   






zATN.getExpectedTokensr   )__name__
__module____qualname__	__slots__INVALID_ALT_NUMBERr   intr   r   r   r   r#   r$   r+   r,   r   r/   r0   r>   r   r   r   r   r      s    r   N)antlr4.IntervalSetr   antlr4.RuleContextr   antlr4.Tokenr   antlr4.atn.ATNTyper   antlr4.atn.ATNStater   r   objectr   r   r   r   r   <module>   s   