在ANTLR4中保留空格和注释

在ANTLR4中保留空格和注释,antlr4,Antlr4,当我在ANTLR4 tour源代码包中运行InsertSerialID.java或ExtractInterfaceTool.java时,我发现输出中不包含所有空白和注释。因此,输出源代码无法编译或可读。如何保存它们?我发现重定向到一个额外的通道会将它们保存在令牌中,而不是使用skip 它们以Interval的形式保存在ParserRuleContext.getSourceInterval中,尽管我不知道如何将Interval映射到它们的语法类型 WS : [ \t\r\n\u000C]+

当我在ANTLR4 tour源代码包中运行InsertSerialID.java或ExtractInterfaceTool.java时,我发现输出中不包含所有空白和注释。因此,输出源代码无法编译或可读。如何保存它们?

我发现重定向到一个额外的通道会将它们保存在令牌中,而不是使用skip

它们以Interval的形式保存在ParserRuleContext.getSourceInterval中,尽管我不知道如何将Interval映射到它们的语法类型

WS  :  [ \t\r\n\u000C]+  -> channel(2) // -> skip
    ;

COMMENT
    :   '/*' .*? '*/'  -> channel(2) // -> skip
    ;

LINE_COMMENT
    :   '//' ~[\r\n]* -> channel(2) // -> skip
    ;