
    Ng9                    F   d dl Z d dlmZ d dlmZ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 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 d dlmZ d dlmZmZmZm Z  d dl!m"Z" d dl#m$Z$m%Z%m&Z&m'Z' d dl(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0 d dl1m2Z2m3Z3 d dl4m5Z5  G d de          Z6dS )    N)DFA)PredictionContextCachePredictionContextSingletonPredictionContext PredictionContextFromRuleContext)TokenStream)Parser)ParserRuleContext)RuleContext)Token)str_list)ATN)	ATNConfig)ATNConfigSet)ATNSimulator)StarLoopEntryStateDecisionStateRuleStopStateATNState)PredictionMode)SemanticContextAND
andContext	orContext)
TransitionRuleTransitionActionTransitionPrecedencePredicateTransitionPredicateTransitionAtomTransitionSetTransitionNotSetTransition)DFAStatePredPrediction)NoViableAltExceptionc                        e Zd ZdZdZdZdZdZdede	de
def fdZd Zd	ed
edefdZdeded	ededef
dZdedefdZdededefdZdedefdZdededed	ededefdZdededefdZdedefdZd ed!edefd"Z defd#Z!d$e"d%efd&Z#d'e$ded(efd)Z%d'e$d*e
fd+Z&dedefd,Z'defd-Z(dedefd.Z)d/e
ded0efd1Z*d2e+ded3e$d4eded5efd6Z,d2e+ded3e$d4eded7ed5efd8Z-d2e+ded3e$d4eded7ed5efd9Z.d: Z/d;efd<Z0 e1            Z2d= e2e"j3        <   d> e2e"j4        <   d? e2e"j5        <   d@ e2e"j6        <   dA e2e"j7        <   dB e2e"j8        <   dC e2e"j9        <   dD e2e"j:        <   d2e+de"d4edEeded5efdFZ;d2e+de<fdGZ=d2e+dHe>d4edEedef
dIZ?d2e+dHe@d4edEedef
dJZAd2e+deBfdKZCdefdLZDdefdMZEdefdNZFd	efdOZGdPeHfdQZId	edededefdRZJdefdSZKdedTededUefdVZLdedefdWZMdedXe$dededYef
dZZNded[edededYef
d\ZOdedededYed]ed'e$defd^ZP xZQS )_ParserATNSimulator)parserdecisionToDFApredictionMode_input_startIndex_outerContext_dfa
mergeCacheFr(   atnr)   sharedContextCachec                     t                                          ||           || _        || _        t          j        | _        d | _        d| _        d | _	        d | _
        d | _        d S Nr   )super__init__r(   r)   r   LLr*   r+   r,   r-   r.   r/   )selfr(   r0   r)   r1   	__class__s        Y/var/www/html/ai-engine/env/lib/python3.11/site-packages/antlr4/atn/ParserATNSimulator.pyr5   zParserATNSimulator.__init__  sc    0111*,/!	     c                     d S N )r7   s    r9   resetzParserATNSimulator.reset#  s    r:   inputdecisionouterContextc                    t           j        st           j        rt          dt	          |          z   dz   |                     |          z   dz   t	          |                    d          j                  z   dz   t	          |                    d          j                  z              || _	        |j
        | _        || _        | j        |         }|| _        |                                }|j
        }	 |j        r-|                    | j                                                  }n|j        }|T|t*          j        }t           j        st           j        rat          dt	          |j                  z   dz   |                     |          z   dz   |                    | j        j        d           z              d}|                     |j        t*          j        |          }	|j        rs|	|j        _        |                     |	          }	|                     |t?          |		                    }|                     | j                                        |           n+|                     |t?          |		                    }||_        | !                    |||||          }
t           j        r/t          d
|                    | j        j                  z              |
d | _        d | _"        |#                    |           |$                    |           S # d | _        d | _"        |#                    |           |$                    |           w xY w)NzadaptivePredict decision  exec LA(1)== line    :zpredictATN decision z, outerContext=FconfigszDFA after predictATN: )%r'   debugdebug_list_atn_decisionsprintstrgetLookaheadNameLTlinecolumnr+   indexr,   r-   r)   r.   markprecedenceDfagetPrecedenceStartStater(   getPrecedences0r
   EMPTYr@   toStringliteralNamescomputeStartStateatnStartStaterH   applyPrecedenceFilteraddDFAStater#   setPrecedenceStartStateexecATNr/   seekrelease)r7   r?   r@   rA   dfamrQ   rV   fullCtx
