我正在尝试编写一个使用 StringTemplate 生成 HTML 输出的 ANTLR3 语法。为了避免必须转义模板规则中的所有 HTML 标记(例如 \<p\><variable>\</p\>
),我更愿意使用美元作为 StringTemplate 的分隔符(例如 <p>$variable$</p>
)。
虽然后者似乎是单独使用 StringTemplate 时的默认值,但 ANTRL 生成的解析器代码始终使用 AngleBracketTemplateLexer
初始化 StringTemplate 时。
如何让 ANTLR 使用 DefaultTemplateLexer
生成代码(即使用美元作为分隔符的变体)?
最佳答案
尝试在 StringTemplateGroup
中设置 DefaultTemplateLexer.class
,如下所示:
StringTemplateGroup group = new StringTemplateGroup(reader,
DefaultTemplateLexer.class);
关于antlr - 在 ANTRL 重写器语法的 StringTemplate 中使用 $ 作为分隔符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2202987/