В настоящее время я пишу компилятор для данного языка, который должен компилироваться в виртуальную машину 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|
_________
Что я и сделал, поэтому мой вопрос: к чему относится эта ошибка?