StringTemplate組文件是存儲在單個文件中的模板的集合。 GitHub上的ANTLR項目包含很多示例;例如其中包含ANTLR 4.
你可以找到幾個例子中從StringTemplate的C#項目本身的StringTemplateTests.cs文件在C#中使用StringTemplate的3全部爲Java對象的代碼生成模板。這不是最友好的文檔,但它確實包含涵蓋各種ST3功能的示例。下面是使用StringTemplateGroup
一個例子:
string templates =
"group dork;" + newline +
"" + newline +
"test(name) ::= <<" +
"<(name)()>" + newline +
">>" + newline +
"first() ::= \"the first\"" + newline +
"second() ::= \"the second\"" + newline
;
StringTemplateGroup group =
new StringTemplateGroup(new StringReader(templates));
StringTemplate f = group.GetInstanceOf("test");
f.SetAttribute("name", "first");
string expecting = "the first";
Assert.AreEqual(expecting, f.ToString());
所以它更容易閱讀,模板組文件代碼到測試看起來像這樣沒有轉義字符。
group dork;
test(name) ::= <<<(name)()>
>>
first() ::= "the first"
second() ::= "the second"
太棒了,非常感謝你Sam。 ANTLR4和ST4只是令人驚歎的工作 - 我對ANTLR4上的「它只是起作用」的說法持懷疑態度,但錯誤恢復是不可思議的。再次感謝,保持良好的工作。 – 2013-05-10 06:36:50
PS,我沒有足夠的代表upvote,但如果我可以:( – 2013-05-10 06:37:32