0

问题:

  • 我希望用户能够在文本编辑器中以简单的语法编写条件,例如:A?outcome1:(B?outcome2:outcome3)

A 和 B 是布尔条件。所以上面这句话的意思是:如果 A 为真,则结果 1,否则如果 B 为真,则结果 2,否则为结果 3。

在 Java 中,我实现了这种语法的解释器,以便 A、B、outcome1、outcome2、outcome3 被翻译成预先存储在某处的值(A 和 B 将是返回布尔值的函数,结果将是对象),并且评估条件并返回结果。

我的问题是,我在这里重新发明轮子吗?是否有 Java 包或库已经提供了“[受约束的] 自然语言解释为 Java 代码”类型的函数的简洁实现?

谢谢!

4

1 回答 1

0

我最终用 Java 编写了一个类,它读取人类编写的规则并对其进行解释。在这里找到它: https ://github.com/seinecle/Umigon/blob/master/src/java/RuleInterpreter/Interpreter.java

于 2013-01-02T11:48:28.603 回答