+
    i*              	         ^ RI Ht ^ RIt^ RIt^ RIt^ RIt^ RIt^ RIHt ^RIH	t	 ^RI
Ht ^RIHtHtHtHtHtHt  ! R R]P(                  ]P*                  ]P,                  ]P.                  ]P0                  4      t]! ]P4                  4      t]P8                  ! R	] R
24      t ! R R]4      t ! R R]4      t  ! R R]4      t! ! R R]!4      t" ! R R]4      t#R# )    )annotationsN)cached_property)PyparsingDeprecationWarning)pyparsing_unicode)_collapse_string_to_rangescoldeprecate_argumentlinelinenoreplaced_by_pep8c                      ] tR t^tRtR# )_ExceptionWordUnicodeSet N)__name__
__module____qualname____firstlineno____static_attributes__r       t/Users/tonyclaw/.openclaw/workspace/skills/math-calculator/venv/lib/python3.14/site-packages/pyparsing/exceptions.pyr   r      s     	r   r   z([z
]{1,16})|.c                     ] tR t^!t$ RtR]R&   R]R&   R]R&   R]R&   R	]R
&   R*tR+R R llt]R,R R ll4       t	]
R R l4       t]R R l4       t]R R l4       t]R R l4       t]R R l4       t]R R l4       t]R 4       t]P(                  R 4       tR tR R  ltR! R" ltR# tR-R$ R% lltR,R& R' llt]! R(]4      tR)tR# ).ParseBaseExceptionz7base exception class for all parsing runtime exceptionsintlocstrmsgpstrz
typing.Anyparser_elementz%tuple[str, int, typing.Optional[str]]argsNc               (    V ^8  d   QhRRRRRRRR/# )	   r   r   r   r   r   typing.Optional[str]returnNoner   )formats   "r   __annotate__ParseBaseException.__annotate__4   s2     % %% % "	% 
%r   c                	V    Vf   TRrW n         W0n        Wn        W@n        WV3V n        R # )N r   r   r   r   r   )selfr   r   r   elems   &&&&&r   __init__ParseBaseException.__init__4   s1     ;b	"$	r   c               $    V ^8  d   QhRRRRRR/# )r!   exc	Exceptiondepthr   r#   r   r   )r%   s   "r   r&   r'   E   s!     = =y = =c =r   c                   ^ RI p^RIHp Vf   \        P                  ! 4       p. p\        V \        4      '       d<   VP                  V P                  4       VP                  RRV P                   2 4       VP                  \        V 4      P                   RV  24       V^ 8:  g   V P                  f   RP                  V4      # VP                  V P                  VR7      p\        4       pWQ) R  EFT  pV^ ,          pVP                   P#                  RR4      p	\        W4      '       d   VP$                  P&                  P)                  R4      '       g   Kg  \+        V	4      V9   d   Ky  VP-                  \+        V	4      4       \        V	4      p
VP                  V
P.                   R	V
P                   R
V	 24       MuV	e7   \        V	4      p
VP                  V
P.                   R	V
P                   24       M;VP$                  pVP&                  R9   d   EK&  VP                  VP&                  4       V^,          pV'       d   EKU   M	  RP                  V4      # )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.
N)ParserElement^>: 
)contextr+   .z - )	parseImpl_parseNoCache)wrapperz<module>)inspectcorer4   sysgetrecursionlimit
isinstancer   appendr
   columntyper   __traceback__joingetinnerframessetf_localsgetf_codeco_name
startswithidaddr   )r0   r2   r>   r4   retcallersseenfffrmf_self	self_typecodes   &&          r   explain_exception$ParseBaseException.explain_exceptionD   s   " 	'=))+Ec-..JJsxx JJ#a

|^,.

