a
    dyc                     @   s   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 d dlmZ d dlmZmZ d dl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 G dd deZdZdZ G dd deZ ede e _![dS )    )PredictionContextCacheSingletonPredictionContextPredictionContext)InputStream)Token)ATN)LexerATNConfig)ATNSimulator)ATNConfigSetOrderedATNConfigSet)RuleStopStateATNState)LexerActionExecutor)
Transition)DFAState)LexerNoViableAltExceptionUnsupportedOperationExceptionc                   @   s    e Zd ZdZdd Zdd ZdS )SimStateindexlinecolumndfaStatec                 C   s   |    d S N)resetself r   e/var/www/html/stable-diffusion-webui/venv/lib/python3.9/site-packages/antlr4/atn/LexerATNSimulator.py__init__'   s    zSimState.__init__c                 C   s   d| _ d| _d| _d | _d S )Nr   r   r   r   r   r   r   *   s    zSimState.resetN)__name__
__module____qualname__	__slots__r   r   r   r   r   r   r   $   s   r   Nc                       s  e Zd ZdZdZdZdZdZdZe	e
eed fddZed	d
dZeedddZdd ZedddZeedddZeedddZeeedddZeeeedddZeeeed d!d"Zeeeeeed#d$d%Zeed&d'd(Z ee!d)d*d+Z"ee#ee$e$e$d,d-d.Z%ee#eee$e$d/d0d1Z&eeee$d2d3d4Z'eeed5d6d7Z(dHeeeeed8d9d:Z)eed;d<d=Z*ed>d?d@Z+eddAdBZ,eddCdDZ-edEdFdGZ.  Z/S )ILexerATNSimulator)	decisionToDFArecog
startIndexr   r   modeDEFAULT_MODEMAX_CHAR_VALUE
prevAcceptFr      N)r'   atnr&   sharedContextCachec                    s\   t  || || _|| _d| _d| _d| _ddlm} |j	| _
|j	| _	|j| _t | _d S )Nr       r   )Lexer)superr   r&   r'   r(   r   r   Zantlr4.Lexerr1   r*   r)   r+   r   r,   )r   r'   r.   r&   r/   r1   	__class__r   r   r   B   s    zLexerATNSimulator.__init__)	simulatorc                 C   s$   |j | _ |j| _|j| _|j| _d S r   )r   r   r)   r(   )r   r5   r   r   r   	copyStateX   s    zLexerATNSimulator.copyState)inputr)   c              	   C   s   || _ | }zd|j| _| j  | j| }|jd u rL| |W |	| S | 
||jW |	| S W |	| n|	| 0 d S r   )r)   markr   r(   r,   r   r&   s0matchATNreleaseexecATN)r   r7   r)   r8   dfar   r   r   match^   s    





zLexerATNSimulator.matchc                 C   s(   | j   d| _d| _d| _| j| _d S )Nr    r0   r   )r,   r   r(   r   r   r*   r)   r   r   r   r   r   l   s
    
zLexerATNSimulator.reset)r7   c                 C   s   | j j| j }tjr2tdt| j d t|  | j}| ||}|j}d|_| 	|}|sl|| j
| j _| ||}tjrtdt| j
|    |S )NzmatchATN mode z start: FzDFA after matchATN: )r.   ZmodeToStartStater)   r%   debugprintstrcomputeStartStatehasSemanticContextaddDFAStater&   r9   r<   ZtoLexerString)r   r7   Z
startStateZold_modeZ
s0_closuresuppressEdgenextZpredictr   r   r   r:   s   s    
zLexerATNSimulator.matchATN)r7   ds0c                 C   s   t jrtdt|j  |jr.| | j|| |d}|}t jrRtdt|j | 	||}|d u rt| 
|||}|| jkrq|tjkr| | |jr| | j|| |tjkrq|d}|}q<| | j||j|S )Nzstart state closure=r0   zexecATN loop starting closure:)r%   r?   r@   rA   configsisAcceptStatecaptureSimStater,   LAgetExistingTargetStatecomputeTargetStateERRORr   EOFconsumefailOrAccept)r   r7   rG   tstargetr   r   r   r<      s,    





