在C#应用中,我希望用户能够以这种格式输入搜索条件:
(Name = 'Fred' OR Name = 'Jim') AND Age > 30
我需要的是一些解析输入的方法,以便我可以根据标准测试潜在的搜索匹配。我在Malcolm Crowe's compiler tools for .NET年前做过实验,但我想知道在DSL和表达树的这些日子里我是否应该注意新的东西。解决这个问题的最佳方法是什么?
答案 0 :(得分:3)
我最近一直在关注Irony。它几乎压倒了你所需要的东西,但它确实属于“我应该注意的新东西”类别。
Here's an example,使用反讽,似乎做了你需要的东西(虽然注册需要注册)。
答案 1 :(得分:1)
如果您的标准语法符合搜索条件,您可以使用的另一个工具是MGrammer,它有几个可用于帮助构建解析的工具。 Scott Hanselman's Blog信息的良好链接。还有一些如何使用它的示例视频。