File: //opt/alt/python37/lib/python3.7/site-packages/pyparsing/__pycache__/exceptions.cpython-37.pyc
B
o|Se?# � @ s� d dl Z d dlZd dlZddlmZmZmZmZ ddlm Z
G dd� de
je
je
j
e
je
j�Zeej�Ze �de d �ZG d d
� d
e�ZG dd� de�ZG d
d� de�ZG dd� de�ZG dd� de�ZdS )� N� )�col�line�lineno�_collapse_string_to_ranges)�pyparsing_unicodec @ s e Zd ZdS )�ExceptionWordUnicodeN)�__name__�
__module__�__qualname__� r r ��/builddir/build/BUILDROOT/alt-python37-pyparsing-3.0.9-2.el8.x86_64/opt/alt/python37/lib/python3.7/site-packages/pyparsing/exceptions.pyr s r z([z
]{1,16})|.c @ s� e Zd ZdZd eeeje d�dd�Ze d!dd ��Z
ed
d� �Ze
ed�d
d��Ze
ed�dd��Ze
ed�dd��Ze
ed�dd��Zed�dd�Zdd� Zd"dd�eed�dd�Zd#ed�dd�ZeZdS )$�ParseBaseExceptionz7base exception class for all parsing runtime exceptionsr N)�pstr�loc�msgc C sD || _ |d kr|| _d| _n|| _|| _| | _| _|||f| _d S )N� )r r r Zparser_element�
parserElement�args)�selfr r r �elemr r r
�__init__ s zParseBaseException.__init__� c
C s� ddl }ddlm} |dkr$t�� }g }t| t�rV|�| j� |�d| j d d � |�d�
t| �j| �� |dk�rz|j
| j|d�}t� }x�t|| d� �D ]�\}}|d } | j�d d�}
t|
|��r| jjd
kr�q�t|
�|kr�q�|�t|
�� t|
�}|�d�
|j|j|
�� nP|
dk �rBt|
�}|�d�
|j|j�� n&| j}|jd
k�rVq�|�d�
|j�� |d8 }|s�P q�W 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�
_parseNoCachez
{}.{} - {}z{}.{})�wrapperz<module>z{}�
)�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�coder r r
�explain_exception) sH
z$ParseBaseException.explain_exceptionc C s | |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�per r r
�_from_exceptionk s z"ParseBaseException._from_exception)�returnc C s t | j| j�S )zG
Return the line of text where the exception occurred.
)r r r )r r r r
r s s zParseBaseException.linec C s t | j| j�S )zV
Return the 1-based line number of text where the exception occurred.
)r r r )r r r r
r z s zParseBaseException.linenoc C s t | j| j�S )z]
Return the 1-based column on the line of text where the exception occurred.
)r r r )r r r r
r � s zParseBaseException.colc C s t | j| j�S )z]
Return the 1-based column on the line of text where the exception occurred.
)r r r )r r r r
r'