【发布时间】:2011-12-13 19:28:01
【问题描述】:
我正在编写一个 DSL 用于在 groovy 中表达流(我知道的原创)。我想为用户提供编写在流程中某些点存储和评估的函数的能力。比如:
states {
"checkedState" {
onEnter {state->
//do some groovy things with state object
}
}
}
现在,我很确定我可以用引号括住闭包并存储它。但如果可能的话,我想在编辑这些 DSL 时保持语法高亮和内容辅助。我意识到闭包可以引用来自周围流定义的工件,当在不同的上下文中执行闭包时,这些工件将不再有效,我对此很好。实际上,我想将闭包语法用于非闭包函数定义。
tl;博士;我需要在评估 DSL 时获取闭包的代码,以便将其存储在数据库中并稍后由脚本宿主执行。
【问题讨论】:
标签: reflection groovy dsl