o
    ?i                  	   @   sD  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)d#e!d$e!d%e!d&ef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                   @   s   e Zd Zdededededededdfd	d
ZdedededededededdfddZdededededededdfddZdededededededdfddZdS )OmegaConfErrorListener
recognizeroffending_symbollinecolumnmsgereturnNc                 C   s   t |d u rt||||)N)r	   str)selfr   r   r   r   r   r    r   U/home/ubuntu/veenaModal/venv/lib/python3.10/site-packages/omegaconf/grammar_parser.pysyntaxError,   s   	z"OmegaConfErrorListener.syntaxErrordfa
startIndex	stopIndexexact	ambigAltsconfigsc                 C      t d)NzANTLR error: Ambiguityr   )r   r   r   r   r   r    r!   r"   r   r   r   reportAmbiguity7   s   
z&OmegaConfErrorListener.reportAmbiguityconflictingAltsc                 C   r#   )Nz$ANTLR error: Attempting Full Contextr   )r   r   r   r   r   r%   r"   r   r   r   reportAttemptingFullContextC   s   z2OmegaConfErrorListener.reportAttemptingFullContext
predictionc                 C   r#   )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   +   s~    
	

r   configValueDEFAULT_MODEvalueparser_rule
lexer_moder   c              
   C   s   t t|}t| }t tdd}|du r@t }t|}|  || || t|}t	|}	|	  |	| |||	ft_
n|\}}}	||_|| || |	  zt |	| W S  tyz }
 zt|
tu rut|
dkrutd d}
~
ww )zH
    Parse interpolated string `value` (and return the parse tree).
    dataNzEmpty Stack)getattrr
   r   _grammar_cacher   removeErrorListenersaddErrorListenermoder   r   r1   inputStreamsetTokenSourcereset	Exceptiontyper   r	   )r.   r/   r0   l_modeistreamcachederror_listenerlexertoken_streamparserexcr   r   r   parse`   s6   



	


rD   )r,   r-   )#re	threadingtypingr   antlr4r   r   r   antlr4.error.ErrorListenerr   errorsr	   grammar_visitorr
   r   localr3   _config_key_key_maybe_brackets_node_access
_node_path_node_inter_id_resolver_name_arg_args_resolver_inter_inter_outercompileASCIISIMPLE_INTERPOLATION_PATTERNr   r   rD   r   r   r   r   <module>   sD    
6