21 lines
429 B
C++
21 lines
429 B
C++
// Calculator.cpp
|
|
|
|
#include "Calculator.h"
|
|
|
|
namespace sci_calc {
|
|
|
|
Calculator::Calculator() : parser_(), evaluator_() {
|
|
}
|
|
|
|
double Calculator::calculate(const std::string &expression) {
|
|
if (expression.empty()) {
|
|
throw InvalidInputException("Empty expression");
|
|
}
|
|
|
|
std::vector<Token> postfixTokens = parser_.parseToPostfix(expression);
|
|
return evaluator_.evaluate(postfixTokens);
|
|
}
|
|
|
|
} // namespace sci_calc
|
|
|
|
|