贾斯敏(Jasmin)为iastore错误积算引发错误

时间:2018-11-28 16:51:45

标签: java compiler-construction jvm jasmin

我目前正在为给定语言编写一个应编译为Java虚拟机的编译器。

我目前正在使用数组,并且使用我的语言编写的以下代码遇到了以下问题

package foo
func main() {
    var i int[2];
    i[0] = 5;
}

当前正在编译为

.class  public  test
.super  java/lang/Object
.method  public static  main([Ljava/lang/String;)V
ldc 2
newarray    int
astore  0
aload   0
ldc 0
ldc 5
iastore 0
return
.limit  locals  2    ;over estimate
.limit  stack  20    ;over estimate
.end    method

然后抛出以下错误

test.j:11: JAS Error Bad arguments for instruction iastore.
    r
     ^

现在累积到https://cs.au.dk/~mis/dOvs/jvmspec/ref--20.html的堆栈应该看起来像

|  value  |
|  index  | 
|array ref|
 _________

我做了什么,所以我的问题是这个错误指的是什么?

0 个答案:

没有答案