zLexerATNSimulator.execATN)rS   rR   c                 C   s^   |j d u s|| jk s|| jkr"d S |j || j  }tjrZ|d urZtdt|jdt|j |S )Nzreuse statezedge to)edgesMIN_DFA_EDGEMAX_DFA_EDGEr%   r?   r@   rA   stateNumber)r   rS   rR   rT   r   r   r   rL      s    z(LexerATNSimulator.getExistingTargetState)r7   rS   rR   c                 C   sP   t  }| ||j|| t|dkr@|js:| ||| j | jS | j|||dS )Nr   )cfgs)r   getReachableConfigSetrH   lenrC   
addDFAEdgerN   )r   r7   rS   rR   reachr   r   r   rM      s    z$LexerATNSimulator.computeTargetState)r,   r7   r]   rR   c                 C   sj   | j jd ur8|jj}| ||| j|j|j|j |jjS |t	j
krT|j| jkrTt	j
S t| j|| j|d S r   )r,   r   lexerActionExecutoracceptr(   r   r   r   
predictionr   rO   r   r'   )r   r,   r7   r]   rR   r^   r   r   r   rQ      s    zLexerATNSimulator.failOrAccept)r7   closurer]   rR   c              
   C   s   t j}|D ]}|j|k}|r$|jr$q
tjrBtd| |dt| |j	j
D ]j}| ||}	|	d urJ|j}
|
d ur|
|j| j }
|tjk}t|	|
|d}| ||||d|rJ|j}qJq
d S )NZtestingat)stater^   configT)r   ZINVALID_ALT_NUMBERaltpassedThroughNonGreedyDecisionr%   r?   r@   getTokenNamerA   rc   transitionsgetReachableTargetr^   ZfixOffsetBeforeMatchr   r(   r   rO   r   ra   )r   r7   ra   r]   rR   ZskipAltcfgcurrentAltReachedAcceptStatetransrT   r^   treatEofAsEpsilonrd   r   r   r   rZ     s"    


z'LexerATNSimulator.getReachableConfigSet)r7   r^   r(   r   r   charPosc                 C   sL   t jrtd| || || _|| _|d urH| jd urH|| j|| d S )NACTION)r%   r?   r@   seekr   r   r'   execute)r   r7   r^   r(   r   r   rn   r   r   r   r_     s    

zLexerATNSimulator.accept)rl   rR   c                 C   s   | |d| jr|jS d S d S )Nr   )matchesr+   rT   )r   rl   rR   r   r   r   ri   )  s    z$LexerATNSimulator.getReachableTarget)r7   pc              	   C   sX   t j}t }tdt|jD ]6}|j| j}t||d |d}| |||ddd q|S )Nr   r0   )rc   re   contextF)	r   EMPTYr   ranger[   rh   rT   r   ra   )r   r7   rs   ZinitialContextrH   irT   cr   r   r   rB   /  s    z#LexerATNSimulator.computeStartState)r7   rd   rH   rk   speculativerm   c              	   C   s  t jrtdt| d  t|jtr>t jrf| jd urXtd| jj|jj	 dt| ntdt| |j
d u sz|j
 r|j
d u s|j
 r|| dS |t|j|tjd d}|j
d ur:|j
 s:tdt|j
D ]X}|j
|tjkr|j
|}| jj|j
| }	t|	||d}
| ||
||||}q|S |jjs`|rV|js`|| |jjD ]8}| ||||||}
|
d urh| ||
||||}qh|S )	Nzclosure()z
closure atz	rule stopzclosure at rule stopTrc   rd   rt   r   )r%   r?   r@   rA   
isinstancerc   r   r'   ZsymbolicNames	ruleIndexrt   hasEmptyPathZisEmptyaddr   r   ru   rv   r[   ZgetReturnStateZEMPTY_RETURN_STATE	getParentr.   statesra   ZepsilonOnlyTransitionsrf   rh   getEpsilonTarget)r   r7   rd   rH   rk   ry   rm   rw   
newContextZreturnStaterx   rR   r   r   r   ra   @  s>    
 




zLexerATNSimulator.closure)r7   rd   rR   rH   ry   rm   c           
      C   sh  d }|j tjkr6t|j|jj}t|j	||d}n.|j tj
