Antlr4能够记忆化tokens,也称为token memoization。默认情况下,Antlr4不启用token memoization,但可以通过以下方式启用:
@parser::members { TokenStreamRewriter rewriter; }
parser.getTokenStream().mark();
parser.myRule(); rewriter.getTokenStream().release(ParserRuleContext.EMPTY);
注意:token memoization会使用额外的内存来存储tokens,因此在处理大规模文本时应该格外小心。