s0_closurealts              r9   adaptivePredictz"ParserATNSimulator.adaptivePredict&  s:   # 	<'9'R 	<-H=#23595J5J55Q5QR#+,.1%((1++2B.C.CDFIJ $'uxx{{'9#:#:; < < <  ;) *	JJLL+	   001J1J1L1LMM Vz'#4#:L%+ r/A/Z r03s|3D3DD'679=9N9Nu9U9UV'89;G;P;PQUQ\Qiko;p;pq r r r  !33C4EGXG^`ghh
$   &0CFN!%!;!;J!G!GJ))#x
/K/K/KLLB//0I0I0K0KRPPPP))#x
/K/K/KLLBCF,,sBulCCC!' Y.dk>V1W1WWXXXDI"DOJJuMM! DI"DOJJuMM!s   1G'L :Mrb   rV   
startIndexc           	          t           j        st           j        rt          dt	          |j                  z   dz   |                     |          z   dz   t	          |                    d          j                  z   dz   t	          |                    d          j	                  z              |}t           j        rt          dt	          |          z              |
                    d          }	 |                     ||          }||                     |||          }|| j        u ra|                     |||j        |          }	|                    |           |                     |j        |          }
|
t$          j        k    r|
S |	|j        ru| j        t,          j        k    r_|j        j        }|j        t           j        rt          d           |j        }||k    r|                    |           |                     |j        |d          }t9          |          dk    r*t           j        rt          d	           t;          |          S ||k    r|                    |           t           j        r2t          d
t	          |          z   dz   t	          |          z              d}|                     |j         ||          }| !                    |||j        ||j                   | "                    ||||||          }
|
S |j#        r|j        |j$        S |j        }|                    |           |                     |j        |d          }t9          |          dk    r|                     |||j        |          t9          |          dk    rt;          |          S | %                    ||||d||j                   t;          |          S |}|tL          j'        k    r)|(                                 |
                    d          }!)NzexecATN decision rC   rD   rE   rF   zs0 = Tz*DFA state has preds in DFA sim LL failoverzFull LL avoidedzctx sensitive state z in r   F))r'   rI   rJ   rK   rL   r@   rM   rN   rO   rP   LAgetExistingTargetStatecomputeTargetStateERRORnoViableAltrH   r`   7getSynValidOrSemInvalidAltThatFinishedDecisionEntryRuler   INVALID_ALT_NUMBERrequiresFullContextr*   r   SLLconflictingAlts
predicatesrQ   evalSemanticContextlenmin	dfa_debugrZ   r[   reportAttemptingFullContextexecATNWithFullContextisAcceptState
predictionreportAmbiguityr   EOFconsume)r7   rb   rV   r?   rh   rA   	previousDtDerf   rs   conflictIndexrd   re   	stopIndexaltss                    r9   r_   zParserATNSimulator.execATN  s   # 	V'9'R 	V%CL(9(99#$&*&;&;E&B&BC"588A;;#34457:;=@!AS=T=TU V V V 	# 	%'CGG#$$$HHQKKG	 ++Iq99Ay++CA>>DJ $$UL):KZXX

:&&&RRS\Sdfrss...J$ )<@R)R)R"#)";<+)/ LJKKK$)KM$
22

:...&*&>&>q|\[_&`&`O?++Q..-3 5!"3444"?333$
22 

=111%/ W03|3D3DDfLsSTvvUVVV!33C4E|U\]]
00oqyR\^c^ijjj11#q*eZYeff
 %<'<'!K	

:&&&//lDQQt99a<<**5,	:VVVYY\\t99$ ((aYtUVU^___t99$IEI~~HHQKKOG	 r:   r   r   c                 l    |j         }||dz   dk     s|dz   t          |          k    rd S ||dz            S )NrE   r   )edgesrv   )r7   r   r   r   s       r9   rk   z)ParserATNSimulator.getExistingTargetState  sA    =AEAIIQ#e**)<)<4Q<r:   c                 @   |                      |j        |d          }|$|                     |||| j                   | j        S t	          |          }|                     |          }t          j        rt          j	        |          }t          dt          |          z   dz   t          |          z   dz   t          |          z   dz   t          t          j        |                    z   dz   t          |                     |                    z              |t          j        k    rd|_        ||j        _        ||_        net          j        | j        |          rK|                     |          |j        _        d|_        d|_        t/          |j        j                  |_        |j        rW|j        j        rK|                     || j                            |j                             |j        t          j        |_        |                     ||||          }|S )	NFrG   zSLL altSubSets=z
, configs=
, predict=z, allSubsetsConflict=z, conflictingAlts=T)computeReachSetrH   
addDFAEdgerm   r#   getUniqueAltr'   rI   r   getConflictingAltSubsetsrK   rL   allSubsetsConflictgetConflictingAltsr   rp   r{   	uniqueAltr|   #hasSLLConflictTerminatingPredictionr*   rs   rq   rw   hasSemanticContextpredicateDFAStater0   getDecisionStater@   rt   )r7   rb   r   r   reachr   predictedAlt
altSubSetss           r9   rl   z%ParserATNSimulator.computeTargetState  s   $$Y%65AA=OOCAtz:::: U###((//# 	='@GGJ#c*oo5Ds5zzQ$%'*<'8'89;RSN=jIIJJKMab D33E::;;< = = =
 ///"AO".AI'ALL?@SUZ[[ 	:(,(?(?(F(FAI%$(A!"AOqy899AL? 	6qy; 	6""1dh&?&?&M&MNNN|'"5 OOCAq11r:   dfaStatedecisionStatec                 "   t          |j                  }|                     |j                  }|                     ||j        |          }|.|                     ||          |_        t          j        |_	        d S t          |          |_	        d S r<   )rv   transitionsgetConflictingAltsOrUniqueAltrH   getPredsForAmbigAltsgetPredicatePredictionsrt   r   rp   r|   rw   )r7   r   r   naltsaltsToCollectPredsFrom	altToPreds         r9   r   z$ParserATNSimulator.predicateDFAState  s     M-.. "&!C!CHDT!U!U--.DhFVX]^^	 "&">">?UW`"a"aH"%"8H
 #&&<"="=Hr:   r   c           	      N   t           j        st           j        rt          dt	          |                     d}d}d }	|}
