我需要将我编写的简单规则转换为 .net 程序集。这些规则的语法非常简单。它是一组具有以下结构的 if-then 语句:
if <conditions> then <return-string>
我已经制作了一个程序来完成必要的工作,但是由于条件可能会变得复杂并且添加/删除新操作,因此建议我使用 antlr。
在解析输入规则文本后,我通常使用 System.CodeDom 来创建等效的 c# 代码。我通过在我的解析器程序中维护某种状态来做到这一点,通过它我可以识别令牌是变量、关键字、操作或数据,并形成正确的 CodeExpression 对象。
我看过一些 antlr 教程,但它们都显示了解析器的实现。那是我想要的吗?还是一个简单的词法分析器?
如果它是词法分析器,我必须使用什么框架。我必须在我的 c# 程序中做什么来处理那些解析器状态,就像我之前做的那样......?