我们想要设计一种简单的领域特定语言来编写测试脚本,以自动测试我们的一个应用程序的基于 XML 的界面。示例测试将是:
- 从网络共享文件夹或 subversion 存储库获取输入 XML 文件
- 使用接口(interface)导入XML文件
- 检查导入结果消息是否成功
- 使用接口(interface)导出刚刚导入的对象对应的XML,并检查是否正确。
如果领域特定语言可以是声明性的,并且它的语句看起来尽可能接近我在上面示例中的句子,那将是非常棒的,因为人们不一定非得是程序员才能理解/编写/维护测试。像这样的东西:
newObject = GET FILE "http://svn/repos/template1.xml"
reponseMessage = IMPORT newObject
newObjectID = GET PROPERTY '/object/id/' FROM responseMessage
(..)
但是我不确定如何在 Java 中为该语言实现一个简单的解析器。回到学校,10 年前,我使用 Lex 编写了一个语言解析器。和 Yacc对于C语言。也许一种方法是对 Java 使用一些等价物?
或者,我可以放弃使用声明性语言的想法,而选择基于 XML 的语言,这可能更容易为其创建解析器?你会推荐什么方法?
最佳答案
关于java - 在 Java 中为领域特定语言编写解析器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2400901/