|                    |           |                    d          }d}	 |                     |
||          }	|	W|                     |||
|          }|                    |           | 	                    |
|          }|t          j        k    r|S |t          j        |	          }t           j        rit          dt	          |          z   dz   t	          t          j        |                    z   dz   t	          t          j        |                    z              |                     |	          |	_        |	j        t          j        k    r|	j        }n| j        t          j        ur&t          j        |          }|t          j        k    rn}n?t          j        |          r+t          j        |          rd}t          j        |          }n=|	}
|t,          j        k    r)|                                 |                    d          }|	j        t          j        k    r |                     |||	||j                   |S |                     ||||j        |d |	           |S )	Nrz   TFrE   zLL altSubSets=r   z, resolvesToJustOneViableAlt=)r'   rI   rJ   rK   rL   r`   rj   r   rn   ro   r   rp   r   r   r   resolvesToJustOneViableAltr   r*   LL_EXACT_AMBIG_DETECTIONr   allSubsetsEqualgetSingleViableAltr   r~   r   reportContextSensitivityrQ   r}   )r7   rb   r   rV   r?   rh   rA   rd   foundExactAmbigr   previousr   r   r   rf   r   s                   r9   rz   z)ParserATNSimulator.execATNWithFullContext0  s   
 # 	5'9'R 	5*CGG444

:HHQKK1	 ((1g>>E} $$UL(JOO

:&&&RRS[]ijj...JG'@GGJ!' R&Z8<G.5jAABBCEde.CJOOPPQ R R R #//66EO 666$$N,SSS-HTT3#999 :
 "4Z@@ ^EcdnEoEo &*O#1#DZ#P#PL
 HEI~~HHQKKc1	 l ?c444))#|UJPUP[\\\: 	S!ZotUZ[[[r:   closurerd   c           	         t           j        rt          dt          |          z              | j        t                      | _        t          |          }d }|D ]}t           j        r8t          d|                     |          z   dz   t          |          z              t          |j	        t                    r8|s|t          j        k    r%|t                      }|                    |           |j	        j        D ]D}|                     ||          }|*|                    t%          ||          | j                   Ed }	|K|t          j        k    r;t'          |          dk    r|}	n%|                     |          t*          j        k    r|}	|	Lt          |          }	t/                      }
|t          j        k    }|D ]}|                     ||	|
d||           |t          j        k    r|                     |	|	|u           }	|6|rt5          j        |	          s |D ]}|	                    || j                   t'          |	          dk    rd S |	S )Nz&in computeReachSet, starting closure: ztesting z at stateconfigrE   Fr   )r'   rI   rK   rL   r/   dictr   getTokenName
isinstancer   r   r   r~   listappendr   getReachableTargetaddr   rv   r   r   rp   setr   "removeAllConfigsNotInRuleStopStater   hasConfigInRuleStopState)r7   r   r   rd   intermediateskippedStopStatesctranstargetr   closureBusytreatEofAsEpsilons               r9   r   z"ParserATNSimulator.computeReachSet  s   # 	K:S\\IJJJ?""ffDO#G,, !  	Y 	YA!' Kj4#4#4Q#7#77&@3q66IJJJ!'=11  0a59nn(0,0FF)%,,Q///, Y Y00::% $$YVA%F%F%FXXXY  $EI<  !##
 %""<00#2HHH %
 = ))E%%K !UY! W WQ{E7DUVVVV	>>$ ;;E5LCXYYE (G(^ElmrEsEs(& . .		!T_----u::q==4Lr:   rH   lookToEndOfRulec                    t          j        |          r|S t          |j                  }|D ]}t	          |j        t                    r|                    || j                   8|r|j        j	        rs| j
                            |j                  }t          j        |v rF| j
        j        |j        j                 }|                    t!          ||          | j                   |S Nr   )r   allConfigsInRuleStopStatesr   rd   r   r   r   r   r/   epsilonOnlyTransitionsr0   
