
    Ng&                         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e          ZdS )    DFA)TokenStream)Lexer)Parser)InterpreterRuleContextParserRuleContext)Token)ATN)StarLoopEntryStateATNStateLoopEndState)ParserATNSimulator)PredictionContextCache)
Transition)RecognitionExceptionUnsupportedOperationExceptionFailedPredicateExceptionc            
       ~     e Zd ZdZdededededef
 fdZde	fd	Z
d
ede	de	de	f fdZd ZdefdZdefdZ xZS )ParserInterpreter)grammarFileNameatn
tokenNames	ruleNamesdecisionToDFAsharedContextCache_parentContextStackpushRecursionContextStatesr   r   r   r   inputc                    t                                          |           || _        || _        || _        || _        d |j        D             | _        t                      | _	        t                      | _        t                      | _        |j        D ]>}t          |t                     s|j        r| j                            |j                   ?t)          | || j        | j	                  | _        d S )Nc                 ,    g | ]}t          |          S  r   ).0states     T/var/www/html/ai-engine/env/lib/python3.11/site-packages/antlr4/ParserInterpreter.py
<listcomp>z.ParserInterpreter.__init__.<locals>.<listcomp>/   s    LLLes5zzLLL    )super__init__r   r   r   r   decisionToStater   r   r   listr   setr   states
isinstancer   isPrecedenceDecisionaddstateNumberr   _interp)selfr   r   r   r   r   r$   	__class__s          r%   r)   zParserInterpreter.__init__)   s    .$"LLs7JLLL"8":":#'66 *-%%'Z 	G 	GEe%788 ) G/33E4EFFF)$T5GI`aar'   startRuleIndexc                 f   | j         j        |         }t          d t          j        |          }|j        r|                     ||j        |d           n|                     ||j        |           	 | 	                                }|j
        t          j        k    rt          | j                  dk    rY|j        r<| j        }| j                                        }|                     |j                   |S |                                  |S |                     |           n	 |                     |           nz# t*          $ rm}| j         j        |j                 j        | _        || j        _        | j                            | |           | j                            | |           Y d }~nd }~ww xY wC)Nr   )r   ruleToStartStater   r   INVALID_STATE_NUMBERisPrecedenceRuleenterRecursionRuler1   	enterRulegetATNState	stateType	RULE_STOPlen_ctxr   popunrollRecursionContextsaexitRulevisitRuleStopState
visitStater   ruleToStopState	ruleIndexr$   	exception_errHandlerreportErrorrecover)r3   r5   startRuleStartStaterootContextpresultparentContextes           r%   parsezParserInterpreter.parse=   s   "h7G,T83PR`aa/ 	Y##K1D1PR`bcddddNN;(;(GXXX	6  ""A{H...ty>>1$$*; +!%(,(@(D(D(F(F44]_EEE%**''****6OOA&&&&+ 6 6 6!%!9!+!F!RDJ*+DI'$00q999$,,T155555555	6%	6s   !D7 7
F.A#F))F.localctxr$   rH   
precedencec                     | j                             | j        |j        f           t	                                          ||||           d S N)r   appendr@   invokingStater(   r:   )r3   rT   r$   rH   rU   r4   s        r%   r:   z$ParserInterpreter.enterRecursionRule\   sH     ''H4J(KLLL""8UIzJJJJJr'   c                 0    | j         j        | j                 S rW   )r   r-   r$   )r3   s    r%   r<   zParserInterpreter.getATNState`   s    xtz**r'   rO   c                 "   d}t          |j                  dk    rF| j                            |            | j                            | j        |j        | j                  }nd}|j        |dz
           }|j	        }|t          j        k    r| j        |j                 rt          |j        t                     so| j        d         }t%          |d         |d         | j        j                  }|                     || j        j        |j                 j        | j        j                   nW|t          j        k    r|                     |j                   n+|t          j        t          j        t          j        fv rs|                    | j                            d          t>          j         tB          j"                  s| j        #                    |            | $                                 n|t          j%        k    r| $                                 nm|t          j&        k    rv|j        }|j        }t%          | j        |j        |          }|j'        r$| (                    ||j        ||j)                   n	| *                    ||j        j        |           n|t          j+        k    r6| ,                    | j        |j        |j-                  st]          |           n|t          j/        k    r'| 0                    | j        |j        |j1                   nj|t          j2        k    rK| 3                    | j        |j)                  s*dti          |j)                  z   dz   }	t]          | |	          ntk          d          |j        j        | _6        d S )Nr      zprecpred(_ctx, )z!Unrecognized ATN transition type.)7r?   transitionsrJ   syncr2   adaptivePredict_inputdecisionr@   serializationTyper   EPSILONr   r1   r.   targetr   r   r   rH   pushNewRecursionContextr   r7   ATOMmatchlabelRANGESETNOT_SETmatchesLAr
   MIN_USER_TOKEN_TYPEr   MAX_CHAR_VALUErecoverInlinematchWildcardWILDCARDRULEr9   r:   rU   r;   	PREDICATEsempred	predIndexr   ACTIONactionactionIndex
PRECEDENCEprecpredstrr   r$   )
r3   rO   edge
transitiontttctxruleStartStaterH   msgs
             r%   rF   zParserInterpreter.visitStatec   s-   q}!!!!$'''<//QZSSDDD]4!8,
)z!!!.q}= {jQ[QbdpFqFq {,R0,QqT1Q49LMM,,S$(2KAK2X2dfjfofyzzz  JJz'((((Z%z~z7IJJJ%%dknnQ&7&79RTYThii 5 ..t444    $$$      '.N&0I(AM9MMC. N''^-GT^TijjjjsJ$5$A9MMMM%%%<<	:+?AUVV 5.t4445 """KK	:#79OPPPP&&&==J,ABB :'#j.C*D*DDsJ.tS999:
 00STTT&2


r'   c                 R   | j         j        |j                 }|j        rA| j                                        }|                     |j                   |d         | _        n| 	                                 | j         j
        | j                 j        d         }|j        j        | _        d S )Nr\   r   )r   r7   rH   r9   r   rA   rB   rC   r$   rD   r-   r_   followStater1   )r3   rO   r   rQ   ruleTransitions        r%   rE   z$ParserInterpreter.visitRuleStopState   s    21;?* 	 488::M((999&q)DJJMMOOO4@C#/;


r'   )__name__
__module____qualname__	__slots__r~   r+   r   r   r)   intrS   r	   r:   r<   r   rF   rE   __classcell__)r4   s   @r%   r   r   "   s       Ibs bt bt bQT b\g b b b b b b(63 6 6 6 6>K*; K3 KRU Kbe K K K K K K+ + +;38 ;3 ;3 ;3 ;3z
<8 
< 
< 
< 
< 
< 
< 
< 
<r'   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%   <module>r      s;  (       2 2 2 2 2 2                   N N N N N N N N             J J J J J J J J J J < < < < < < ; ; ; ; ; ; , , , , , , m m m m m m m m m mH< H< H< H< H< H< H< H< H< H<r'   