Проведя некоторое исследование, я узнал о записи постфикса и о том, как анализировать выражение.
Мой код преобразуется в постфиксную нотацию, а затем оценивает ее с помощью стекового метода. Например:
Initial expression: 5 + 2^(4 - 1)
Postfix notation: 5 2 4 1 - ^ +
Result: 13
Теперь я пытаюсь расширить эту программу, чтобы можно было вычислять выражения с помощью таких функций, как sin, cos, log, например: 5 + sin (2 + log (2))
.
Моя первоначальная идея заключалась в том, чтобы перед синтаксическим анализом найти эти функции, оценить их результаты и заменить их в строке. Но я не думаю, что это очень хорошая идея ...
Так, как я могу сделать это эффективным способом?
Вот некоторый код, написанный на c #, если он пригодится: http://pastebin.com/7wB81fyQ, но я бы предпочел некоторый псевдокод, чтобы я лучше понял, что пишу ... Я не один из те ребята, которые просто копируют и вставляют.