krNtdn|j tjkrtjrtdt|j d t|j  d|_| ||j|j|rt|j	|d}n|j tjkr|jd u s|j rt|j| jj|j }	t|j	||	d}nt|j	|d}n^|j tjkr$t|j	|d}n@|j tjtjtj fv rd|rd|!t"j#d| j$rdt|j	|d}|S )	Nr{   z2Precedence predicates are not supported in lexers.z
EVAL rule :T)rc   rd   )rc   rd   r^   r   )%ZserializationTyper   ZRULEr   creatert   ZfollowStaterX   r   rT   Z
PRECEDENCEr   Z	PREDICATEr%   r?   r@   rA   r}   	predIndexrC   evaluatePredicatero   r~   r   appendr^   r.   ZlexerActionsZactionIndexZEPSILONATOMRANGEZSETrr   r   rO   r+   )
r   r7   rd   rR   rH   ry   rm   rx   r   r^   r   r   r   r   l  s4     z"LexerATNSimulator.getEpsilonTarget)r7   r}   r   ry   c           	   	   C   s   | j d u rdS |s"| j d ||S | j}| j}|j}| }z<| | | j d ||W || _|| _|| || S || _|| _|| || 0 d S )NT)	r'   Zsempredr   r   r   r8   rP   rp   r;   )	r   r7   r}   r   ry   ZsavedcolumnZ	savedLiner   markerr   r   r   r     s0    



    
z#LexerATNSimulator.evaluatePredicate)settingsr7   r   c                 C   s"   |j |_ | j|_| j|_||_d S r   r   )r   r   r7   r   r   r   r   rJ     s    z!LexerATNSimulator.captureSimState)from_tktorY   returnc                 C   s   |d u r.|d ur.|j }d|_ | |}|r.|S || jk sB|| jkrF|S tjrttdt| d t| d t|  |j	d u rd g| j| j d  |_	||j	|| j < |S )NFzEDGE z -> z upon r0   )
rC   rD   rV   rW   r%   r?   r@   rA   chrrU   )r   r   r   r   rY   rE   r   r   r   r\     s    
(
zLexerATNSimulator.addDFAEdge)rH   r   c                 C   s   t |d}tdd |D d }|d urFd|_|j|_| jj|jj |_| j	| j
 }|j|d }|d url|S |}t|j|_|d ||_||j|< |S )N)rH   c                 s   s   | ]}t |jtr|V  qd S r   )r|   rc   r   ).0rj   r   r   r   	<genexpr>      z0LexerATNSimulator.addDFAState.<locals>.<genexpr>T)r   rF   rI   r^   r.   ZruleToTokenTyperc   r}   r`   r&   r)   r   getr[   rX   ZsetReadonlyrH   )r   rH   ZproposedZfirstConfigWithRuleStopStater=   existingZnewStater   r   r   rD   	  s     


zLexerATNSimulator.addDFAState)r)   c                 C   s
   | j | S r   )r&   )r   r)   r   r   r   getDFA   s    zLexerATNSimulator.getDFAc                 C   s   | | j|jd S )Nr0   )getTextr(   r   )r   r7   r   r   r   r   $  s    zLexerATNSimulator.getTextc                 C   sF   | d}|tdkr,|  jd7  _d| _n|  jd7  _|  d S )Nr0   
r   )rK   ordr   r   rP   )r   r7   ZcurCharr   r   r   rP   (  s    
zLexerATNSimulator.consume)rR   c                 C   s    |dkrdS dt | d S d S )Nr    rO   ')r   )r   rR   r   r   r   rg   1  s    zLexerATNSimulator.getTokenName)NN)0r!   r"   r#   r$   r?   Z	dfa_debugrV   rW   rN   r1   r   listr   r   r%   r6   r   intr>   r   r:   r   r<   rL   rM   r   r
   rQ   rZ   r   r_   r   ri   r   rB   r   boolra   r   r   rJ   r\   rD   r   r   rP   rg   __classcell__r   r   r3   r   r%   4   sB   E,W+	r%   i)"Zantlr4.PredictionContextr   r   r   Zantlr4.InputStreamr   Zantlr4.Tokenr   Zantlr4.atn.ATNr   Zantlr4.atn.ATNConfigr   Zantlr4.atn.ATNSimulatorr	   Zantlr4.atn.ATNConfigSetr
   r   Zantlr4.atn.ATNStater   r   Zantlr4.atn.LexerActionExecutorr   Zantlr4.atn.Transitionr   Zantlr4.dfa.DFAStater   Zantlr4.error.Errorsr   r   objectr   r1   r%   rN   r   r   r   r   <module>   s*       