o
    ?i&                     @   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                
       s   e Zd ZdZdededededef
 fddZd	e	fd
dZ
dede	de	de	f fddZdd ZdefddZdefddZ  ZS )ParserInterpreter)grammarFileNameatn
tokenNames	ruleNamesdecisionToDFAsharedContextCache_parentContextStackpushRecursionContextStatesr   r   r   r   inputc                    s   t  | || _|| _|| _|| _dd |jD | _t | _	t
 | _t | _|jD ]}t|ts2q*|jr<| j|j q*t| || j| j	| _d S )Nc                 S   s   g | ]}t |qS  r   ).0stater   r   U/home/ubuntu/veenaModal/venv/lib/python3.10/site-packages/antlr4/ParserInterpreter.py
<listcomp>/   s    z.ParserInterpreter.__init__.<locals>.<listcomp>)super__init__r   r   r   r   decisionToStater   r   r   listr   setr   states
isinstancer   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r| ||j|d n| ||j| 	 | 	 }|j
tjkrSt| jdkrM|jrG| j}| j }| |j |S |   |S | | n5z| | W n- ty } z!| j j|j j| _|| j_| j| | | j| | W Y d }~nd }~ww q#)Nr   )r   ruleToStartStater   r   INVALID_STATE_NUMBERisPrecedenceRuleenterRecursionRuler,   	enterRulegetATNState	stateType	RULE_STOPlen_ctxr   popunrollRecursionContextsaexitRulevisitRuleStopState
visitStater   ruleToStopState	ruleIndexr    	exception_errHandlerreportErrorrecover)r.   r1   startRuleStartStaterootContextpresultparentContexter   r   r!   parse=   s6   
zParserInterpreter.parselocalctxr    rC   
precedencec                    s*   | j | j|jf t |||| d S N)r   appendr;   invokingStater#   r5   )r.   rO   r    rC   rP   r/   r   r!   r5   \   s   z$ParserInterpreter.enterRecursionRulec                 C   s   | j j| j S rQ   )r   r(   r    )r.   r   r   r!   r7   `   s   zParserInterpreter.getATNStaterJ   c           
      C   s  d}t |jdkr| j|  | j| j|j| j}nd}|j|d  }|j	}|t
jkrY| j|j rXt|jtsX| jd }t|d |d | jj}| || jj|j j| jj n|t
jkre| |j n|t
jt
jt
jfv r|| jdtj t!j"s| j#|  | $  ny|t
j%kr| $  no|t
j&kr|j}|j}t| j|j|}|j'r| (||j||j) nN| *||jj| nD|t
j+kr| ,| j|j|j-st.| n0|t
j/kr| 0| j|j|j1 n |t
j2kr| 3| j|j)sdt4|j) d }	t.| |	nt5d|jj| _6d S )Nr      zprecpred(_ctx, )z!Unrecognized ATN transition type.)7r:   transitionsrE   syncr-   adaptivePredict_inputdecisionr;   serializationTyper   EPSILONr   r,   r)   targetr   r   r   rC   pushNewRecursionContextr   r2   ATOMmatchlabelRANGESETNOT_SETmatchesLAr	   MIN_USER_TOKEN_TYPEr   MAX_CHAR_VALUErecoverInlinematchWildcardWILDCARDRULEr4   r5   rP   r6   	PREDICATEsempred	predIndexr   ACTIONactionactionIndex
PRECEDENCEprecpredstrr   r    )
r.   rJ   edge
transitiontttctxruleStartStaterC   msgr   r   r!   rA   c   sR   










zParserInterpreter.visitStatec                 C   s`   | j j|j }|jr| j }| |j |d | _n| 	  | j j
| j jd }|jj| _d S )NrT   r   )r   r2   rC   r4   r   r<   r=   r>   r    r?   r(   rW   followStater,   )r.   rJ   r|   rL   ruleTransitionr   r   r!   r@      s   
z$ParserInterpreter.visitRuleStopState)__name__
__module____qualname__	__slots__rv   r&   r
   r   r$   intrN   r   r5   r7   r   rA   r@   __classcell__r   r   r/   r!   r   "   s    "=r   N)antlr4.dfa.DFAr   antlr4.BufferedTokenStreamr   antlr4.Lexerr   antlr4.Parserr   antlr4.ParserRuleContextr   r   antlr4.Tokenr	   antlr4.atn.ATNr
   antlr4.atn.ATNStater   r   r   antlr4.atn.ParserATNSimulatorr   antlr4.PredictionContextr   antlr4.atn.Transitionr   antlr4.error.Errorsr   r   r   r   r   r   r   r!   <module>   s   