Страуструп объясняет, как вы оцениваете выражения типа ((1*(2+3))/4)+5.603+(6*(11^5))
.По сути, вы строите дерево оценки для всех подвыражений.
В вашем примере есть три дополнительных шага.При разборе вы должны отметить переменные a
, а при оценке вы должны заменить переменные их текущими значениями.Наконец, вам нужно присвоить результат переменным.
Вы можете использовать std::map<std::string, double>
для хранения имен и значений переменных.