Lines Matching defs:expr
49 MathExpr::MathExpr(std::string expr)
63 expr.erase(remove_if(expr.begin(), expr.end(), isspace), expr.end());
65 root = MathExpr::parse(expr);
77 MathExpr::parse(std::string expr) {
78 if (expr.size() == 0)
84 for (int i = expr.size() - 1; i >= 0; i--) {
85 if (expr[i] == ')')
87 if (expr[i] == '(')
95 if (ops[opt].c == expr[i]) {
99 l = parse(expr.substr(0, i));
100 Node *r = parse(expr.substr(i + 1));
115 if (expr.size() >= 2 && expr[0] == '(' && expr[expr.size() - 1] == ')')
116 return parse(expr.substr(1, expr.size() - 2));
121 double v = strtod(expr.c_str(), &sptr);
122 if (sptr != expr.c_str()) {
133 for (auto & c: expr)
143 n->variable = expr;