ANTLR-如何丢弃免费令牌以解析大型文件

问题描述

我正在尝试使用ANTLR解析大文件(200MB),并且遇到了Serios内存问题。是否可以释放收集到的一些令牌,以使我能够解析大型文件?我只对解析感兴趣(对于语法检查器),我真的不需要令牌,但是我怀疑它们是内存使用者。

解决方法

有一个名为setBuildParseTree的解析器方法,可跳过构建上下文等操作。

Parser tp = new <ConcreteLanguageParser>(tokenstream);
tp.setBuildParseTree(false);

它将减少消耗。

此外,还有一个鹿角叉,它的内存使用量较低: https://github.com/tunnelvisionlabs/antlr4/