Hello all,
I created a class to generate an abstract syntax tree from sympy
expressions. Operations like addition, subtraction and power are
converted to the python operator. Symbols are converted to identifiers
(Name nodes) and functions to calls.
It contrasts with the python printer because it does not generate
sympy code. The python printer pretty much just creates code that
evaluates to the same sympy expression that was used for generation.
So symbols are converted to Symbol constructors and rationals are
converted to Rational constructors. With the AST, the duck typing can
be used and if the variables and functions are appropriately defined
and imported, an expression can be evaluated with numpy arrays, which
is what I want to use it for.
The most useful thing, though, is generation of function def nodes,
which can be compiled and used more easily (and safely, without any
weird side effects) to take advantage of duck typing.
The code is in my personal repository which houses arbitrary python
stuff that I'm working on:
https://github.com/dimasad/scikits.dimas/blob/master/scikits/dimas/pycode.py
I guess that could be a useful addition to sympy, and other people
might need it as well. I was thinking it could be included as a module
in the sympy.parsing package. I'm not sure about the name, though,
perhaps sympy_ast or ast_builder. I'm still working on it, though, so
maybe I could send a pull request when I'm done.
~Dimas
--
You received this message because you are subscribed to the Google Groups
"sympy" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/sympy?hl=en.