======= Parsing ======= .. module:: sympy.parsing Parsing Functions Reference --------------------------- .. autofunction:: sympy.parsing.sympy_parser.parse_expr .. autofunction:: sympy.parsing.sympy_parser.stringify_expr .. autofunction:: sympy.parsing.sympy_parser.eval_expr .. autofunction:: sympy.parsing.maxima.parse_maxima .. autofunction:: sympy.parsing.mathematica.mathematica Parsing Transformations Reference --------------------------------- A transformation is a function that accepts the arguments ``tokens, local_dict, global_dict`` and returns a list of transformed tokens. They can be used by passing a list of functions to :py:func:`~.parse_expr` and are applied in the order given. .. autodata:: sympy.parsing.sympy_parser.standard_transformations .. autofunction:: sympy.parsing.sympy_parser.split_symbols .. autofunction:: sympy.parsing.sympy_parser.split_symbols_custom .. autofunction:: sympy.parsing.sympy_parser.implicit_multiplication .. autofunction:: sympy.parsing.sympy_parser.implicit_application .. autofunction:: sympy.parsing.sympy_parser.function_exponentiation .. autofunction:: sympy.parsing.sympy_parser.implicit_multiplication_application .. autofunction:: sympy.parsing.sympy_parser.rationalize .. autofunction:: sympy.parsing.sympy_parser.convert_xor These are included in :data:``sympy.parsing.sympy_parser.standard_transformations`` and generally don't need to be manually added by the user. .. autofunction:: sympy.parsing.sympy_parser.lambda_notation .. autofunction:: sympy.parsing.sympy_parser.auto_symbol .. autofunction:: sympy.parsing.sympy_parser.repeated_decimals .. autofunction:: sympy.parsing.sympy_parser.auto_number .. autofunction:: sympy.parsing.sympy_parser.factorial_notation Experimental `\mathrm{\LaTeX}` Parsing -------------------------------------- `\mathrm{\LaTeX}` parsing was ported from `latex2sympy `_. While functional and its API should remain stable, the parsing behavior or backend may change in future releases. `\mathrm{\LaTeX}` Parsing Caveats --------------------------------- The current implementation is experimental. The behavior, parser backend and API might change in the future. Unlike some of the other parsers, `\mathrm{\LaTeX}` is designed as a *type-setting* language, not a *computer algebra system* and so can contain typographical conventions that might be interpreted multiple ways. In its current definition, the parser will at times will fail to fully parse the expression, but not throw a warning:: parse_latex(r'x -') Will simply find ``x``. What is covered by this behavior will almost certainly change between releases, and become stricter, more relaxed, or some mix. `\mathrm{\LaTeX}` Parsing Functions Reference --------------------------------------------- .. autofunction:: sympy.parsing.latex.parse_latex `\mathrm{\LaTeX}` Parsing Exceptions Reference ---------------------------------------------- .. autoclass:: sympy.parsing.latex.LaTeXParsingError :members: SymPy Expression Reference -------------------------- .. module:: sympy.parsing.sym_expr .. autoclass:: SymPyExpression :members: Runtime Installation -------------------- The currently-packaged LaTeX parser backend is partially generated with `ANTLR4 `_, but to use the parser, you only need the ``antlr4`` Python package available. Depending on your package manager, you can install the right package with, for example, ``pip3`` (Python 3 only):: $ pip3 install antlr4-python3-runtime or ``pip`` (Python 2 only):: $ pip install antlr4-python2-runtime or ``conda`` (Python 2 or Python 3):: $ conda install --channel=conda-forge antlr-python-runtime The C parser depends on ``clang`` and the Fortran parser depends on ``LFortran``. You can install these packages using:: $ conda install -c conda-forge lfortran clang