gpt4 book ai didi

java - 用 Java 创建自然 DSL 的最佳工具是什么?

转载 作者:太空狗 更新时间:2023-10-29 22:59:26 24 4
gpt4 key购买 nike

<分区>

几天前,我阅读了一篇博客文章 ( http://ayende.com/Blog/archive/2008/09/08/Implementing-generic-natural-language-DSL.aspx ),其中作者讨论了使用 .NET 的通用自然语言 DSL 解析器的想法。

在我看来,他的想法最精彩的部分是对文本进行解析并与使用与句子同名的类进行匹配。

以下面几行为例:

Create user user1 with email test@email.com and password testLog user1 inTake user1 to category t-shirtsMake user1 add item Flower T-Shirt to cartTake user1 to checkout

Would get converted using a collection of "known" objects, that takes the result of parsing. Some example objects would be (using Java for my example):

public class CreateUser {
private final String user;
private String email;
private String password;

public CreateUser(String user) {
this.user = user;
}

public void withEmail(String email) {
this.email = email;
}

public String andPassword(String password) {
this.password = password;
}
}

因此,在处理第一个句子时,CreateUser 类将是一个匹配项(显然是因为它是“create user”的串联),并且由于它在构造函数上采用一个参数,因此解析器会将“user1”作为用户参数。

之后,解析器将识别下一部分“with email”也匹配一个方法名称,并且由于该方法接受一个参数,它会将“test@email.com”解析为电子邮件参数。

我想你现在明白了吧?一个非常明确的应用,至少对我来说,是允许应用程序测试人员用自然语言创建“测试脚本”,然后将句子解析为使用 JUnit 检查应用程序行为的类。

我想听听有关可以使用 Java 编写此类解析器的工具或资源的想法、提示和意见。更好的是,如果我们可以避免使用复杂的词法分析器或 ANTLR 之类的框架,我认为这可能会使用锤子来杀死苍蝇。

不仅如此,如果有人准备为此启动一个开源项目,我肯定会感兴趣。

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com