我正在寻找一个可以对查询过滤器进行操作的解析器。然而,我不太清楚这些术语,所以事实证明这是一项艰苦的工作。我希望有人能帮助我。我读过有关“递归下降解析器”的内容,但我想知道这些是否适用于成熟的语言解析器,而不是我正在寻找的逻辑表达式评估。
理想情况下,我正在寻找 .NET 代码 (C#),但也在寻找可在 T-SQL 中工作的类似解析器。
我想要的是要解析的东西,例如:
((a=b)|(e=1))&(c
理想情况下,运算符可以是可定义的(例如 '
最好是解析器询问最少数量的问题来计算出最终结果 - 例如如果 AND 的一侧为假,则没有必要评估另一侧,并首先评估最简单的一侧(即在上面的表达式中,应假定 'c
我可以想象这需要做很多工作,但是却很常见。谁能给我任何指示吗?如果没有像上面那样灵活的解析器,是否有任何基本解析器可以作为开始使用?
非常感谢
Lee
看一眼this http://www.codeproject.com/KB/recipes/sota_expression_evaluator.aspx。 ANTLR 是一个很好的解析器生成器,链接到的文章有工作代码,您可以根据您的需要进行调整。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)