появилась такая проблема в Java, есть метод FunctionCall:
public void FunctionCall(Interpreter interpreter) {
JObject callable = stack.pop();
int argc = stack.pop().toInt();
callable.call(interpreter,argc);
}
Не смотря на то что я его не вызывал мне выдает данную ошибку:
Exception in thread "main" java.util.EmptyStackException
at java.base/java.util.Stack.peek(Stack.java:102)
at java.base/java.util.Stack.pop(Stack.java:84)
at learn.Frame.FunctionCall(Frame.java:127)
at learn.Frame.execute(Frame.java:112)
at learn.Interpreter.run_frame(Interpreter.java:17)
at learn.primitives.Function.call(Function.java:24)
at learn.Main.main(Main.java:26)
А так выглядит сам класс Frame: https://pastebin.com/pp7UA3Mj С чем связана данная проблема?
Проблема у вас здесь
switch ((int) code[pc]) {
........
case Instruction.BRET:
ret = new Bool(stack.pop().toBool());
case Instruction.RET:
System.out.println(stack.get(0));
ret = stack.pop();
case Instruction.CALL:
FunctionCall(interpreter);
pc++;
continue;
Т.к. после условий Instruction.BRET
, Instruction.RET
нет команд выхода из switch
то начинают выполняться последующие case
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Виртуальный выделенный сервер (VDS) становится отличным выбором
Регистрирую в приложении нового пользователяЕму присваивается id
Имеется БД, в которой лежат книгиКонтент книги в базе записан в типе blob