【问题标题】:Apply dynamic list of templates to an argument将模板的动态列表应用于参数
【发布时间】:2012-12-14 11:57:41
【问题描述】:

我需要将可变的模板序列应用于参数。模板安全性在控制器层的运行时确定,这些模板仅应用于一个参数,例如:

arg:tpl1():tpl2():...:tplN()

在简历中,我需要将一系列模板应用于参数,但此序列是在运行时和控制器层中计算的。

谢谢!!

【问题讨论】:

    标签: stringtemplate stringtemplate-4


    【解决方案1】:

    您需要同时迭代模板名称和参数列表。从文档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 中有一行文本,现在,在运行时我们计算列表要应用的模板(bolditalic),将粗体和斜体模板名称放在列表中,我等待 StringTemplate 应该产生类似 textArg:bold():italic() 的结果。我需要在运行时和控制器层中确定要应用于我的参数的模板列表。
    • 答案链接已失效 (404),我相信这是该文档的当前链接:github.com/antlr/stringtemplate4/blob/master/doc/templates.md
    猜你喜欢
    • 2011-12-06
    • 2019-09-03
    • 2012-12-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-08
    相关资源
    最近更新 更多