2010-02-04 28 views
2

我正在尝试编写使用StringTemplate生成HTML输出的ANTLR3语法。为避免必须转义模板规则中的所有HTML标记(例如\<p\><variable>\</p\>),我希望使用dollar作为StringTemplate的分隔符(例如<p>$variable$</p>)。

虽然后者似乎是默认使用StringTemplate的时候,ANTRL生成的解析器代码在初始化StringTemplate时总是使用AngleBracketTemplateLexer

我该如何让ANTLR使用DefaultTemplateLexer(即使用dollar作为分隔符的变体)生成代码?

回答

3

尝试在StringTemplateGroup这样设置DefaultTemplateLexer.class

StringTemplateGroup group = new StringTemplateGroup(reader, 
                DefaultTemplateLexer.class);