代码之家  ›  专栏  ›  技术社区  ›  jgre

在Antrl重写器语法的StringTemplate中使用$作为分隔符

  •  2
  • jgre  · 技术社区  · 16 年前

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

    当单独使用StringTemplate时,后者似乎是默认的,但由Antrl生成的解析器代码总是使用 AngleBracketTemplateLexer 初始化StringTemplate时。

    如何让Antlr使用 DefaultTemplateLexer (即使用美元作为分隔符的变量)?

    1 回复  |  直到 16 年前
        1
  •  3
  •   bruno conde    16 年前

    尝试设置 DefaultTemplateLexer.class 在 StringTemplateGroup 这样地:

    StringTemplateGroup group = new StringTemplateGroup(reader, 
                                                        DefaultTemplateLexer.class);
    
    推荐文章