使用C#解析并执行公式

Dea*_*unt 11 c# parsing

我正在寻找一个开源库来解析和执行C#中的公式/函数.

我想创建一组从接口派生的对象(即IFormulaEntity),它具有属性/方法/值,并允许用户为这些对象指定公式.

例如,我可能有

public class Employee : IForumulaEntity
{ 
      public double Salary { get; set; }
      public void SendMessage(string message)
}
Run Code Online (Sandbox Code Playgroud)

然后允许应用程序用户写一些类似的东西;

Employee person = <get from datasource>
if (person.Salary > 1000)
    person.Salary += 1000;

person.SendMessage("Hello");
Run Code Online (Sandbox Code Playgroud)

这"看起来像C#",但它将是一种简化的编程语言.我知道这很有问题.我希望我的用户能够合理(即可以编写自己的Excel公式).

cod*_*zen 6

我使用过ANTLR,FSLEX/FSYACC和Managed Babel.所有人都按照你的要求行事,虽然所有人都是免费的,但只有第一个是开源的.

Antlr:http://antlr.org/

FSLEX:http://www.strangelights.com/fsharp/wiki/default.aspx/FSharpWiki/fslex.html

Managed Babel:http://msdn.microsoft.com/en-us/library/bb165963.aspx


Joh*_*ers 6

查看属于Windows Workflow Foundation的规则引擎功能.

这不是一个人们会想到的地方.但是,作为他们为生成允许Workflow开发人员使用可配置规则和表达式的UI所做的工作的一部分,他们已经想出了一种在自己的应用程序中执行相同操作的方法,即使您没有使用Workflow也是如此一点都不 他们的文档包括在Windows窗体应用程序中托管此功能的示例.