Antlr StringTemplates を使用して、エンティティの名前の出力方法を制御します。
基本的な文字列テンプレートは
$FirstName$ $Initial$ $LastName$, $Suffix$, $Degree$
そのテンプレートにいくつかのスマートを追加して、必要な場合にのみコンマが出力されるようにします。つまり、最初のコンマはサフィックスまたは学位がある場合にのみ出力され、2 番目のコンマはサフィックスがある場合にのみ出力されます。
次のテンプレート文字列ビットを試してみましたが、うまくいきません。誤解していると思います
$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();