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

时间:2012-01-21 18:57:48

标签: java rules text-parsing

说我有一个非常基本的规则,如下面的那个

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

我需要使用Java来评估它。进行这些解析的最佳方法是什么?使用正则表达式可能非常困难并且很难维护正确吗?

有人可以建议一种方法吗?如果您需要任何进一步的信息,请与我们联系。

2 个答案:

答案 0 :(得分:1)

如果您的语法是常规的,则可以使用正则表达式。如果不是,则需要使用更复杂的工具,例如Lexers和Parsers:AntlrYacc/Lex/Bison

如果您对语言设计了解不多,建议您在潜水前阅读book

答案 1 :(得分:1)

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