我需要一个具有一些已知结构和许多仅在运行时结构中已知的DSL。
例如:
test "name goes here"{
description : """ description """
create user {
id : 1
fn : """ x """
ln : """ y """
}
assert user.name == "x"
delete user {
id = 1
}
user1 = GET user (1)
assert user1 == null
}
在上面的代码段中,关键字test
,create
,GET
,delete
等在DSL /工具的开发过程中是已知的。但是,当用户在create
之后调用内容辅助时。我想下载一些模式文件(相反,我会下载模式作为我处理的第一步并缓存模式)并提供实体,其中用户是其中一个实体。
当用户调用属性的内容辅助时,我再次查看实体定义并提供fn
,ln
等作为可能的条目。
这对Groovy和GDSL有用吗? 谢谢