【发布时间】:2016-03-23 06:51:40
【问题描述】:
我正在尝试了解一些有关 Vala 的知识,并想创建一个计算器来测试 Gtk 的工作方式。问题是我编写了围绕假设有一种方法来解析包含所需操作的字符串的所有内容。像这样的:
string operation = "5+2/3*4"
我已经用 Python 完成了这项工作,它就像使用编译器解析器一样简单。我了解 Python 是面向数学的,但我认为可能会有 Vala 库等着我作为答案......如果它确实存在,我还没有找到它,但是当我查看字符串文档时,我注意到了这一点部分:
/* 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)");
所以...我想也许有办法让它以这种方式工作,也许是这样的:
stdout.printf(@"$(operation)")
我知道这不是一个准确的假设,因为它只会替换变量并需要进一步的步骤来实际评估它。
现在我的两个主要疑问是:a) 是否有一个库函数能够做到这一点? b) 是否可以使用字符串模板制定解决方案?
【问题讨论】:
-
字符串模板方法在这里没有任何好处。您需要一个 Vala 不容易提供的完整表达式解析器。
-
GNOME Calculator 是用 Vala 编写的,如果这是一个有用的参考的话。
标签: parsing math string-parsing vala