Technical test for a job interview.
1
2#include "numeral_number.hpp"
3
4NumeralNumber::~NumeralNumber()
5{
6 if (_power != nullptr)
7 {
8 delete _power;
9 }
10}
11
12void NumeralNumber::setChild(NumeralWord *child)
13{
14 if (_power != nullptr)
15 {
16 _power->setChild(child);
17 }
18 else
19 {
20 _power = child;
21 }
22}
23
24int NumeralNumber::evaluate()
25{
26 if (_power != nullptr)
27 {
28 return _value * _power->evaluate();
29 }
30
31 return _value;
32}
33
34std::string NumeralNumber::to_string()
35{
36 std::string out = _repr + "*";
37 if (_power != nullptr)
38 {
39 out += _power->to_string();
40 }
41 else
42 {
43 out += "null";
44 }
45 return out;
46}