我正在使用Xtext为我的语言生成解析器。但是,在生成Java文件之后,出现了错误:“我的lexer类中的“静态初始化程序的代码超出了65535字节的限制” 。 我发现这是由于一个字符串数组长13k行。
代码是自动生成的,因此我无法真正控制该数组的使用方式。
我尝试将其移到一个单独的类中,但是Array本身对于65k的限制来说太大了。
package com.intercope.analysis1.parser.antlr.internal;
public class ExternalArrays {
static final String[] DFA28_transitionS = {" {
"\11\76\2\75\2\76\1\75\22\76\1\75\1\10\1\73\1\65\3\76\1\74\1\43\1\44\1\61\1\57\1\45\1\60\1\76\1\46\2\70\1\64\2\70\1\66\1\67\3\70\1\76\1\36\1\6\1\5\1\7\2\76\1\3\1\52\1\16\1\20\1\24\1\31\1\37\1\72\1\34\2\72\1\25\1\23\1\22\1\1\1\14\1\72\1\21\1\27\1\32\1\12\1\63\1\41\3\72\3\76\1\71\1\72\1\76\1\4\1\51\1\15\1\17\1\56\1\30\1\40\1\72\1\33\2\72\1\50\1\53\1\72\1\2\1\13\1\72\1\35\1\26\1\47\1\11\1\62\1\42\3\72\1\54\1\76\1\55\uff82\76",
"\1\103\2\uffff\1\101\1\uffff\1\77\1\102\3\uffff\1\100", ...};
}
由于这些值取决于我的词法分析器语法,因此无法使用函数生成它们。
任何有关如何解决此问题的建议都值得赞赏^^
编辑:数组摘录:
"\1\u0310\1\uffff\1\u0313\7\uffff\1\u0312\1\uffff\1\u030f\2\uffff\1\u0311",
"\1\u0314",
"\1\u0315",
"\1\u0316",
"\1\u0317",
"\1\u0318",
"\1\u0319",
"\12\104\7\uffff\32\104\4\uffff\1\104\1\uffff\32\104",
"\1\u031b",
"\12\104\7\uffff\32\104\4\uffff\1\104\1\uffff\32\104",
"\12\104\7\uffff\32\104\4\uffff\1\104\1\uffff\32\104",
"\1\u031e",
"\1\u031f",
"\1\u0320",
"\1\u0321",
"\1\u0322",
"\12\104\7\uffff\32\104\4\uffff\1\104\1\uffff\32\104",
"\1\u0324",
"\12\104\7\uffff\32\104\4\uffff\1\u0325\1\uffff\32\104",
"\12\104\7\uffff\32\104\4\uffff\1\104\1\uffff\32\104",
"\1\u0328",
"\1\u032c\1\uffff\1\u032b\12\uffff\1\u0329\2\uffff\1\u032a\1\uffff\1\u032d",
"\1\u032e",
"\1\u032f",
"\1\u0330",
"\1\u0331",
"\1\u0332",
"\1\u0333",
"\1\u0334",
"\1\u0335",
"\1\u0336",