
    \h#                         S SK Jr  S SKJr  S SKJr  S SKJrJ	r	J
r
  SSKJr  SrSrS	rS
rSrSrSrS\ \ 3\ \ S3\ S\ \ 3\ \ S3S\ \ 3\ \ S3\ S\ \ 3\ \ S3S\ \ 3\ \ S3\ S\ \ 3\ \ S3SSSSSSS\ \ 3\ \ S3\ S\ \ 3\ \ S3S\ \ 3\ \ S3\ S\ \ 3\ \ S3S\ \ 3\ \ S3\ S\ \ 3\ \ S30r\R+                  5        V Vs0 s H  u  pX_M	     snn rS\ \ 3S\ S\ \ 3S S\ \ 3S!\ S\ \ 3S"S\ \ 3S#\ S\ \ 3S$SS%SS&SS'S\ \ 3S(\ S\ \ 3S)S\ \ 3S*\ S\ \ 3S+S\ \ 3S,\ S\ \ 3S-0r\ \ S3S.\ \ S3S/\ \ S3S0\ \ S3S1\ \ S3S2\ \ S3S3SS4SS5SS6\ \ S3S7\ \ S3S8\ \ S3S9\ \ S3S:\ \ S3S;\ \ S3S<0rS= rS>S?S@/0r\" SASB9SESC j5       rgDs  snn f )F    )import_module)doctest_depends_on)compile)LarkLaTeXParserTransformToSymPyExprparse_latex_lark   )LaTeXParsingErrorz
\s*[{]*\s*z
\s*[}]*\s*z(?<!\\left)z\\begin{matrix}z\\end{matrix}z\\begin{array}{.*?}z\\end{array}z\\left\(z	\\right\)z\(z\)z\\left\[z	\\right\]z\[z\]z\\left\|z	\\right\|z\|z\\begin{pmatrix}z\\end{pmatrix}z\\begin{bmatrix}z\\end{bmatrix}z\\begin{vmatrix}z\\end{vmatrix}z\left(\begin{matrix}z(\begin{matrix}z\left[\begin{matrix}z[\begin{matrix}z\left|\begin{matrix}z|\begin{matrix}z\begin{pmatrix}z\begin{bmatrix}z\begin{vmatrix}z&\left(\begin{array}{COLUMN_SPECIFIERS}z!(\begin{array}{COLUMN_SPECIFIERS}z&\left[\begin{array}{COLUMN_SPECIFIERS}z![\begin{array}{COLUMN_SPECIFIERS}z&\left|\begin{array}{COLUMN_SPECIFIERS}z!|\begin{array}{COLUMN_SPECIFIERS}z\end{matrix}\right)z\end{matrix})z\end{matrix}\right]z\end{matrix}]z\end{matrix}\right|z\end{matrix}|z\end{pmatrix}z\end{bmatrix}z\end{vmatrix}z\end{array}\right)z\end{array})z\end{array}\right]z\end{array}]z\end{array}\right|z\end{array}|c                 
   / n[          H  n[         U   n[        U5      n[        U5      nUR                  UR                  U 5       Vs/ s H(  n/ UR	                  5       QUR                  5       PUP7PM*     sn5        UR                  UR                  U 5       Vs/ s H(  n/ UR	                  5       QUR                  5       PUP7PM*     sn5        M     UR                  S S9  [        U5      S-  S:X  a  UR                  S5        [        USSS2   USSS2   5       VVs/ s H  u  px/ UQUQ7PM     nnnU GH2  nSn	US   S	-
  n
U
S:  a  Sn
S
n	SnUS   S	-   nU[        U 5      :  a  [        U 5      nS
nUS   [        ;   a6  SUS    SUS    S[        [        US          SU	 X
U  U 3
n[        U5      eUS   c6  SUS    SUS    S[        [         US          SU	 X
U  U 3
n[        U5      e[         US      nUS   S:  a  SOS
n	US   [        U 5      :  a  SOS
nUS   U:w  d  M  S[        U    SUS    SUS    SUS    SUS    SU	 XS   US     U 3n[        U5      e   gs  snf s  snf s  snnf )z8Report mismatched, excess, or missing matrix delimiters.c                     U S   $ )Nr    )xs    T/var/www/auris/envauris/lib/python3.13/site-packages/sympy/parsing/latex/__init__.py<lambda>)check_matrix_delimiters.<locals>.<lambda>Y   s    ad    )key   r	   )NNNNNz...r   
       zExtra 'z' at index z or missing corresponding 'z' in LaTeX string:       z
Expected 'z' to close the 'z but found '      z of LaTeX string instead: )MATRIX_DELIMSrcompileextendfinditerspangroupsortlenappendzipEND_DELIM_REPRBEGIN_DELIM_REPRMATRIX_DELIMS_INVr
   )	latex_strspansbegin_delim	end_delimpqmr   y	sellipsiss	eellipsiseerrcorrect_end_regexs                  r   check_matrix_delimitersr7   K   s3   E$!+.	[!Y-.ZZ	-BD-B$ $!'') $"$-BD 	E+,::i+@B+@a" "!'') " "+@B 	C % 
JJNJ$
5zA~ 	-.$'cc
E!$Q$K$@A$@&1XqX1X$@EA 	aD2Iq5AI	aD2Is9~IAIQ4>!QqTF+adV 4'(9!A$(?@A B''0k)a.1A[	"C
 $C((Q4<QqTF+adV 4%mAaD&9:; <''0k)a.1A[	"C
 $C(()!A$/qTAXE2	qTC	N2E	Q4$$%&789 :$$%aD6QqTF ;qTF+adV 4&&/[Q4!1E0F["C $C((] DB Bs   	/I5
/I:
%I?)parse_latexantlr4lark)r9   r:   )modulesc                     [        U 5        US:X  a"  [        SSS/0S9nUb  UR                  X5      $ gUS:X  a  [        U 5      $ [	        SU S	35      e)
a  Converts the input LaTeX string ``s`` to a SymPy ``Expr``.

Parameters
==========

s : str
    The LaTeX string to parse. In Python source containing LaTeX,
    *raw strings* (denoted with ``r"``, like this one) are preferred,
    as LaTeX makes liberal use of the ``\`` character, which would
    trigger escaping in normal Python strings.
backend : str, optional
    Currently, there are two backends supported: ANTLR, and Lark.
    The default setting is to use the ANTLR backend, which can be
    changed to Lark if preferred.

    Use ``backend="antlr"`` for the ANTLR-based parser, and
    ``backend="lark"`` for the Lark-based parser.

    The ``backend`` option is case-sensitive, and must be in
    all lowercase.
strict : bool, optional
    This option is only available with the ANTLR backend.

    If True, raise an exception if the string cannot be parsed as
    valid LaTeX. If False, try to recover gracefully from common
    mistakes.

Examples
========

>>> from sympy.parsing.latex import parse_latex
>>> expr = parse_latex(r"\frac {1 + \sqrt {\a}} {\b}")
>>> expr
(sqrt(a) + 1)/b
>>> expr.evalf(4, subs=dict(a=5, b=2))
1.618
>>> func = parse_latex(r"\int_1^\alpha \dfrac{\mathrm{d}t}{t}", backend="lark")
>>> func.evalf(subs={"alpha": 2})
0.693147180559945
antlrz&sympy.parsing.latex._parse_latex_antlrfromlistX)import_kwargsNr:   zUsing the 'z/' backend in the LaTeX parser is not supported.)r7   r   r8   r   NotImplementedError)r2   strictbackend_latexs       r   r8   r8      s|    V A'4%u-/ %%a00 	F	""!Ky 9? #? @ 	@r   N)Fr=   )sympy.externalr   sympy.utilities.decoratorr   rer   r   sympy.parsing.latex.larkr   r   r   errorsr
   IGNORE_LIGNORE_RNO_LEFTBEGIN_AMS_MATEND_AMS_MAT	BEGIN_ARREND_ARRr   itemsr(   r'   r&   r7   __doctest_requires__r8   )kvs   00r   <module>rU      s   ( 8 " \ \ % 
""	
 XJ}o6K=
R[8\IRz-9{mH:UW;XXJ}o6K=
R[8\IRz-9{mH:UW;XXJ}o6K=
R[8\IRz-9{mH:UW;X$&7$&7$&7XJyk2y
)4TIRz)57)H:R7PXJyk2y
)4TIRz)57)H:R7PXJyk2y
)4TIRz)57)H:R7P" '4&9&9&;<&;daQT&;<   z-9;Sy8*]O<>Pz-9;Sy8*]O<>Pz-9;Sy8*]O<>P');');');z)57ay8*YK8:^z)57ay8*YK8:^z)57ay8*YK8:^ $ "]8*I68O!]8*B/1A!]8*I68O!]8*B/1A!]8*I68O!]8*B/1A#%5#%5#%5Yxj	24JYxj+_Yxj	24JYxj+_Yxj	24JYxj+_$D)L )8V*<=  ./7@ 07@c =s   (G