Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/382.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 方法SpecialStateTransformation(int,IntStream)的代码超过65535字节_Java_Antlr - Fatal编程技术网

Java 方法SpecialStateTransformation(int,IntStream)的代码超过65535字节

Java 方法SpecialStateTransformation(int,IntStream)的代码超过65535字节,java,antlr,Java,Antlr,我有一个相当大的语法,我不想把它分成多个小语法。但生成的Lexer文件出现以下错误: The code of method specialStateTransition(int, IntStream) is exceeding the 65535 bytes 我正在使用ANTLR-3.2。请告诉我如何删除此编译器错误 谢谢 Preeti你不能:你必须重构你的代码。这种限制是Java类文件固有的 发件人: 每个非本机、非抽象方法的代码量限制为 65536字节,由 代码属性(§4.7.3),在Li

我有一个相当大的语法,我不想把它分成多个小语法。但生成的Lexer文件出现以下错误:

The code of method specialStateTransition(int, IntStream) is exceeding the 65535 bytes
我正在使用ANTLR-3.2。请告诉我如何删除此编译器错误

谢谢


Preeti

你不能:你必须重构你的代码。这种限制是Java类文件固有的

发件人:

每个非本机、非抽象方法的代码量限制为 65536字节,由 代码属性(§4.7.3),在LineNumberTable属性(§4.7.8)中, 以及LocalVariableTable属性(§4.7.9)


我最近也遇到了同样的问题,通过更改Antlr代码生成工具的选项,我成功地解决了这个问题

C: java org.antlr.Tool –Xmaxinlinedfastates [a number less than 60] grammar.g

使用此选项会强制代码生成器创建DFA状态表,而不是许多嵌套的
语句,前提是不总是生成方法
specialstatetransformation
。它可能与一些与其他令牌共享公共前缀的令牌有关

有关
specialstatetransformation
通过重新格式化一个这样的标记而完全消失的情况,请参阅