class_docstr: An instance of this class converts a string of a Wolfram Mathematica
  expression to a SymPy expression.
  
  The main parser acts internally in three stages:
  
  1. tokenizer: tokenizes the Mathematica expression and adds the missing *
      operators. Handled by ``_from_mathematica_to_tokens(...)``
  2. full form list: sort the list of strings output by the tokenizer into a
      syntax tree of nested lists and strings, equivalent to Mathematica's
      ``FullForm`` expression output. This is handled by the function
      ``_from_tokens_to_fullformlist(...)``.
  3. SymPy expression: the syntax tree expressed as full form list is visited
      and the nodes with equivalent classes in SymPy are replaced. Unknown
      syntax tree nodes are cast to SymPy ``Function`` objects. This is
      handled by ``_from_fullformlist_to_sympy(...)``.
class_docstr_tok: ["An","instance","of","this","class","converts","a","string","of","a","Wolfram","Mathematica","expression","to","a","SymPy","expression",".","The","main","parser","acts","internally","in","three","stages",":","1.","tokenizer",":","tokenizes","the","Mathematica","expression","and","adds","the","missing","*","operators",".","Handled","by","``","_from_mathematica_to_tokens","(","...",")","``","2.","full","form","list",":","sort","the","list","of","strings","output","by","the","tokenizer","into","a","syntax","tree","of","nested","lists","and","strings",",","equivalent","to","Mathematica's","``","FullForm","``","expression","output",".","This","is","handled","by","the","function","``","_from_tokens_to_fullformlist","(","...",")","``",".","3",".","SymPy","expression",":","the","syntax","tree","expressed","as","full","form","list","is","visited","and","the","nodes","with","equivalent","classes","in","SymPy","are","replaced",".","Unknown","syntax","tree","nodes","are","cast","to","SymPy","``","Function","``","objects",".","This","is","handled","by","``","_from_fullformlist_to_sympy","(","...",")","``","."]
code: def _replace(cls, s, bef):
      aft = cls.REPLACEMENTS[bef]
      s = s.replace(bef, aft)
      return s
  
imports: from __future__ import annotations
  import re
  import typing
  from itertools import product
  from typing import Any, Callable
  import sympy
  from sympy import Mul, Add, Pow, Rational, log, exp, sqrt, cos, sin, tan, asin, acos, acot, asec, acsc, sinh, cosh, tanh, asinh, acosh, atanh, acoth, asech, acsch, expand, im, flatten, polylog, cancel, expand_trig, sign, simplify, UnevaluatedExpr, S, atan, atan2, Mod, Max, Min, rf, Ei, Si, Ci, airyai, airyaiprime, airybi, primepi, prime, isprime, cot, sec, csc, csch, sech, coth, Function, I, pi, Tuple, GreaterThan, StrictGreaterThan, StrictLessThan, LessThan, Equality, Or, And, Lambda, Integer, Dummy, symbols
  from sympy.core.sympify import sympify, _sympify
  from sympy.functions.special.bessel import airybiprime
  from sympy.functions.special.error_functions import li
  from sympy.utilities.exceptions import sympy_deprecation_warning
label_desc: Use image node_id 7 for calling the MathematicaParser obj's underlying member method code with example usage: obj._replace(cls, s, bef) and returns: s