d3i(()C512A:**299S>!(():):E(J&'"BQ%C\\%%fd3F&00zz))445STTf:%F$ L	

i2231Y5G5G4HF8TU# L	

i2231Y5G5G4HIJ zz<<#::

4<<(QJE57 #: yy~r   c                   V ^8  d   QhRR/# )r!   r#   r   r   )r%   s   "r   r&   r'      s     ? ?$6 ?r   c                h    V ! VP                   VP                  VP                  VP                  4      # )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_exception"ParseBaseException._from_exception   s'     277BFFBFFB,=,=>>r   c                   V ^8  d   QhRR/# r!   r#   r   r   )r%   s   "r   r&   r'      s     ) )c )r   c                B    \        V P                  V P                  4      # )z7
Return the line of text where the exception occurred.
)r
   r   r   r+   s   &r   r
   ParseBaseException.line   s    
 DHHdii((r   c                   V ^8  d   QhRR/# r!   r#   r   r   )r%   s   "r   r&   r'      s     + + +r   c                B    \        V P                  V P                  4      # )zF
Return the 1-based line number of text where the exception occurred.
)r   r   r   rd   s   &r   r   ParseBaseException.lineno   s    
 dhh		**r   c                   V ^8  d   QhRR/# rg   r   )r%   s   "r   r&   r'      s     ( (S (r   c                B    \        V P                  V P                  4      # zM
Return the 1-based column on the line of text where the exception occurred.
r   r   r   rd   s   &r   r   ParseBaseException.col       
 488TYY''r   c                   V ^8  d   QhRR/# rg   r   )r%   s   "r   r&   r'      s     ( ( (r   c                B    \        V P                  V P                  4      # rl   rm   rd   s   &r   rD   ParseBaseException.column   ro   r   c                   V ^8  d   QhRR/# rb   r   )r%   s   "r   r&   r'      s     5 5s 5r   c                	p   V P                   '       g   R # V P                  \        V P                   4      8  d   R# \        P	                  V P                   V P                  4      pVe   V^ ,          pM*V P                   V P                  V P                  ^,            p\        V4      P                  RR4      # )r)   zend of textz\\\)r   r   len_exception_word_extractormatchreprreplace)r+   found_match
found_texts   &  r   foundParseBaseException.found   s    yyy88s499~%  055diiJ"$QJ488dhhl;JJ''t44r   c                	T    \         P                  ! R \        ^R7       V P                  # )/parserElement is deprecated, use parser_element
stacklevelwarningswarnr   r   rd   s   &r   parserElement ParseBaseException.parserElement   s%    ='	

 """r   c                	L    \         P                  ! R \        ^R7       Wn        R# )r   r   Nr   )r+   r,   s   &&r   r   r      s    ='	

 #r   c                	.    \         P                   ! V 4      # N)copyrd   s   &r   r   ParseBaseException.copy   s    yyr   c                   V ^8  d   QhRR/# rb   r   )r%   s   "r   r&   r'      s     j j3 jr   c           	         V P                   '       d   RV P                    2MRpV P                   V RV P                   RV P                   RV P                   R2	# )z
Output the formatted exception message.
Can be overridden to customize the message formatting or contents.

.. versionadded:: 3.2.0
z, found r)   z  (at char z	), (line:z, col:))r}   r   r   r   rD   )r+   found_phrases   & r   formatted_message$ParseBaseException.formatted_message   sW     37***$**."((L>TXXJi}TZ[_[f[fZgghiir   c                   V ^8  d   QhRR/# rb   r   )r%   s   "r   r&   r'      s       r   c           	          V P                  4       #   \         dI   p\        T 4      P                   RT P                   R\        T4      P                   RT R2u Rp?# Rp?ii ; i)zT
.. versionchanged:: 3.2.0
   Now uses :meth:`formatted_message` to format message.
r7   z (z while formatting message)N)r   r1   rE   r   r   )r+   exs   & r   __str__ParseBaseException.__str__   sf    
	))++ 	:&&'r$((T"X&&'r"-GI	s    A%=A A% A%c                	    \        V 4      # r   )r   rd   s   &r   __repr__ParseBaseException.__repr__   s    4yr   c                    V ^8  d   QhRRRR/# )r!   marker_stringr"   r#   r   r   )r%   s   "r   r&   r'      s        1 	 r   c                    \        VRR4      pVe   TMTpV P                  pV P                  ^,
          pV'       d   VRV  V WER  2pVP                  4       # )zs
Extracts the exception line from the input string, and marks
the location of the exception with a special symbol.
markerStringz>!<N)r	   r
   rD   strip)r+   r   kwargsr   line_strline_columns   &&,   r   mark_input_line"ParseBaseException.mark_input_line   sd     /v~uM(5(A}|99kkAo"<K01,@V?WXH~~r   c                    V ^8  d   QhRRRR/# )r!   r2   r   r#   r   r   )r%   s   "r   r&   r'      s     +3 +3S +3# +3r   c                $    V P                  W4      # )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:

.. testcode::

    # 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:

.. testoutput::

    123 456 A789
            ^
    ParseException: Expected W:(0-9), found 'A789'  (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``
)rY   )r+   r2   s   &&r   explainParseBaseException.explain   s    V %%d22r   markInputline)r   r   r   r   r   r*   )r   NN)   r   )r   r   r   r   __doc____annotations__	__slots__r-   staticmethodrY   classmethodr_   r   r
   r   r   rD   r}   propertyr   setterr   r   r   r   r   r   r   r   r   r   r   r   r   r   !   s   A	H	H
I
//I%  = =~ ? ? ) ) + + ( ( ( ( 5 5" # # # #j  +3^ %_oFMr   r   c                      ] tR tRtRtRtR# )ParseExceptioni,  am  
Exception thrown when a parse expression doesn't match the input string

Example:

.. testcode::

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

prints:

.. testoutput::

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

r   Nr   r   r   r   r   r   r   r   r   r   r   ,  s    r   r   c                      ] tR tRtRtRtR# )ParseFatalExceptioniC  zi
User-throwable exception thrown when inconsistent parse content
is found; stops all parsing immediately
r   Nr   r   r   r   r   r   C  s    r   r   c                      ] tR tRtRtRtR# )ParseSyntaxExceptioniJ  z
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.
r   Nr   r   r   r   r   r   J  s    r   r   c                  2    ] tR tRtRtR R ltR R ltRtR# )	RecursiveGrammarExceptioniS  a4  
.. deprecated:: 3.0.0
   Only used by the deprecated :meth:`ParserElement.validate`.

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>`
c                   V ^8  d   QhRR/# )r!   r#   r$   r   )r%   s   "r   r&   &RecursiveGrammarException.__annotate__]  s     2 2D 2r   c                	    Wn         R # r   parseElementTrace)r+   parseElementLists   &&r   r-   "RecursiveGrammarException.__init__]  s    !1r   c                   V ^8  d   QhRR/# rb   r   )r%   s   "r   r&   r   `  s     F F Fr   c                	     R V P                    2# )zRecursiveGrammarException: r   rd   s   &r   r   !RecursiveGrammarException.__str__`  s    ,T-C-C,DEEr   r   N)r   r   r   r   r   r-   r   r   r   r   r   r   r   S  s    2F Fr   r   )$
__future__r   r   rer@   typingr   	functoolsr   r   unicoder   ppuutilr   r   r	   r
   r   r   Latin1LatinALatinBGreekCyrillicr   	alphanums_extract_alphanumscompilerw   r1   r   r   r   r   r   r   r   r   <module>r      s    "  	 
   % 1 - 	JJ

CJJ		3<<	 00H0R0RS JJ"-?,@'MN GG GGV' ., . F	 Fr   