Antlr解析的最大输入大小

时间:2013-10-24 14:51:42

标签: java antlr large-files

我有一个2.5 GB的文件,我试图用Java中的Antlr解析。首先我有一个内存不足的异常,所以我增加了最大堆大小。然后它失败了这个堆栈跟踪:

Exception in thread "AWT-EventQueue-0" java.lang.NegativeArraySizeException
    at java.util.Arrays.copyOf(Arrays.java:2882)
    at org.antlr.v4.runtime.ANTLRInputStream.load(ANTLRInputStream.java:123)
    at org.antlr.v4.runtime.ANTLRInputStream.<init>(ANTLRInputStream.java:86)
    at org.antlr.v4.runtime.ANTLRInputStream.<init>(ANTLRInputStream.java:78)
    at MyClass.runAntlr(MyClass.java)

我的猜测是某些索引变量溢出。

是否有可以处理任意大文件的输入流?或更大的文件ANTLRInputStream?

1 个答案:

答案 0 :(得分:1)

这很有趣。我前几天注意到了同样的事情。索引都是整数而不是整数。 Sam和我计划在某个时候整合一个修复程序;如果你看看分支,你现在可以玩它

https://github.com/parrt/antlr4/tree/long-intervals

泰尔