2

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

AngleBracketTemplateLexer虽然后者在单独使用 StringTemplate 时似乎是默认设置,但初始化 StringTemplate 时始终使用 ANTRL 生成的解析器代码。

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

4

1 回答 1

3

尝试DefaultTemplateLexer.classStringTemplateGroup这样设置:

StringTemplateGroup group = new StringTemplateGroup(reader, 
                                                    DefaultTemplateLexer.class);
于 2010-02-11T11:08:22.920 回答