Как работает простой калькулятор с круглыми скобками?

Я хочу узнать, как работают калькуляторы. Например, скажем, у нас есть входные данные в инфиксной записи, например:

1 + 2 х 10 - 2

Парсер должен будет соблюдать общие правила в математике. В приведенном выше примере это означает:

1 + (2 x 10) - 2 = 19 (а не 3 x 10 - 2 = 28)

А затем подумайте об этом:

1 + 2 x ((2/9) + 7) - 2

Включает ли это абстрактное синтаксическое дерево? Бинарное дерево? Как обеспечить математически правильный порядок операций? Должен ли я использовать алгоритм shunting-yard для преобразования этого в постфиксную нотацию? А потом, как бы я проанализировать его в постфиксной записи? Зачем конвертировать в первую очередь?

Есть ли учебник, который показывает, как строятся эти относительно простые калькуляторы? Или может кто-нибудь объяснить?

Ответы на вопрос(2)

Ваш ответ на вопрос