我们使用 Antlr StringTemplates 来控制实体名称的输出方式。
基本的字符串模板是
$FirstName$ $Initial$ $LastName$, $Suffix$, $Degree$
我想为该模板添加一些智能,以便仅在必要时输出逗号,即第一个逗号仅在有后缀或度数时输出,第二个逗号仅在有后缀时输出。
我尝试了以下模板字符串位它不起作用。我想我误解了
$FirstName$ $Initial$ $LastName$ <if(Suffix|Degree)>,<endif>, $Suffix$ <if(Suffix)>,<endif> $Degree$
如果它有助于我们使用这个 C# 处理模板
StringTemplate stringtemplate = new Antlr.StringTemplate.StringTemplate(template.Data);
foreach (Pair<string, string> pair in dictionary)
{
if (pair.First != null && pair.Second != null)
{
stringtemplate.SetAttribute(pair.First, pair.Second);
}
}
return stringtemplate.ToString();