� ,�Re?#� �p�ddlZddlZddlZddlmZmZmZmZddlm Z Gd�de j e j e j e je j��Zeej��Zejdezdz��ZGd �d e��ZGd �d e��ZGd �de��ZGd�de��ZGd�de��ZdS)�N�)�col�line�lineno�_collapse_string_to_ranges)�pyparsing_unicodec��eZdZdS)�ExceptionWordUnicodeN)�__name__� __module__� __qualname__����/builddir/build/BUILDROOT/alt-python311-setuptools-65.6.3-2.el8.x86_64/opt/alt/python311/lib/python3.11/site-packages/setuptools/_vendor/pyparsing/exceptions.pyr r s�������Drr z([z ]{1,16})|.c��eZdZdZ ddededejefd�Ze dd ���Z e d ���Z e d efd ���Ze d efd ���Ze d efd���Ze d efd���Zd efd�Zd�Zddd�ded efd�Zdd efd�ZeZdS)�ParseBaseExceptionz7base exception class for all parsing runtime exceptionsrN�pstr�loc�msgc��||_|�||_d|_n||_||_|x|_|_|||f|_dS)N�)rrr�parser_element� parserElement�args)�selfrrr�elems r�__init__zParseBaseException.__init__sP����� �;��D�H��D�I�I��D�H��D�I�37�7���d�0��3��$�� � � r�c��ddl}ddlm}|�tj��}g}t |t ��r=|�|j��|�d|j dz zdz��|�d� t|��j |����|dk�r�|� |j|���}t��}t!|| d���D�]M\}}|d} | j�d d��} t | |��r�| jjd vr�Ht+| ��|vr�Z|�t+| ����t| ��} |�d � | j| j | ����n�| �Ct| ��} |�d � | j| j ����n?| j} | jd vr��|�d� | j����|dz}|sn��Od�|��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. rNr)� ParserElement� �^z{}: {})�contextr)� parseImpl� _parseNoCachez {}.{} - {}z{}.{})�wrapperzz{}� )�inspect�corer �sys�getrecursionlimit� isinstancer�appendr�column�format�typer �getinnerframes� __traceback__�set� enumerate�f_locals�get�f_code�co_name�id�addr �join) �exc�depthr(r �ret�callers�seen�i�ff�frm�f_self� self_type�codes r�explain_exceptionz$ParseBaseException.explain_exception)sW��" ����'�'�'�'�'�'� �=��)�+�+�E��� �c�-� .� .� 5� �J�J�s�x� � � � �J�J�s�c�j�1�n�-��3� 4� 4� 4� � � �8�?�?�4��9�9�#5�s�;�;�<�<�<� �1�9�9��,�,�S�->��,�N�N�G��5�5�D�"�7�E�6�7�7�#3�4�4� � ���2���e����)�)�&�$�7�7���f�m�4�4�:��z�)�1O�O�O� ��&�z�z�T�)�)� ��H�H�R��Z�Z�(�(�(� $�V� � �I��J�J�$�+�+�%�0�)�2D�f������� �'� $�V� � �I��J�J�w�~�~�i�.B�I�DV�W�W�X�X�X�X��:�D��|�'>�>�>� ��J�J�t�{�{�4�<�8�8�9�9�9��� �����E���y�y��~�~�rc�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 )rrrr)�cls�pes r�_from_exceptionz"ParseBaseException._from_exceptionks#�� �s�2�7�B�F�B�F�B�,<�=�=�=r�returnc�6�t|j|j��S)zG Return the line of text where the exception occurred. )rrr�rs rrzParseBaseException.liness�� �D�H�d�i�(�(�(rc�6�t|j|j��S)zV Return the 1-based line number of text where the exception occurred. )rrrrNs rrzParseBaseException.linenozs�� �d�h�� �*�*�*rc�6�t|j|j��S�z] Return the 1-based column on the line of text where the exception occurred. �rrrrNs rrzParseBaseException.col���� �4�8�T�Y�'�'�'rc�6�t|j|j��SrQrRrNs rr.zParseBaseException.column�rSrc��|jr�|jt|j��krd}nut�|j|j��}|�|�d��}n|j|j|jdz�}d|z�dd��}nd}d�|j||j|j |j ��S) Nz, found end of textrrz , found %rz\\�\rz%{}{} (at char {}), (line:{}, col:{})) rr�len�_exception_word_extractor�match�group�replacer/rrr.)r�foundstr� found_match�founds r�__str__zParseBaseException.__str__�s��� �9� ��x�3�t�y�>�>�)�)�0���8�=�=�d�i���R�R� ��*�'�-�-�a�0�0�E�E� �I�d�h���A��&=�>�E�(�5�0�9�9�%��F�F����H�6�=�=� �H�h���$�+�t�{� � � rc� �t|��S�N)�strrNs r�__repr__zParseBaseException.__repr__�s���4�y�y�rz>!<)� markerString� marker_stringc��|�|n|}|j}|jdz }|r(d�|d|�|||d�f��}|���S)z� Extracts the exception line from the input string, and marks the location of the exception with a special symbol. Nrr)rr.r;�strip)rrerd�line_str� line_columns r�mark_input_linez"ParseBaseException.mark_input_line�sm�� )6�(A�}�}�|� ��9���k�A�o� � � ��w�w��,�;�,�'��x� � � �7M�N���H��~�~���rc�.�|�||��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:: expr = pp.Word(pp.nums) * 3 try: 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`` )rG)rr=s r�explainzParseBaseException.explain�s��J�%�%�d�E�2�2�2r)rNN)rra)r r r �__doc__rb�int�typing�Optionalr� staticmethodrG� classmethodrK�propertyrrrr.r_rcrjrl� markInputlinerrrrrs�������A�A��$(� � %�%��%��%��_�S� !� %�%�%�%�"�?�?�?��\�?�B�>�>��[�>��)�c�)�)�)��X�)� �+��+�+�+��X�+� �(�S�(�(�(��X�(� �(��(�(�(��X�(�  �� � � � �$���  ��  �  �  �S�  �SV�  �  �  �  �%3�%3�3�%3�%3�%3�%3�N$�M�M�Mrrc��eZdZdZdS)�ParseExceptionaq Exception thrown when a parse expression doesn't match the input string Example:: try: Word(nums).set_name("integer").parse_string("ABC") except ParseException as pe: print(pe) print("column: {}".format(pe.column)) prints:: Expected integer (at char 0), (line:1, col:1) column: 1 N�r r r rmrrrrvrv�s���������rrvc��eZdZdZdS)�ParseFatalExceptionzu User-throwable exception thrown when inconsistent parse content is found; stops all parsing immediately Nrwrrrryry�s���������rryc��eZdZdZdS)�ParseSyntaxExceptionz� Just like :class:`ParseFatalException`, but thrown internally when an :class:`ErrorStop` ('-' operator) indicates that parsing is to stop immediately because an unbacktrackable syntax error has been found. Nrwrrrr{r{�s���������rr{c�$�eZdZdZd�Zdefd�ZdS)�RecursiveGrammarExceptionz� 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` c��||_dSra)�parseElementTrace)r�parseElementLists rrz"RecursiveGrammarException.__init__s��!1����rrLc�6�d�|j��S)NzRecursiveGrammarException: {})r/rrNs rr_z!RecursiveGrammarException.__str__ s��.�5�5�d�6L�M�M�MrN)r r r rmrrbr_rrrr}r}sO�������� 2�2�2�N��N�N�N�N�N�Nrr})�rer*ro�utilrrrr�unicoder�ppu�Latin1�LatinA�LatinB�Greek�Cyrillicr � alphanums�_extract_alphanums�compilerX� Exceptionrrvryr{r}rrr�r�s��� � � � � � � � � � � � �?�?�?�?�?�?�?�?�?�?�?�?�-�-�-�-�-�-� � � � � �3�:�s�z�3�:�s�y�#�,� � � �0�/�0D�0N�O�O��&�B�J�t�.@�'@�<�'O�P�P��F$�F$�F$�F$�F$��F$�F$�F$�R�����'����(�����,���������.���� N� N� N� N� N� � N� N� N� N� Nr