我需要一个 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 可行吗?谢谢你