2012-12-14 3 views
2

가변적 인 템플릿 시퀀스를 인수에 적용해야합니다. 템플릿 secuence 컨트롤러 층 런타임에 결정되고, 이러한 템플릿은 같은 하나의 인자에 적용된다동적 템플릿 목록을 인수에 적용하십시오.

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

는 이력서, I는 인수로 템플릿 세리을 적용해야하지만,이 시퀀스는 런타임에서 계산 및 컨트롤러 레이어에서.

감사합니다.

답변

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

내 문제는 약간 다릅니다.() tpl1 : tpl2을() : ... : tplN()' 예 : I 출력이 목록에있는 템플릿 'myArg을 산출 스태킹, 지금 같은 인수 템플릿의 동적 목록을 적용해야합니다 우리는 텍스트 인수를 textArg에 넣습니다. 런타임에 적용 할 템플릿 목록을 계산하고 (** bold ** 및 _italic_), y를 굵게 표시하고 기울임 꼴 템플릿 이름을 목록에 넣고 StringTemplate을 기다립니다. 'textArg : bold() : italic()'과 같은 결과를 얻어야한다. 런타임 및 컨트롤러 계층에서 내 인수에 적용 할 템플릿 목록을 결정해야합니다. –

+0

Answer link is dead (404), 나는 이것이 해당 문서의 현재 링크라고 생각합니다 : https://github.com/antlr/stringtemplate4/blob/master/doc/templates.md – Kanmuri

관련 문제