0

我有一个应用程序,用户可以在其中创建存储在数据库中的实体。每个实体都有一个字符串名称属性和一个布尔值属性。用户还可以指定一个字符串,其中包含要针对实体执行的逻辑。例如,逻辑可能类似于:

(Q1 或 Q2)和(Q3 或 Q4)

因此,要评估此逻辑,我的应用程序需要查找 Name 属性为 Q1、Q2、Q3 和 Q4 的实体,将 Value 属性替换为上述表达式中的名称,并评估该表达式。

该应用程序是用 C# 编写的。我是 C# 和 VB 方面的专家,但我没有使用动态语言的经验。我可以编写一个使用 Regex 来标记逻辑字符串的解析器,但我想知道是否有更简单的方法可以做到这一点,也许可以使用相对较新的 .Net 动态语言功能。

鲍勃

4

2 回答 2

1

Flee (http://flee.codeplex.com/) 看起来像个赢家。特别是,它似乎提供了一种简单的事件机制,允许我的应用程序为 Flee 从表达式中解析出来的变量提供值。

于 2012-11-25T21:07:23.993 回答
0

ANTLR 是一个很棒的 Java 解析器生成器。我建议看看:

http://www.antlr.org/wiki/display/ANTLR3/Antlr+3+CSharp+Target

于 2012-11-25T20:48:56.883 回答