我正在尝试编写一个使用StringTemplate生成HTML输出的ANTLR3语法。为了避免必须转义模板规则中的所有HTML标记(例如\<p\><variable>\</p\>
),我更倾向于使用dollar作为StringTemplate的分隔符(例如<p>$variable$</p>
)。
虽然后者在使用StringTemplate时似乎是默认值,但ANTRL生成的解析器代码在初始化StringTemplate时始终使用AngleBracketTemplateLexer
。
如何让ANTLR使用DefaultTemplateLexer
生成代码(即使用美元作为分隔符的变体)?
答案 0 :(得分:3)
尝试设置DefaultTemplateLexer.class
中的StringTemplateGroup
,如下所示:
StringTemplateGroup group = new StringTemplateGroup(reader,
DefaultTemplateLexer.class);