a
    dy                     @   s<  d dl Z d dl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mZ e ZdZe d	e d
Zde Zde de dZde dZdZde de dZdZe de dZde de dZde de dZdZe jde de de de jdZG dd  d e	Z d&e!e!e!ed#d$d%Z"dS )'    N)Any)CommonTokenStreamInputStreamParserRuleContext)ErrorListener   GrammarParseError)OmegaConfGrammarLexerOmegaConfGrammarParserz[$\w]+z|\[z\]z\.z(\.)*(z)(z)*z\${\s*z\s*}z[a-zA-Z_]\w*(z(\.z)*)?z[a-zA-Z_0-9/\-\+.$%*@?|]+z(\s*,\s*z\s*:\s*z?\s*}|)z([^$]|\$(?!{))+z)?(z)?)+$)flagsc                	   @   sv   e Zd ZeeeeeeddddZeeeeeeeddddZeeeeeeddd	d
ZeeeeeeddddZdS )OmegaConfErrorListenerN)
recognizeroffending_symbollinecolumnmsgereturnc                 C   s   t |d u rt|n||d S )N)r	   str)selfr   r   r   r   r   r    r   a/var/www/html/stable-diffusion-webui/venv/lib/python3.9/site-packages/omegaconf/grammar_parser.pysyntaxError,   s    	z"OmegaConfErrorListener.syntaxError)r   dfa
startIndex	stopIndexexact	ambigAltsconfigsr   c                 C   s   t dd S )NzANTLR error: Ambiguityr   )r   r   r   r   r   r    r!   r"   r   r   r   reportAmbiguity7   s    
z&OmegaConfErrorListener.reportAmbiguity)r   r   r   r   conflictingAltsr"   r   c                 C   s   t dd S )Nz$ANTLR error: Attempting Full Contextr   )r   r   r   r   r   r$   r"   r   r   r   reportAttemptingFullContextC   s    z2OmegaConfErrorListener.reportAttemptingFullContext)r   r   r   r   
predictionr"   r   c                 C   s   t dd S )NzANTLR error: ContextSensitivityr   )r   r   r   r   r   r&   r"   r   r   r   reportContextSensitivityT   s    	z/OmegaConfErrorListener.reportContextSensitivity)__name__
__module____qualname__r   r   r#   r%   r'   r   r   r   r   r   +   sB   r   configValueDEFAULT_MODE)valueparser_rule
lexer_moder   c              
   C   s
  t t|}t| }t tdd}|du rt }t|}|  || || t|}t	|}	|	  |	| |||	ft_
n,|\}}}	||_|| || |	  zt |	| W S  ty }
 z0t|
tu rt|
dkrtdn W Y d}
~
n
d}
~
0 0 dS )zH
    Parse interpolated string `value` (and return the parse tree).
    dataNzEmpty Stack)getattrr
   r   _grammar_cacher   ZremoveErrorListenersZaddErrorListenermoder   r   r0   ZinputStreamZsetTokenSourcereset	Exceptiontyper   r	   )r-   r.   r/   Zl_modeZistreamcachedZerror_listenerlexertoken_streamparserexcr   r   r   parse`   s2    



	



r<   )r+   r,   )#re	threadingtypingr   Zantlr4r   r   r   Zantlr4.error.ErrorListenerr   errorsr	   Zgrammar_visitorr
   r   localr2   Z_config_keyZ_key_maybe_bracketsZ_node_accessZ
_node_pathZ_node_interZ_idZ_resolver_nameZ_arg_argsZ_resolver_interZ_inter_outercompileASCIIZSIMPLE_INTERPOLATION_PATTERNr   r   r<   r   r   r   r   <module>   s8   
6 