質問です。数式と値をを入力すると、式に値を代入した答えを返すプログラムを
作りたいのですが、何かうまい方法はないでしょうか?

たとえば、入力 : x^2 + x + 1 1
出力 : 3
みたいなものです。
プログラム内部で、+,-等の演算子をどう表現すればいいのか悩んでいます。
最終的にはsin(x)とかにも対応したいんですけど・・
よろしくお願いします。