我需要找到一个快速、轻量级的表达式解析器。
理想情况下,我希望能够将一组名称/值对(例如变量)和包含要评估的表达式的字符串传递给它。我只需要从它那里得到一个真/假值。
表达式的类型应该是类似于:
varA == "xyz" and varB==123
基本上,只是一个简单的逻辑引擎,其表达式在运行时提供。
更新
至少需要支持==、!=、>、>=、<、<=
关于速度,我预计每个请求执行大约5个表达式。我们将看到大约100个/秒的请求。我们当前的页面 tend to 在50ms之内执行。通常任何表达式中只会涉及2或3个变量。但是,在执行之前我需要加载大约30个变量到解析器中。
更新2012/11/5
关于性能的更新。我们实现了nCalc近2年。自那以后,我们扩展了它的使用,使其平均覆盖300多个变量的40多个表达式进行后续处理。现在每秒发生数千次后续处理,而完全没有性能下降。
我们还扩展了它,包括一些额外的函数,也没有性能损失。简而言之,nCalc满足了我们的所有需求,并超出了我们的期望。