pymep is a simple python math expression parser.It is a recursive LR parser (Left-Right Parser) without backtracking
pymep can parse or evaluate math expressions and it is tested using matlab/octave
This algorithm does not use a decision tree. It is a kind of Recursive Ascent Parser (https://en.wikipedia.org/wiki/Recursive_ascent_parser). In fact, it is LR parser (Left-Right Parser) without backtracking. This recursive algorithm is faster than decision trees
https://pypi.org/project/pymep/
pip install pymep
fx= 2*(e*2)
Expressions in vars
var = {"x":"1+2+3+4+5", "Z":1}
eval(" 2*(-(((z*3)*sqrt(x^(2)))+3))",var)
from pymep.realParser import parse
from pymep.realParser import eval
#Real Expresion parser
fx="cos(10)"
print(parse(fx))
xi=5
fx = "1 + x"
print(eval(fx, xi))
var = {"x":"1+1", "Z":1}
eval(" 2*(-(((z*3)*sqrt(x^(2)))+3))",var)
from pymep.complexParser import parse
from pymep.complexParser import eval
from pymep.complex import Complex
#Operation with complex numbers
a = Complex(1,2)
print(a.__radd__(10).__complex__())
print(Complex.radd(10, a).__complex__())
#Complex Expresion parser
fx="cos(10+2j)"
print(parse(fx).__complex__())
xi=5
fx = "1 +j+x"
print(eval(fx, xi).__complex__())
var={"x":"1+2j", "Y":complex(2,1)}
f_x = "x-y"
eval(f_x,var).__complex__()
There is a full list of examples inside!!
from pymep.realParserTest import functionXTest;
p = functionXTest();
p.test_one();
p.test_three();
Zero vulnerabilities on https://snyk.io/vuln/pip:pymep
If you are interested in logical parsers or any task related to parsers, you can consult my professional services page https://github.com/sbesada/professional.services
If you think that my work deserves a donation, you can do it: https://sbesada.github.io/