появилась такая проблема в 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
Как развивать веб-проекты в 2026 году: технологии, контент E-E-A-T и факторы доверия
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники