【发布时间】:2012-12-14 11:57:41
【问题描述】:
我需要将可变的模板序列应用于参数。模板安全性在控制器层的运行时确定,这些模板仅应用于一个参数,例如:
arg:tpl1():tpl2():...:tplN()
在简历中,我需要将一系列模板应用于参数,但此序列是在运行时和控制器层中计算的。
谢谢!!
【问题讨论】:
标签: stringtemplate stringtemplate-4
我需要将可变的模板序列应用于参数。模板安全性在控制器层的运行时确定,这些模板仅应用于一个参数,例如:
arg:tpl1():tpl2():...:tplN()
在简历中,我需要将一系列模板应用于参数,但此序列是在运行时和控制器层中计算的。
谢谢!!
【问题讨论】:
标签: stringtemplate stringtemplate-4
您需要同时迭代模板名称和参数列表。从文档http://www.antlr.org/wiki/display/ST4/Templates 中,您将找到以下示例:
<names,phones:{ n,p | <n>: <p>}>
在你的情况下,你需要类似的东西
<names,values:{ n,v | <(n)(v)>}>
哦,根据您的评论,我认为要将模板列表应用于另一个列表需要嵌套的 map-apply。
<values:{v | <names:{n | <(n)(v)>}}>
这会将名称中命名的每个模板应用于值中的每个值。
【讨论】:
myArg:tpl1():tpl2():...:tplN() 示例:我们在我的参数 textArg 中有一行文本,现在,在运行时我们计算列表要应用的模板(bold 和 italic),将粗体和斜体模板名称放在列表中,我等待 StringTemplate 应该产生类似 textArg:bold():italic() 的结果。我需要在运行时和控制器层中确定要应用于我的参数的模板列表。