2012-12-14 35 views
2

我需要將變量序列的模板應用於參數。模板secuence是在控制器層運行時確定的,並且這些模板被應用到只有一個參數,如:將模板的動態列表應用於參數

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

在簡歷,我需要的模板的系列應用到的參數,但該序列在運行時計算並在控制器層。

謝謝!

回答

2

您需要同時迭代模板名稱和參數列表。從文檔,http://www.antlr.org/wiki/display/ST4/Templates,你會發現這個例子:

<names,phones:{ n,p | <n>: <p>}> 

在你的情況,你需要像

<names,values:{ n,v | <(n)(v)>}> 

哦,按你的意見,適用的模板,另一個列表清單要求一個嵌套的地圖 - 我認爲適用。

<values:{v | <names:{n | <(n)(v)>}}> 

將名稱中名稱命名的每個模板應用於值中的每個值。

+0

我的問題有點不同。我需要將以前的模板動態列表應用於相同的參數,將列表模板的輸出結果堆疊在列表上。 例如: 在我的參數textArg中有一行文本,現在,我們在運行時計算要應用的模板列表(** bold **和_italic_),y將粗體和斜體模板名稱放入列表中,然後等待StringTemplate應該產生像'textArg:bold():italic()'這樣的結果。 我需要在運行時和控制器層確定適用於我的參數的模板列表。 –

+0

答案鏈接已死(404),我相信這是該文檔的當前鏈接:https://github.com/antlr/stringtemplate4/blob/master/doc/templates.md – Kanmuri

相關問題