nextTokensr   EPSILONruleToStopState	ruleIndexr   )r7   rH   r   resultr   r   endOfRuleStates          r9   r   z5ParserATNSimulator.removeAllConfigsNotInRuleStopState  s    4W== 	Ngo.. 	` 	`F&,66 

64?333 `6<#F `!X00>>
=J..%)X%=fl>T%UNJJy~fMMMt___r:   pctxc           	      4   t          | j        |          }t          |          }t          dt	          |j                            D ]P}|j        |         j        }t          ||dz   |          }t                      }	| 	                    |||	d|d           Q|S )Nr   rE   TF)
r   r0   r   rangerv   r   r   r   r   r   )
r7   r   r   rd   initialContextrH   ir   r   r   s
             r9   rZ   z$ParserATNSimulator.computeStartState'  s    9$(CHHw''q#am,,-- 	H 	HA]1%,F&!A#~66A%%KLLG[$GGGGr:   c                 @   t                      }t          |j                  }|D ]}|j        dk    r|j                            | j        | j                  }|6|j        ||j	        j
        <   ||j        ur+|                    t          ||          | j                   ~|                    || j                   |D ]\}|j        dk    r|j        s,|                    |j	        j
        d           }||j        k    rA|                    || j                   ]|S )NrE   )r   semantic)r   r   rd   rf   semanticContextevalPrecedencer(   r-   contextr   stateNumberr   r   r/   precedenceFilterSuppressedget)r7   rH   statesFromAlt1	configSetr   updatedContextr   s          r9   r\   z(ParserATNSimulator.applyPrecedenceFilterk  s1    11	 	7 	7FzQ#3BB4;PTPbccN%7=~N6<34V%;;;ivOOOQUQ`aaaafdo6666 	3 	3FzQ 4 (,,V\-EtLLFN**MM&$/2222r:   r   ttypec                 V    |                     |d| j        j                  r|j        S d S r3   )matchesr0   maxTokenTyper   )r7   r   r   s      r9   r   z%ParserATNSimulator.getReachableTarget  s,    ==48#899 	<4r:   	ambigAltsr   c                 |   d g|dz   z  }|D ]3}|j         |v r(t          ||j                  |j                  ||j         <   4d}t          d|dz             D ]3}||         t          j        ||<   ||         t          j        ur|dz  }4|dk    rd }t          j        rt          dt          |          z              |S )NrE   r   zgetPredsForAmbigAlts result )
rf   r   r   r   r   NONEr'   rI   rK   r   )r7   r   rH   r   r   r   	nPredAltsr   s           r9   r   z'ParserATNSimulator.getPredsForAmbigAlts  s     Feai(	 	R 	RAu	!!#,Yqu-=q?P#Q#Q	!% 	q%'"" 	 	A|#.3	!1_%999Q	 a<<I# 	H08I3F3FFGGGr:   r   c                     g }d}t          dt          |                    D ]C}||         }|'||v r#|                    t          ||                     |t          j        urd}D|sd S |S )NFrE   T)r   rv   r   r$   r   r   )r7   r   r   pairscontainsPredicater   preds          r9   r   z*ParserATNSimulator.getPredicatePredictions  s    !q#i..)) 	) 	)AQ<D$i^D!44555?///$(!  	4r:   c                    |                      ||          \  }}|                     |          }|t          j        k    r|S t	          |          dk    r'|                     |          }|t          j        k    r|S t          j        S r3   ) splitAccordingToSemanticValidity#getAltThatFinishedDecisionEntryRuler   rp   rv   )r7   rH   rA   semValidConfigssemInvalidConfigsrf   s         r9   ro   zJParserATNSimulator.getSynValidOrSemInvalidAltThatFinishedDecisionEntryRule  s    -1-R-RSZ\h-i-i**66GG&&&J !!!##::;LMMCC***
%%r:   c                 4   t                      }|D ]Z}|j        dk    s3t          |j        t                    r3|j                                        r|                    |j                   [t          |          dk    rt          j        S t          |          S r3   )r   reachesIntoOuterContextr   r   r   r   hasEmptyPathr   rf   rv   r   rp   rw   )r7   rH   r   r   s       r9   r   z6ParserATNSimulator.getAltThatFinishedDecisionEntryRule   s    uu 	  	 A(**z!'=/Q/Q*VWV_VlVlVnVn*t99a<<))t99r:   c                 P   t          |j                  }t          |j                  }|D ]x}|j        t          j        urN|j                            | j        |          }|r|                    |           M|                    |           c|                    |           y||fS r<   )r   rd   r   r   r   evalr(   r   )r7   rH   rA   	succeededfailedr   predicateEvaluationResults          r9   r   z3ParserATNSimulator.splitAccordingToSemanticValidity  s     11	go.. 	! 	!A (<<<,-,=,B,B4;P\,],]), "MM!$$$$JJqMMMMa    &!!r:   predPredictionscompletec                    t                      }|D ]}|j        t          j        u r|                    |j                   |s nȌ4|j                            | j        |          }t          j	        st          j
        r2t          dt          |          z   dz   t          |          z              |rZt          j	        st          j
        r$t          dt          |j                  z              |                    |j                   |s n|S )Nz
