class_docstr: Class to store and handle SymPy expressions
  
  This class will hold SymPy Expressions and handle the API for the
  conversion to and from different languages.
  
  It works with the C and the Fortran Parser to generate SymPy expressions
  which are stored here and which can be converted to multiple language's
  source code.
  
  Notes
  =====
  
  The module and its API are currently under development and experimental
  and can be changed during development.
  
  The Fortran parser does not support numeric assignments, so all the
  variables have been Initialized to zero.
  
  The module also depends on external dependencies:
  
  - LFortran which is required to use the Fortran parser
  - Clang which is required for the C parser
  
  Examples
  ========
  
  Example of parsing C code:
  
  >>> from sympy.parsing.sym_expr import SymPyExpression
  >>> src = '''
  ... int a,b;
  ... float c = 2, d =4;
  ... '''
  >>> a = SymPyExpression(src, 'c')
  >>> a.return_expr()
  [Declaration(Variable(a, type=intc)),
  Declaration(Variable(b, type=intc)),
  Declaration(Variable(c, type=float32, value=2.0)),
  Declaration(Variable(d, type=float32, value=4.0))]
  
  An example of variable definition:
  
  >>> from sympy.parsing.sym_expr import SymPyExpression
  >>> src2 = '''
  ... integer :: a, b, c, d
  ... real :: p, q, r, s
  ... '''
  >>> p = SymPyExpression()
  >>> p.convert_to_expr(src2, 'f')
  >>> p.convert_to_c()
  ['int a = 0', 'int b = 0', 'int c = 0', 'int d = 0', 'double p = 0.0', 'double q = 0.0', 'double r = 0.0', 'double s = 0.0']
  
  An example of Assignment:
  
  >>> from sympy.parsing.sym_expr import SymPyExpression
  >>> src3 = '''
  ... integer :: a, b, c, d, e
  ... d = a + b - c
  ... e = b * d + c * e / a
  ... '''
  >>> p = SymPyExpression(src3, 'f')
  >>> p.convert_to_python()
  ['a = 0', 'b = 0', 'c = 0', 'd = 0', 'e = 0', 'd = a + b - c', 'e = b*d + c*e/a']
  
  An example of function definition:
  
  >>> from sympy.parsing.sym_expr import SymPyExpression
  >>> src = '''
  ... integer function f(a,b)
  ... integer, intent(in) :: a, b
  ... integer :: r
  ... end function
  ... '''
  >>> a = SymPyExpression(src, 'f')
  >>> a.convert_to_python()
  ['def f(a, b):\n   f = 0\n    r = 0\n    return f']
docstr: Returns a list with the c source code for the SymPy expressions
  
  
  Examples
  ========
  
  >>> from sympy.parsing.sym_expr import SymPyExpression
  >>> src2 = '''
  ... integer :: a, b, c, d
  ... real :: p, q, r, s
  ... c = a/b
  ... d = c/a
  ... s = p/q
  ... r = q/p
  ... '''
  >>> p = SymPyExpression()
  >>> p.convert_to_expr(src2, 'f')
  >>> p.convert_to_c()
  ['int a = 0', 'int b = 0', 'int c = 0', 'int d = 0', 'double p = 0.0', 'double q = 0.0', 'double r = 0.0', 'double s = 0.0', 'c = a/b;', 'd = c/a;', 's = p/q;', 'r = q/p;']
code: def convert_to_c(self):
      """Returns a list with the c source code for the SymPy expressions
  
  
      Examples
      ========
  
      >>> from sympy.parsing.sym_expr import SymPyExpression
      >>> src2 = '''
      ... integer :: a, b, c, d
      ... real :: p, q, r, s
      ... c = a/b
      ... d = c/a
      ... s = p/q
      ... r = q/p
      ... '''
      >>> p = SymPyExpression()
      >>> p.convert_to_expr(src2, 'f')
      >>> p.convert_to_c()
      ['int a = 0', 'int b = 0', 'int c = 0', 'int d = 0', 'double p = 0.0', 'double q = 0.0', 'double r = 0.0', 'double s = 0.0', 'c = a/b;', 'd = c/a;', 's = p/q;', 'r = q/p;']
  
      """
      self._ccode = []
      for iter in self._expr:
          self._ccode.append(ccode(iter))
      return self._ccode
  
file_path: sympy/sympy/parsing/sym_expr.py
imports: from sympy.printing import pycode, ccode, fcode
  from sympy.external import import_module
  from sympy.utilities.decorator import doctest_depends_on
label_desc: Use image node_id 4 for calling the SymPyExpression obj's underlying member method code with example usage: obj.convert_to_c() and returns: self