a
    d&                     @   s   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
 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mZ G dd deZdS )    DFA)TokenStream)Lexer)Parser)InterpreterRuleContextParserRuleContext)Token)ATN)StarLoopEntryStateATNStateLoopEndState)ParserATNSimulator)PredictionContextCache)
Transition)RecognitionExceptionUnsupportedOperationExceptionFailedPredicateExceptionc                       sx   e Zd ZdZeeeeed fddZe	dddZ
ee	e	e	d fd	d
Zdd ZedddZedddZ  ZS )ParserInterpreter)grammarFileNameatn
tokenNames	ruleNamesdecisionToDFAsharedContextCache_parentContextStackpushRecursionContextStates)r   r   r   r   inputc                    s   t  | || _|| _|| _|| _dd |jD | _t | _	t
 | _t | _|jD ]$}t|tsdqT|jrT| j|j qTt| || j| j	| _d S )Nc                 S   s   g | ]}t |qS  r   ).0stater   r   a/var/www/html/stable-diffusion-webui/venv/lib/python3.9/site-packages/antlr4/ParserInterpreter.py
<listcomp>/       z.ParserInterpreter.__init__.<locals>.<listcomp>)super__init__r   r   r   r   ZdecisionToStater   r   r   listr   setr   states
isinstancer   ZisPrecedenceDecisionaddstateNumberr   _interp)selfr   r   r   r   r   r    	__class__r   r!   r%   )   s    

zParserInterpreter.__init__)startRuleIndexc              
   C   s  | j j| }td tj|}|jr4| ||j|d n| ||j| | 	 }|j
tjkrt| jdkr|jr| j}| j }| |j |S |   |S | | qDz| | W qD ty } zB| j j|j j| _|| j_| j| | | j| | W Y d }~qDd }~0 0 qDd S )Nr   )r   ruleToStartStater   r   ZINVALID_STATE_NUMBERisPrecedenceRuleenterRecursionRuler+   	enterRulegetATNStateZ	stateTypeZ	RULE_STOPlen_ctxr   popunrollRecursionContextsaexitRulevisitRuleStopState
visitStater   ZruleToStopState	ruleIndexr    	exception_errHandlerZreportErrorZrecover)r-   r0   ZstartRuleStartStateZrootContextpresultparentContexter   r   r!   parse=   s.    
zParserInterpreter.parse)localctxr    r>   
precedencec                    s*   | j | j|jf t |||| d S N)r   appendr7   ZinvokingStater$   r3   )r-   rF   r    r>   rG   r.   r   r!   r3   \   s    z$ParserInterpreter.enterRecursionRulec                 C   s   | j j| j S rH   )r   r(   r    )r-   r   r   r!   r5   `   s    zParserInterpreter.getATNState)rA   c           
      C   s(  d}t |jdkr6| j|  | j| j|j| j}nd}|j|d  }|j	}|t
jkr| j|j rt|jts| jd }t|d |d | jj}| || jj|j j| jj nf|t
jkr| |j nL|t
jt
jt
jfv r|| jdtj t!j"s| j#|  | $  n|t
j%kr.| $  n|t
j&kr|j}|j}t| j|j|}|j'rt| (||j||j) n| *||jj| n|t
j+kr| ,| j|j|j-st.| nf|t
j/kr| 0| j|j|j1 nD|t
j2kr| 3| j|j)sdt4|j) d }	t.| |	nt5d|jj| _6d S )Nr      zprecpred(_ctx, )z!Unrecognized ATN transition type.)7r6   transitionsr@   syncr,   ZadaptivePredict_inputZdecisionr7   ZserializationTyper   ZEPSILONr   r+   r)   targetr   r   r   r>   ZpushNewRecursionContextr   r1   ATOMmatchlabelRANGEZSETZNOT_SETmatchesZLAr	   ZMIN_USER_TOKEN_TYPEr   ZMAX_CHAR_VALUEZrecoverInlineZmatchWildcardZWILDCARDZRULEr2   r3   rG   r4   Z	PREDICATEZsempredZ	predIndexr   ZACTIONactionZactionIndexZ
PRECEDENCEZprecpredstrr   r    )
r-   rA   ZedgeZ
transitiontttctxruleStartStater>   msgr   r   r!   r=   c   sL    

"


zParserInterpreter.visitStatec                 C   s`   | j j|j }|jr6| j }| |j |d | _n| 	  | j j
| j jd }|jj| _d S )NrJ   r   )r   r1   r>   r2   r   r8   r9   r:   r    r;   r(   rM   ZfollowStater+   )r-   rA   r[   rC   ZruleTransitionr   r   r!   r<      s    
z$ParserInterpreter.visitRuleStopState)__name__
__module____qualname__	__slots__rW   r&   r
   r   r%   intrE   r   r3   r5   r   r=   r<   __classcell__r   r   r.   r!   r   "   s   =r   N)Zantlr4.dfa.DFAr   Zantlr4.BufferedTokenStreamr   Zantlr4.Lexerr   Zantlr4.Parserr   Zantlr4.ParserRuleContextr   r   Zantlr4.Tokenr	   Zantlr4.atn.ATNr
   Zantlr4.atn.ATNStater   r   r   Zantlr4.atn.ParserATNSimulatorr   Zantlr4.PredictionContextr   Zantlr4.atn.Transitionr   Zantlr4.error.Errorsr   r   r   r   r   r   r   r!   <module>   s   