eval pred =zPREDICT )r   r   r   r   r   rf   r   r(   r'   rI   rx   rK   rL   )r7   r   rA   r   predictionspairr   s          r9   ru   z&ParserATNSimulator.evalSemanticContext'  s   ee# 	 	DyO000))) E(,	t{L(Q(Q%!' W+=+G WlSYY.4s;T7U7UUVVV( %+ 6/A/K 6*s48}}4555))) Er:   r   r   collectPredicatesr   c           	      @    d}|                      |||||||           d S r3   )closureCheckingStopState)r7   r   rH   r   r   rd   r   initialDepths           r9   r   zParserATNSimulator.closureC  s?    %%fg{DU!(,8I	K 	K 	K 	K 	Kr:   depthc           
      f   t           j        r"t          dt          |          z   dz              t	          |j        t                    r|j                                        sXt          dt          |j                            D ]2}|j                            |          }	|	t          j        u r|r;|                    t          |j        t          j        |          | j                   ht           j        r/t          d|                     |j        j                  z              |                     |||||||           | j        j        |	         }
|j                            |          }t          |
|j        ||j                  }|j        |_        |                     ||||||dz
  |           4d S |r|                    || j                   d S t           j        r/t          d|                     |j        j                  z              |                     |||||||           d S )Nzclosure()r   r   r   r   zFALLING off rule )r   rf   r   r   rE   )r'   rI   rK   rL   r   r   r   r   isEmptyr   rv   getReturnStater   EMPTY_RETURN_STATEr   r   rW   r/   getRuleNamer   closure_r0   states	getParentrf   r   r   r   )r7   r   rH   r   r   rd   r  r   r   r   returnState
newContextr   s                r9   r   z+ParserATNSimulator.closureCheckingStopStateI  sY   # 	2*s6{{*S0111flM22 !	Z >))++ Zq#fn"5"566 E EA"N99!<<E 1 DDD" H#KK	N_Nent(u(u(uw{  xG  H  H  H$  27 f %&9D<L<LV\Mc<d<d&d e e e MM&';HY%,e5FH H H "&(/%"8K!'!9!9!!<!<J!ZbhbxyyyA 170NA-11!WkK\^eglopgp  sD  E  E  E  E ZFDO444 &+ Z-0@0@AW0X0XXYYYfg{4EwPUWhiiiiir:   c           
      8   |j         }|j        s|                    || j                   d}	|j        D ]e}
|	rd}	|                     |          r|ot          |
t                     }|                     ||
||dk    ||          }||}t          |j         t                    r| j
        -| j
        j        r!|
j        | j
        j        j        k    rd|_        |xj        dz  c_        ||v r|                    |           d|_        |dz  }t$          j        rt)          dt+          |          z              nB|
j        s||v r|                    |           t          |
t.                    r|dk    r|dz  }|                     |||||||           gd S )NTFr   rE   zdips into outer ctx: )r   r   r   r/   r   'canDropLoopEntryEdgeInLeftRecursiveRuler   r   getEpsilonTargetr   r.   rS   outermostPrecedenceReturnr[   r   r   r   dipsIntoOuterContextr'   rI   rK   rL   	isEpsilonr   r   )r7   r   rH   r   r   rd   r  r   r   firstr   continueCollectingr   newDepths                 r9   r	  zParserATNSimulator.closure_s  s   L' 	1KK000  '	A '	AA ??GG !2!Z:aIY;Z;Z7Z%%fa1CUaZQXZkllA} v|];; * y,1H,6$):Q:[[[;?A8--2--K'' OOA&&&37G0MH)/ @5A>???; +++$#***!!^44 *#q==$MH--a+GY[bdln  A  A  AO'	A '	Ar:   c                    |j         }|j        t          j        k    s9|j        r2|j                                        s|j                                        rdS t          |j                  }t          d|          D ]?}| j
        j        |j                            |                   }|j        |j        k    r dS @|j        d         j        }|j        j        }| j
        j        |         }t          d|          D ]}|j                            |          }	| j
        j        |	         }t          |j                  dk    s|j        d         j        s dS |j        d         j        }
