§
    ~Ûgž&  ã            	      ó”  — d dl mZ d dlZd dlZd dlZd dlZd dlmZ ddlm	Z
 ddlmZmZmZmZmZ  G d„ de
j        e
j        e
j        e
j        e
j        ¦  «        Z eej        ¦  «        Z ej        d	ez   d
z   ¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Z dS )é    )ÚannotationsN)Úcached_propertyé   )Úpyparsing_unicode)Ú_collapse_string_to_rangesÚcolÚlineÚlinenoÚreplaced_by_pep8c                  ó   — e Zd ZdS )Ú_ExceptionWordUnicodeSetN)Ú__name__Ú
__module__Ú__qualname__© ó    úJ/granary/edev/quantum/lib/python3.11/site-packages/pyparsing/exceptions.pyr   r      s   € € € € € ð 	€Dr   r   z([z
]{1,16})|.c                  óŠ  — e Zd ZU dZded<   ded<   ded<   ded<   d	ed
<   dZ	 	 	 d)d*d„Zed+d,d„¦   «         Ze	d-d„¦   «         Z
ed.d„¦   «         Zed/d„¦   «         Zed/d„¦   «         Zed/d„¦   «         Zed.d„¦   «         Zed„ ¦   «         Zej        d„ ¦   «         Zd„ Zd.d„Zd.d „Zd!„ Z	 d0d"d#œd1d&„Zd+d2d'„Z ed(e¦  «        ZdS )3ÚParseBaseExceptionz7base exception class for all parsing runtime exceptionsÚintÚlocÚstrÚmsgÚpstrz
typing.AnyÚparser_elementz%tuple[str, int, typing.Optional[str]]Úargs©r   r   r   r   r   r   Nútyping.Optional[str]c                ó^   — |€|d}}|| _         || _        || _        || _        |||f| _        d S )NÚ r   )Úselfr   r   r   Úelems        r   Ú__init__zParseBaseException.__init__1   sA   € ð ˆ;Ø˜b�ˆCàˆŒØˆŒØˆŒ	Ø"ˆÔØ˜3 Ð$ˆŒ	ˆ	ˆ	r   é   ÚexcÚ	ExceptionÚdepthÚreturnc                ót  — ddl }ddlm} |€t          j        ¦   «         }g }t          | t          ¦  «        r=|                     | j        ¦  «         |                     d| j	        dz
  z  › d�¦  «         |                     t          | ¦  «        j        › d| › �¦  «         |dk    s| j        €d                     |¦  «        S |                     | j        |¬	¦  «        }t          ¦   «         }|| d…         D �],}|d         }|j                             d
