Antlr4 从自己的类继承,而不是从XMLParserRuleContext继承

Antlr4 从自己的类继承,而不是从XMLParserRuleContext继承,antlr4,Antlr4,我正在使用“访问者”模式从解析的代码生成XML。在典型的上下文中,类如下所示: public static class On_dtmContext extends ParserRuleContext { public List<FieldContext> field() { return getRuleContexts(FieldContext.class); } public TerminalNode ON() { return getTok

我正在使用“访问者”模式从解析的代码生成XML。在典型的上下文中,类如下所示:

public static class On_dtmContext extends ParserRuleContext {
    public List<FieldContext> field() {
        return getRuleContexts(FieldContext.class);
    }
    public TerminalNode ON() { return getToken(SRC_REP_SCREENParser.ON, 0); }
    public On_dtm_headerContext on_dtm_header() {
        return getRuleContext(On_dtm_headerContext.class,0);
    }
.....
}
\u dtmContext上的公共静态类扩展了ParserRuleContext{ 公共列表字段(){ 返回getRuleContexts(FieldContext.class); } 上的公共终端节点({return getToken(SRC_REP_SCREENParser.ON,0);} 标题上的公共内容标题上的上下文(){ 返回getRuleContext(在\u dtm\u headerContext.class上,0); } ..... } 我使用RuleContext的“getText”成员函数访问访问者回调函数中的元素。 我想编写一个从“ParserRuleContext”继承并重载“getText”的类,以便用xml转义序列替换像“”这样的字符。是否有一种方法可以生成代码并从类继承上下文类,如下所示:

public static class On_dtmContext extends XMLParserRuleContext {
    public List<FieldContext> field() {
        return getRuleContexts(FieldContext.class);
    }
    public TerminalNode ON() { return getToken(SRC_REP_SCREENParser.ON, 0); }
    public On_dtm_headerContext on_dtm_header() {
        return getRuleContext(On_dtm_headerContext.class,0);
    }
.....
}
\u dtmContext上的公共静态类扩展了xmlparserulecontext{ 公共列表字段(){ 返回getRuleContexts(FieldContext.class); } 上的公共终端节点({return getToken(SRC_REP_SCREENParser.ON,0);} 标题上的公共内容标题上的上下文(){ 返回getRuleContext(在\u dtm\u headerContext.class上,0); } ..... } 谢谢你的帮助!
您好,wolf

您是否有理由尝试扩展该类,而不是在语法中创建解析器规则来捕获
,以便在发生时进行翻译

解析器规则类似于:

lessThan
    : '<'
    ;

greaterThan
    : '>'
    ;
lessThan
: ''
;
在这一点上,你会有特定的访客为每一个这些条款,并可以翻译他们,因为你会