私はValaについて少し勉強しようとしており、Gtkの動作をテストするためにCalculatorを作成したいと考えていました。問題は、必要な操作を含む文字列を解析する方法があると仮定して、すべてのものをコーディングしたことです。Vala - 構文解析
string operation = "5+2/3*4"
私はPythonでこれを行いました。これはコンパイラパーサーを使用するのと同じくらい簡単です。私はPythonが数学指向であると理解していますが、私は答えとして私を待っているValaライブラリがあるだろうと思っていました...それが存在すれば見つけられませんでしたが、文字列のドキュメントを見ていたとき、一部:私は、これは限り正確仮定ではないことを理解
stdout.printf(@"$(operation)")
:
/* Strings prefixed with '@' are string templates. They can evaluate
* embedded variables and expressions prefixed with '$'.
* Since Vala 0.7.8.
*/
string name = "Dave";
println (@"Good morning, $name!");
println (@"4 + 3 = $(4 + 3)");
だから...私はこのような何か多分、多分それはそのように動作させるための方法があったことを考えました変数を代用するだけで、実際に変数を評価するためのさらなるステップが必要になります。
今私が抱いている2つの主な疑問は次のとおりです。a)これを実行できるライブラリ関数はありますか? b)文字列テンプレートを使用して解決策を試すことは可能ですか?
文字列テンプレートのアプローチはここではうまくいかないでしょう。 Valaが簡単には提供しない完全な表現パーサーが必要です。 –
[GNOME電卓](https://git.gnome.org/browse/gnome-calculator/tree/src)は、Valaで書かれています(参考になる場合)。 – AlThomas