U
    :qLe\                     @   s   d dl mZ d dlmZ d dlmZmZmZ d dlm	Z	 d dl
mZ d dlmZ d dlmZmZ d dlmZmZmZmZ G d	d
 d
eZdS )    )IntervalSet)Token)PredictionContextSingletonPredictionContext PredictionContextFromRuleContext)RuleContext)ATN)	ATNConfig)ATNStateRuleStopState)WildcardTransitionNotSetTransitionAbstractPredicateTransitionRuleTransitionc                	   @   s^   e Zd ZejZedddZedddZ	deee
dd	d
ZeeeeeeeedddZdS )LL1Analyzeratnc                 C   s
   || _ d S )Nr   )selfr    r   i/home/p21-0144/sympy/latex2sympy2solve-back-end/sympyEq/lib/python3.8/site-packages/antlr4/LL1Analyzer.py__init__   s    zLL1Analyzer.__init__)sc                 C   s   |d krd S t |j}g | }td|D ]f}t ||< t }d}| ||jd tj|| |t |d t || dks| j	|| kr(d ||< q(|S )Nr   F)
lentransitionsrangeset_LOOK
transitiontargetr   EMPTYHIT_PRED)r   r   countlookaltlookBusyseeThruPredsr   r   r   getDecisionLookahead$   s$    

    
z LL1Analyzer.getDecisionLookaheadN)r   	stopStatectxc              
   C   sB   t  }d}|d k	rt|j|nd }| ||||t t |d |S )NT)r   r   r   r   r   )r   r   r'   r(   rr%   ZlookContextr   r   r   LOOKH   s
    zLL1Analyzer.LOOK)r   r'   r(   r"   r$   calledRuleStackr%   addEOFc	                 C   sh  t |d|}	|	|krd S ||	 ||kr^|d krB|tj d S | r^|r^|tj d S t|tr"|d kr|tj d S | r|r|tj d S |t	j
kr"tdt|D ]d}
| jj||
 }|j|k}z.||j | ||||
||||| W 5 |r||j X qd S |jD ]8}t|tkr|jj|krNq(t||jj}z,||jj | |j||||||| W 5 ||jj X nt|tr|r| |j||||||| n|| j n|jr| |j||||||| nbt|t kr(|!ttj"| jj#d  n8|j$}|d k	r(t|t%rV|&tj"| jj#}|'| q(d S )Nr      )(r	   addaddOner   EPSILONisEmptyEOF
isinstancer   r   r   r   r   r   statesgetReturnState	ruleIndexdiscardr   	getParentr   typer   r   r   createfollowStatestateNumberremover   r    	isEpsilonr   addRangeMIN_USER_TOKEN_TYPEmaxTokenTypelabelr   
complementaddSet)r   r   r'   r(   r"   r$   r+   r%   r,   cireturnStateZremovedt
newContextset_r   r   r   r   m   sd    

"
zLL1Analyzer._LOOK)NN)__name__
__module____qualname__r   INVALID_TYPEr    r   r   r
   r&   r   r*   r   r   r   boolr   r   r   r   r   r      s   $%
  r   N)antlr4.IntervalSetr   antlr4.Tokenr   antlr4.PredictionContextr   r   r   antlr4.RuleContextr   antlr4.atn.ATNr   antlr4.atn.ATNConfigr	   antlr4.atn.ATNStater
   r   antlr4.atn.Transitionr   r   r   r   objectr   r   r   r   r   <module>   s   