在 ANTRL 重写器语法的 StringTemplate 中使用 $ 作为分隔符
我正在尝试编写一个使用 StringTemplate 生成 HTML 输出的 ANTLR3 语法。为了避免必须转义模板规则中的所有 HTML 标记(例如 $variable$\
),我更喜欢使用美元作为 StringTemplate 的分隔符(例如
)。
虽然后者似乎是单独使用 StringTemplate 时的默认设置,但 ANTRL 生成的解析器代码在初始化 StringTemplate 时始终使用 AngleBracketTemplateLexer
。
如何让 ANTLR 使用 DefaultTemplateLexer
生成代码(即使用美元作为分隔符的变体)?
I'm trying to write an ANTLR3 grammar that generates HTML output using StringTemplate. To avoid having to escape all the HTML tags in the template rules (e.g. \<p\><variable>\</p\>
), I'd prefer to use dollar as the delimiter for StringTemplate (e.g. <p>$variable$</p>
).
While the latter seems to be the default when StringTemplate is used on its own, the parser code generated by ANTRL always uses AngleBracketTemplateLexer
when initializing StringTemplate.
How can I get ANTLR to generate code using DefaultTemplateLexer
(i.e. the variant that uses dollar as the delimiter)?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
尝试在
StringTemplateGroup
中设置DefaultTemplateLexer.class
,如下所示:Try setting the
DefaultTemplateLexer.class
in theStringTemplateGroup
like this: