0
當我在ANTLR4遊覽源包(https://pragprog.com/titles/tpantlr2/source_code)中運行InsertSerialID.java或ExtractInterfaceTool.java時,我發現輸出中未包含所有空格和註釋。所以輸出源代碼不能編譯或讀取。如何保持他們?保留空格並在ANTLR4中註釋
當我在ANTLR4遊覽源包(https://pragprog.com/titles/tpantlr2/source_code)中運行InsertSerialID.java或ExtractInterfaceTool.java時,我發現輸出中未包含所有空格和註釋。所以輸出源代碼不能編譯或讀取。如何保持他們?保留空格並在ANTLR4中註釋
嗯,我發現重定向到一個額外的通道將讓他們在Token
,而不是使用skip
WS : [ \t\r\n\u000C]+ -> channel(2) // -> skip
;
COMMENT
: '/*' .*? '*/' -> channel(2) // -> skip
;
LINE_COMMENT
: '//' ~[\r\n]* -> channel(2) // -> skip
;
它們保存在ParserRuleContext.getSourceInterval()
爲Interval
,雖然我不知道如何映射到Interval
thier語法類型。