d¦  «        }	t          |	|¦  «        r‹|j        j                             d¦  «        sŒVt+          |	¦  «        |v rŒh|                     t+          |	¦  «        ¦  «         t          |	¦  «        }
|                     |
j        › d|
j        › d|	› �¦  «         nb|	�4t          |	¦  «        }
|                     |
j        › d|
j        › �¦  «         n,|j        }|j        dv r�Œ	|                     |j        ¦  «         |dz  }|s n�Œ.d                     |¦  «        S )aì  
        Method to take an exception and translate the Python internal traceback into a list
        of the pyparsing expressions that caused the exception to be raised.

        Parameters:

        - exc - exception raised during parsing (need not be a ParseException, in support
          of Python exceptions that might be raised in a parse action)
        - depth (default=16) - number of levels back in the stack trace to list expression
          and function names; if None, the full stack trace names will be listed; if 0, only
          the failing input line, marker, and exception string will be shown

        Returns a multi-line string listing the ParserElements and/or function names in the
        exception's stack trace.
        r   Nr   )ÚParserElementú ú^z: ú
)Úcontextr!   )Ú	parseImplÚ_parseNoCacheú.z - )Úwrapperz<module>)ÚinspectÚcorer*   ÚsysÚgetrecursionlimitÚ
isinstancer   Úappendr	   ÚcolumnÚtyper   Ú__traceback__ÚjoinÚgetinnerframesÚsetÚf_localsÚgetÚf_codeÚco_nameÚ
startswithÚidÚaddr   )r%   r'   r3   r*   ÚretÚcallersÚseenÚffÚfrmÚf_selfÚ	self_typeÚcodes               r   Úexplain_exceptionz$ParseBaseException.explain_exceptionA   sZ  € ð" 	ˆˆˆØ'Ð'Ð'Ð'Ð'Ð'àˆ=ÝÔ)Ñ+Ô+ˆEØˆÝ�cÕ-Ñ.Ô.ð 	5Ø�JŠJ�s”xÑ Ô Ð Ø�JŠJ˜# ¤¨a¡Ñ0Ð3Ð3Ð3Ñ4Ô4Ð4Ø�
Š
•d˜3‘i”iÔ(Ð1Ð1¨CÐ1Ð1Ñ2Ô2Ð2à�AŠ:ˆ:˜Ô*Ð2Ø—9’9˜S‘>”>Ð!à×(Ò(¨Ô):ÀEÐ(ÑJÔJˆÝ™œˆØ˜5˜&˜'˜'Ô"ð 	ñ 	ˆBØ�Q”%ˆCà”\×%Ò% f¨dÑ3Ô3ˆFÝ˜& -Ñ0Ô0ð )Ø”zÔ)×4Ò4Ð5SÑTÔTð ØÝ�f‘:”: Ð%Ð%ØØ—’�˜F™œÑ$Ô$Ð$å  ™LœL�	Ø—
’
˜iÔ2ÐTÐT°YÔ5GÐTÐTÈFÐTÐTÑUÔUÐUÐUàÐ#Ý  ™LœL�	Ø—
’
˜iÔ2ÐIÐI°YÔ5GÐIÐIÑJÔJÐJÐJð ”z�Ø”<Ð#:Ð:Ð:Ùà—
’
˜4œ<Ñ(Ô(Ð(à�Q‰JˆEØð Ø�ñð �yŠy˜‰~Œ~Ðr   c                óF   —  | |j         |j        |j        |j        ¦  «        S )z¬
        internal factory method to simplify creating one type of ParseException
        from another - avoids having __init__ signature conflicts among subclasses
        )r   r   r   r   )ÚclsÚpes     r   Ú_from_exceptionz"ParseBaseException._from_exception�   s#   € ð ˆs�2”7˜BœF B¤F¨BÔ,=Ñ>Ô>Ð>r   c                ó6   — t          | j        | j        ¦  «        S )zG
        Return the line of text where the exception occurred.
        )r	   r   r   ©r!   s    r   r	   zParseBaseException.line‰   s   € õ
 �D”H˜dœiÑ(Ô(Ð(r   c                ó6   — t          | j        | j        ¦  «        S )zV
        Return the 1-based line number of text where the exception occurred.
        )r
   r   r   rT   s    r   r
   zParseBaseException.lineno�   s   € õ
 �d”h ¤	Ñ*Ô*Ð*r   c                ó6   — t          | j        | j        ¦  «        S ©z]
        Return the 1-based column on the line of text where the exception occurred.
        ©r   r   r   rT   s    r   r   zParseBaseException.col—   ó   € õ
 �4”8˜TœYÑ'Ô'Ð'r   c                ó6   — t          | j        | j        ¦  «        S rW   rX   rT   s    r   r9   zParseBaseException.columnž   rY   r   c                óJ  — | j         sdS | j        t          | j         ¦  «        k    rdS t                               | j         | j        ¦  «        }|�|                     d¦  «        }n| j         | j        | j        dz   …         }t          |¦  «                             dd¦  «        S )Nr    zend of textr   r   z\\ú\)r   r   ÚlenÚ_exception_word_extractorÚmatchÚgroupÚreprÚreplace)r!   Úfound_matchÚ
found_texts      r   ÚfoundzParseBaseException.found¥   s˜   € àŒyð 	Ø�2àŒ8•s˜4œ9‘~”~Ò%Ð%Ø �=õ 0×5Ò5°d´iÀÄÑJÔJˆØÐ"Ø$×*Ò*¨1Ñ-Ô-ˆJˆJàœ 4¤8¨d¬h¸©lÐ#:Ô;ˆJå�JÑÔ×'Ò'¨¨tÑ4Ô4Ð4r   c                ó   — | j         S ©N©r   rT   s    r   ÚparserElementz ParseBaseException.parserElement·   s   € àÔ"Ð"r   c                ó   — || _         d S rg   rh   )r!   r"   s     r   ri   z ParseBaseException.parserElement»   s   € à"ˆÔÐÐr   c                ó*   — t          j         | ¦  «        S rg   )ÚcopyrT   s    r   rl   zParseBaseException.copy¿   s   € ÝŒy˜‰ŒÐr   c           	     óp   — | j         r
d| j         › �nd}| j        › |› d| j        › d| j        › d| j        › d�	S )Nz, found r    z  (at char z	), (line:z, col:ú))re   r   r   r
   r9   )r!   Úfound_phrases     r   Úformatted_messagez$ParseBaseException.formatted_messageÂ   sT   € Ø26´*ÐDÐ. $¤*Ð.Ð.Ð.À"ˆØ”(Ði˜LÐiÐi°T´XÐiÐiÈÌÐiÐiÐ[_Ô[fÐiÐiÐiÐir   c                ó*   — |                       ¦   «         S rg   )rp   rT   s    r   Ú__str__zParseBaseException.__str__Æ   s   € Ø×%Ò%Ñ'Ô'Ð'r   c                ó    — t          | ¦  «        S rg   )r   rT   s    r   Ú__repr__zParseBaseException.__repr__É   s   € Ý�4‰yŒyÐr   z>!<)ÚmarkerStringÚmarker_stringru   c               óŒ   — |�|n|}| j         }| j        dz
  }|r|d|…         › |› ||d…         › �}|                     ¦   «         S )z‹
        Extracts the exception line from the input string, and marks
        the location of the exception with a special symbol.
        Nr   )r	   r9   Ústrip)r!   rv   ru   Úline_strÚline_columns        r   Úmark_input_linez"ParseBaseException.mark_input_lineÌ   sd   € ð )6Ð(A�}�}À|ˆØ”9ˆØ”k A‘oˆØð 	YØ" < K <Ô0ÐX°,ÐXÀÈÈÈÔ@VÐXÐXˆHØ�~Š~ÑÔÐr   c                ó.   — |                       | |¦  «        S )a‡  
        Method to translate the Python internal traceback into a list
        of the pyparsing expressions that caused the exception to be raised.

        Parameters:

        - depth (default=16) - number of levels back in the stack trace to list expression
          and function names; if None, the full stack trace names will be listed; if 0, only
          the failing input line, marker, and exception string will be shown

        Returns a multi-line string listing the ParserElements and/or function names in the
        exception's stack trace.

        Example::

            # an expression to parse 3 integers
            expr = pp.Word(pp.nums) * 3
            try:
                # a failing parse - the third integer is prefixed with "A"
                expr.parse_string("123 456 A789")
            except pp.ParseException as pe:
                print(pe.explain(depth=0))

        prints::

            123 456 A789
                    ^
            ParseException: Expected W:(0-9), found 'A'  (at char 8), (line:1, col:9)

        Note: the diagnostic output will include string representations of the expressions
        that failed to parse. These representations will be more helpful if you use `set_name` to
        give identifiable names to your expressions. Otherwise they will use the default string
        forms, which may be cryptic to read.

        Note: pyparsing's default truncation of exception tracebacks may also truncate the
        stack of expressions that are displayed in the ``explain`` output. To get the full listing
        of parser expressions, you may have to set ``ParserElement.verbose_stacktrace = True``
        )rN   )r!   r'   s     r   ÚexplainzParseBaseException.explainÚ   s   € ðN ×%Ò% d¨EÑ2Ô2Ð2r   ÚmarkInputline)r   NN)r   r   r   r   r   r   )r$   )r%   r&   r'   r   r(   r   )r(   r   ©r(   r   )r(   r   rg   )rv   r   ru   r   r(   r   )r'   r   r(   r   )r   r   r   Ú__doc__Ú__annotations__Ú	__slots__r#   ÚstaticmethodrN   ÚclassmethodrR   r   r	   r
   r   r9   re   Úpropertyri   Úsetterrl   rp   rr   rt   r{   r}   r   r~   r   r   r   r   r      s7  € € € € € € ØAÐAà€H€H�HØ€H€H�HØ€I€I�IØÐÐÑØ/Ð/Ð/Ñ/ð€Ið Ø$(Øð%ð %ð %ð %ð %ð  ð=ð =ð =ð =ñ „\ð=ð~ ð?ð ?ð ?ñ „[ð?ð ð)ð )ð )ñ „_ð)ð ð+ð +ð +ñ „_ð+ð ð(ð (ð (ñ „_ð(ð ð(ð (ð (ñ „_ð(ð ð5ð 5ð 5ñ „_ð5ð" ð#ð #ñ „Xð#ð Ôð#ð #ñ Ôð#ðð ð ðjð jð jð jð(ð (ð (ð (ðð ð ð 59ð ØQVð ð  ð  ð  ð  ð  ð'3ð '3ð '3ð '3ð '3ðV %Ð$ _°oÑFÔF€M€M€Mr   r   c                  ó   — e Zd ZdZdS )ÚParseExceptiona{  
    Exception thrown when a parse expression doesn't match the input string

    Example::

        integer = Word(nums).set_name("integer")
        try:
            integer.parse_string("ABC")
        except ParseException as pe:
            print(pe)
            print(f"column: {pe.column}")

    prints::

       Expected integer (at char 0), (line:1, col:1) column: 1

    N©r   r   r   r€   r   r   r   rˆ   rˆ   	  s   € € € € € ðð ð ð r   rˆ   c                  ó   — e Zd ZdZdS )ÚParseFatalExceptionzu
    User-throwable exception thrown when inconsistent parse content
    is found; stops all parsing immediately
    Nr‰   r   r   r   r‹   r‹     s   € € € € € ðð ð ð r   r‹   c                  ó   — e Zd ZdZdS )ÚParseSyntaxExceptionzó
    Just like :class:`ParseFatalException`, but thrown internally
    when an :class:`ErrorStop<And._ErrorStop>` ('-' operator) indicates
    that parsing is to stop immediately because an unbacktrackable
    syntax error has been found.
    Nr‰   r   r   r   r�   r�   $  s   € € € € € ðð ð ð r   r�   c                  ó    — e Zd ZdZd„ Zdd„ZdS )ÚRecursiveGrammarExceptiona6  
    Exception thrown by :class:`ParserElement.validate` if the
    grammar could be left-recursive; parser may need to enable
    left recursion using :class:`ParserElement.enable_left_recursion<ParserElement.enable_left_recursion>`

    Deprecated: only used by deprecated method ParserElement.validate.
    c                ó   — || _         d S rg   ©ÚparseElementTrace)r!   ÚparseElementLists     r   r#   z"RecursiveGrammarException.__init__6  s   € Ø!1ˆÔÐÐr   r(   r   c                ó   — d| j         › �S )NzRecursiveGrammarException: r‘   rT   s    r   rr   z!RecursiveGrammarException.__str__9  s   € ØE¨TÔ-CÐEÐEÐEr   Nr   )r   r   r   r€   r#   rr   r   r   r   r�   r�   -  sG   € € € € € ðð ð2ð 2ð 2ðFð Fð Fð Fð Fð Fr   r�   )!Ú
__future__r   rl   Úrer5   ÚtypingÚ	functoolsr   Úunicoder   ÚppuÚutilr   r   r	   r
   r   ÚLatin1ÚLatinAÚLatinBÚGreekÚCyrillicr   Ú	alphanumsÚ_extract_alphanumsÚcompiler^   r&   r   rˆ   r‹   r�   r�   r   r   r   ú<module>r¤      s  ðà "Ð "Ð "Ð "Ð "Ð "à €€€Ø 	€	€	€	Ø 
€
€
€
Ø €€€Ø %Ð %Ð %Ð %Ð %Ð %à -Ð -Ð -Ð -Ð -Ð -ðð ð ð ð ð ð ð ð ð ð ð ð ð ð	ð 	ð 	ð 	ð 	Ø„J�”
˜CœJ¨¬	°3´<ñ	ô 	ð 	ð 0Ð/Ð0HÔ0RÑSÔSÐ Ø&˜BœJ tÐ.@Ñ'@À<Ñ'OÑPÔPÐ ðgGð gGð gGð gGð gG˜ñ gGô gGð gGðVð ð ð ð Ð'ñ ô ð ð(ð ð ð ð Ð,ñ ô ð ðð ð ð ð Ð.ñ ô ð ðFð Fð Fð Fð F 	ñ Fô Fð Fð Fð Fr   