|j        t          j        k    r|
|u r||u r|
|u r|
j        t          j        k    r?t          |
j                  dk    r'|
j        d         j        r|
j        d         j        |u r dS dS )NFr   rE   T)r   	stateTyper   STAR_LOOP_ENTRYisPrecedenceDecisionr   r  r   rv   r   r0   r
  r  r   r   r   endStater   r  	BLOCK_END)r7   r   r   numCtxsr   r  decisionStartStateblockEndStateNumblockEndStatereturnStateNumberreturnStateTargets              r9   r  z:ParserATNSimulator.canDropLoopEntryEdgeInLeftRecursiveRule  s   L ;(222- 3>))++ 3 >..00 3 5 fn%%q'"" 	 	A(/&.*G*G*J*JKK$33uu 4 ]1-4-6B(89 q'""  	  	A & = =a @ @(/*;<K;*++q008OPQ8R8\0uu !, 7 : A$(:::?PTU?U?U
 m++ !M11 !*h.@@@)566!;;%1!4> <%1!4;q@@ 55tr:   rQ   c                 j    | j         |dk    r| j         j        |         S dt          |          z   dz   S )Nr   z<rule >)r(   	ruleNamesrL   )r7   rQ   s     r9   r  zParserATNSimulator.getRuleName@  s8    ;"uaxx;(//c%jj(3..r:   c                 .    |                      ||          S r<   )ruleTransitionsimr   r   r   	inContextrd   r   s          r9   <lambda>zParserATNSimulator.<lambda>G  s    61%% r:   c                 4    |                      |||||          S r<   )precedenceTransitionr(  s          r9   r+  zParserATNSimulator.<lambda>I  s!      ,=y'RR r:   c                 4    |                      |||||          S r<   )predTransitionr(  s          r9   r+  zParserATNSimulator.<lambda>K  s!    61&7GLL r:   c                 .    |                      ||          S r<   )actionTransitionr(  s          r9   r+  zParserATNSimulator.<lambda>M  s    VQ'' r:   c                 .    t          |j        |          S r   )r   r   r(  s          r9   r+  zParserATNSimulator.<lambda>O  s    000 r:   c                 x    |r7|                     t          j        dd          rt          |j        |          nd S Nr   rE   r   r   r   r~   r   r   r(  s          r9   r+  zParserATNSimulator.<lambda>Q  ?    4En!))TYT]_`bcJdJdn	0000jn r:   c                 x    |r7|                     t          j        dd          rt          |j        |          nd S r4  r5  r(  s          r9   r+  zParserATNSimulator.<lambda>S  r6  r:   c                 x    |r7|                     t          j        dd          rt          |j        |          nd S r4  r5  r(  s          r9   r+  zParserATNSimulator.<lambda>U  r6  r:   r*  c           	      l    | j                             |j        d           }|d S  || ||||||          S r<   )epsilonTargetMethodsr   serializationType)r7   r   r   r   r*  rd   r   rc   s           r9   r  z#ParserATNSimulator.getEpsilonTargetX  sE    %))!*=tDD941T61&7GM^___r:   c                     t           j        r<t          dt          |j                  z   dz   t          |j                  z              t          |j        |          S )NzACTION edge rF   r   )r'   rI   rK   rL   r   actionIndexr   r   )r7   r   r   s      r9   r1  z#ParserATNSimulator.actionTransition_  sT    # 	P.3q{#3#33c9C<N<NNOOOqx7777r:   ptc                 <   t           j        rwt          dt          |          z   dz   t          |j                  z   dz              | j        6t          dt          | j                                                  z              d }|r|r|r| j        j        }| j        	                    | j
                   |                                                    | j        | j                  }| j        	                    |           |rt          |j        |          }nUt!          |j        |                                          }	t          |j        |	|          }nt          |j        |          }t           j        rt          dt          |          z              |S )NPRED (collectPredicates=) z>=_p, ctx dependent=truecontext surrounding pred is r   r   r   r   config from pred transition=)r'   rI   rK   rL   
precedencer(   getRuleInvocationStackr+   rQ   r`   r,   getPredicater   r-   r   r   r   r   
r7   r   r>  r   r*  rd   r   currentPositionpredSucceeds	newSemCtxs
             r9   r-  z'ParserATNSimulator.precedenceTransitiond  s   # 	b,s3D/E/EEL&&')CD E E E{&4s4;;];];_;_7`7``aaa 	: 	: R
 #'+"3  !1222!0055dk4CUVV  111 B!	&AAAA&v'=r?P?PQQ	BI	&QQQ	&999A# 	;03q669:::r:   c                    t           j        rt          dt          |          z   dz   t          |j                  z   dz   t          |j                  z   dz   t          |j                  z              | j        6t          dt          | j                                                  z              d }|r|j        r	|j        r|r|r| j	        j
        }| j	                            | j                   |                                                    | j        | j                  }| j	                            |           |rt!          |j        |          }nUt%          |j        |                                          }	t!          |j        |	|          }nt!          |j        |          }t           j        rt          dt          |          z              |S )	Nr@  rA  rF   z, ctx dependent=rB  r   rC  rD  )r'   rI   rK   rL   r   	predIndexisCtxDependentr(   rF  r+   rQ   r`   r,   rG  r   r-   r   r   r   r   rH  s
             r9   r/  z!ParserATNSimulator.predTransition  s   # 	b,s3D/E/EELsSUS_O`O``bl++,.@ACFrGXCYCYZ [ [ [{&4s4;;];];_;_7`7``aaa 	:b&7 	:B<M 	:R[ 	: R
 #'+"3  !1222!0055dk4CUVV  111 B!	&AAAA&v'=r?P?PQQ	BI	&QQQ	&999A# 	;03q669:::r:   c                 "   t           j        rGt          d|                     |j        j                  z   dz   t          |j                  z              |j        }t          j
        |j        |j                  }t          |j        ||          S )Nz
CALL rule z, ctx=r  )r'   rI   rK   r  r   r   rL   r   followStater   creater   r   )r7   r   r   r  r  s        r9   r'  z!ParserATNSimulator.ruleTransition  s    # 	h,!1!1!(2D!E!EEPSVW]WeSfSffgggm/6v~{G^__
qxFLLLLr:   c                 R    t          j        |          }t          j        |          S r<   )r   r   getAlts)r7   rH   altsetss      r9   r   z%ParserATNSimulator.getConflictingAlts  s#     9'BB%g...r:   c                     d }|j         t          j        k    r)t                      }|                    |j                    n|j        }|S r<   )r   r   rp   r   r   rs   )r7   rH   rs   s      r9   r   z0ParserATNSimulator.getConflictingAltsOrUniqueAlt  sI    s555!eeO 12222%5Or:   c                     |t           j        k    rdS | j        Q| j        j        E|t	          | j        j                  k     r(| j        j        |         dz   t          |          z   dz   S t          |          S )Nr~   <r$  )r   r~   r(   rY   rv   rL   )r7   r   s     r9   r   zParserATNSimulator.getTokenName  sm    ei<<5;"K$0DK,----03c9CFFBSHHq66Mr:   c                 R    |                      |                    d                    S NrE   )r   rj   )r7   r?   s     r9   rM   z#ParserATNSimulator.getLookaheadName  s       !---r:   nvaec                    t          d           |                                D ]}d}t          |j        j                  dk    r|j        j        d         }t          |t                    rd|                     |j                  z   }nHt          |t                    r3t          |t                    }|rdnddz   t          |j                  z   }t          |                    | j        d          d	z   |z   t          j        
           d S )Nzdead end configs: zno edgesr   zAtom ~ zSet TrF   )file)rK   getDeadEndConfigsrv   r   r   r   r    r   labelr!   r"   rL   r   rX   r(   sysstderr)r7   rZ  r   r   r   negs         r9   dumpDeadEndConfigsz%ParserATNSimulator.dumpDeadEndConfigs  s
   "###'')) 		P 		PAE17&''))G'*a00 D#T%6%6qw%?%??EE=11 D$Q(899C$'/SSR7QUCE!**T[$//#5=CJOOOOO		P 		Pr:   c                     t          | j        ||                    |          |                    d          ||          S rY  )r%   r(   r   rN   )r7   r?   rA   rH   rh   s        r9   rn   zParserATNSimulator.noViableAlt  s5    #DK		*8M8MuxxXY{{\ceqrrrr:   c                     t           j        }|D ]3}|t           j        k    r|j        }|j        |k    rt           j        c S 4|S r<   )r   rp   rf   )r7   rH   rf   r   s       r9   r   zParserATNSimulator.getUniqueAlt  sT    $ 	. 	.Ac,,,e---- 
r:   from_toc                     t           j        rKt          dt          |          z   dz   t          |          z   dz   |                     |          z              |d S |                     ||          }||dk     s|| j        j        k    r|S |j        d g| j        j        dz   z  |_        ||j        |dz   <   t           j        r:| j	        d n| j	        j
        }t          d|                    |          z              |S )NzEDGE z -> z upon r      rE   zDFA=
)r'   rI   rK   rL   r   r]   r0   r   r   r(   rY   rX   )r7   rb   rg  r   rh  namess         r9   r   zParserATNSimulator.addDFAEdge  s   # 	]'CJJ&/#b''9HDtGXGXYZG[G[[\\\:4c2&&=AFFa$(*?&?&?I;&DH$9A$=>EKAaC# 	2 K/DDT[5ME(S\\%000111	r:   c                 v   || j         u r|S |j                            |d           }||S t          |j                  |_        |j        j        s4|j                            |            |j                            d           ||j        |<   t          j
        rt          dt          |          z              |S )NTzadding new DFA state: )rm   r
  r   rv   r   rH   readonlyoptimizeConfigssetReadonlyr'   rI   rK   rL   )r7   rb   r   existings       r9   r]   zParserATNSimulator.addDFAState:  s    
??H :>>!T**OCJy! 	(I%%d+++I!!$'''
1# 	5*SVV3444r:   rs   r   c                    t           j        st           j        rht          dt	          |j                  z   dz   t	          |          z   dz   | j                                                            ||          z              | j        8| j        	                                
                    | j        |||||           d S d S )Nz%reportAttemptingFullContext decision=rF   , input=)r'   rI   retry_debugrK   rL   r@   r(   getTokenStreamgetTextgetErrorListenerDispatchry   )r7   rb   rs   rH   rh   r   s         r9   ry   z.ParserATNSimulator.reportAttemptingFullContextL  s    # 	i'9'E 	i9C<M<MMPSSVYZaVbVbb)*,0K,F,F,H,H,P,PQ[]f,g,gh i i i;"K0022NNt{\_akmv  yH  JQ  R  R  R  R  R #"r:   r|   c                    t           j        st           j        rht          dt	          |j                  z   dz   t	          |          z   dz   | j                                                            ||          z              | j        8| j        	                                
                    | j        |||||           d S d S )Nz"reportContextSensitivity decision=rF   rr  )r'   rI   rs  rK   rL   r@   r(   rt  ru  rv  r   )r7   rb   r|   rH   rh   r   s         r9   r   z+ParserATNSimulator.reportContextSensitivityS  s    # 	i'9'E 	i6S\9J9JJSPSVW^S_S__)*,0K,F,F,H,H,P,PQ[]f,g,gh i i i;"K0022KKDKY\^hjsu  BI  J  J  J  J  J #"r:   exactc           	      |   t           j        st           j        rct          dt	          |          z   dz   t	          |          z   dz   | j                                                            ||          z              | j        9| j                                        	                    | j        ||||||           d S d S )NzreportAmbiguity rF   rr  )
r'   rI   rs  rK   rL   r(   rt  ru  rv  r}   )r7   rb   r   rh   r   rx  r   rH   s           r9   r}   z"ParserATNSimulator.reportAmbiguity[  s    # 	i'9'E 	i" $s9~~5;c'llJ)*,0K,F,F,H,H,P,PQ[]f,g,gh i i i;"K0022BB4;PSU_ajlqs|  F  G  G  G  G  G #"r:   )R__name__
__module____qualname__	__slots__rI   rJ   rx   rs  r	   r   r   r   r5   r>   r   intr
   rg   r   r#   r_   rk   rl   r   r   r   rz   boolr   r   r   r   rZ   r\   r   r   r   r   r   ro   r   r   ru   r   r   r   r	  r  r  r   r:  RULE
PRECEDENCE	PREDICATEACTIONr   ATOMRANGESETr  r   r1  r   r-  r   r/  r   r'  r   r   r   rM   r%   rd  rn   r   r   r]   ry   r   r}   __classcell__)r8   s   @r9   r'   r'     sc       I
 E$IKf # T Vl      ,  <K <# <L] < < < <xT # T ( T + T # T \m T  T  T  T B x  3        &&S &H & & & & &P> > > > > >$e e e,8e/:e 58e 7H	e e e eNkl kc k4 k k k kB W[    
( 
 
T 
 
 
 
H#L # # # #Jz     S , c    @ t    |
&l 
&iz 
& 
& 
& 
&,    &"| "Rc " " " "($ EV ae    8KY K K# Kae Kos K  HL K K K K'ji 'j 'j[^ 'jrv 'j  AE 'j  MP 'j  dh 'j 'j 'j 'jT0Ai 0A 0A3 0Abf 0Apt 0A| 0A  TX 0A 0A 0A 0AX> > >B/ / / / /  466-& -&)3S 3S./2M 2M-./( /(*+01 01+,-o -o).o .o)*,o ,o(`i `: `QU `ae `os `  HL ` ` ` `8i 83C 8 8 8 8
) 8U jn z~   IM    <I 2E Y] im w{    <MI M M M M M/ / / / /PL    S    .[ . . . .P&: P P P Ps s:K sUa snq s s s s<    :S  C H    Hc X    $Rc R3 RP\ Ril Rx{ R R R RJ3 J3 J Jad Jps J J J JG# G Gc GS G)-G9<GFRG G G G G G G Gr:   r'   )7ra  antlr4r   antlr4.PredictionContextr   r   r   r   antlr4.BufferedTokenStreamr   antlr4.Parserr	   antlr4.ParserRuleContextr
   antlr4.RuleContextr   antlr4.Tokenr   antlr4.Utilsr   antlr4.atn.ATNr   antlr4.atn.ATNConfigr   antlr4.atn.ATNConfigSetr   antlr4.atn.ATNSimulatorr   antlr4.atn.ATNStater   r   r   r   antlr4.atn.PredictionModer   antlr4.atn.SemanticContextr   r   r   r   antlr4.atn.Transitionr   r   r   r   r   r    r!   r"   antlr4.dfa.DFAStater#   r$   antlr4.error.Errorsr%   r'   r=   r:   r9   <module>r     sW  T 


      % % % % % % % % % % % % 2 2 2 2 2 2             6 6 6 6 6 6 * * * * * *       ! ! ! ! ! !       * * * * * * 0 0 0 0 0 0 0 0 0 0 0 0 Z Z Z Z Z Z Z Z Z Z Z Z 4 4 4 4 4 4 R R R R R R R R R R R RI I I I I I I I I I I I I I I I I I I I 8 8 8 8 8 8 8 8 4 4 4 4 4 4pG pG pG pG pG pG pG pG pG pGr:   