我们如何使用Java解释一般规则?

我们如何使用Java解释一般规则?,java,rules,text-parsing,Java,Rules,Text Parsing,假设我有一个非常基本的规则,如下所示 if a<b then set a=25 else set a=-25 如果a如果语法是正则的,则可以使用正则表达式。如果不是,您需要使用更复杂的工具,如lexer和parser:即or 如果你对语言设计知之甚少,我建议你在深入研究之前阅读一篇关于这个主题的文章。根据你对规则语法的调整程度,你可以使用Groovy或JRuby;他们都非常擅长实现紧密集成的DSL。在实现外部DSL之前,我会认真考虑这种方法,尽管Antlr使它变得非常简单。您是在尝试

假设我有一个非常基本的规则,如下所示

if a<b
  then set a=25
else set a=-25

如果a如果语法是正则的,则可以使用正则表达式。如果不是,您需要使用更复杂的工具,如lexer和parser:即or


如果你对语言设计知之甚少,我建议你在深入研究之前阅读一篇关于这个主题的文章。

根据你对规则语法的调整程度,你可以使用Groovy或JRuby;他们都非常擅长实现紧密集成的DSL。在实现外部DSL之前,我会认真考虑这种方法,尽管Antlr使它变得非常简单。

您是在尝试为您的语言创建语法检查器,还是在尝试实现什么?我看到了词法分析器的Java实现—JavaCC。它会把规则编译成Java表示吗?谢谢你回复David。我不会那么复杂的。那么正则表达式是最好的方法吗?@Apps,正则表达式用于匹配给定预定义模式的特定文本。如果您想解释语言(对其进行评估),那么不管目标语言是否为正则语言,regex都不是最佳选择。