Это на самом деле гораздо более сложная проблема, чем кажется на первый взгляд, и я говорю это по опыту.
Если вам нужен пример того, как сделать это с нуля, вот вопрос, гдеЯ опубликовал пример, над которым я работал . Он, конечно, не полный, но содержит ссылки на замечательную статью по Java (на самом деле, возможно, лучшую статью) о синтаксическом анализе Pratt, что, на мой взгляд, является лучшим способом для анализа выражений. Мой вопрос был о моей попытке перенести найденный там код Java на C ++. Вы можете увидеть проблему, с которой я столкнулся.
Вам также необходимо знать некоторые теории о лексерах и научиться создавать токенов , которые я не делаю. Спросите об этом.
Дело в том, что у вас впереди много исследований, если вы хотите начать с нуля, или даже если вы хотите просто знать теорию происходящего, но ябезусловно, рекомендуем вам попробовать, если у вас нет крайнего срока для этого.