int eval() { int value = 0; while (str[idx]) { if (str[idx] == '(') { int v = evalParenthesis(); if (v == 0) { return 0; } else { value += v; } } else if (str[idx] == '[') { int v = evalBracket(); if (v == 0) { return 0; } else { value += v; } } else { break; } } return value; }
static float evalParenthesis(char* start, char* end) { return evalParenthesis(start + 1, end - 1); }