Что не так с этим кодом?
let vm_run vm =
let guard = ref true in
while !guard do
if vm.cur_pc = -1 && not (Stack.empty vm.call_stack) then vm_pop_ar vm
else if vm.cur_pc = -1 then guard := false
else if vm.cur_pc < Array.length vm.cur_code then
execute vm Array.get vm.cur_code vm.cur_pc;
vm.cur_pc <- vm.cur_pc + 1
else vm_pop_ar vm
done
Ошибка Error: Syntax error
связана с последним ключевым словом else
.
Я достиг полной уверенности в OCaml, но цепочка if / else все еще доставляет мне некоторые проблемы ... это не первый раз (в последний раз я использовал поток, чтобы избежать использования ключевого слова else).
Я думаю, что это что-то маленькое, но не имеет никаких подсказок, согласно спецификации синтаксиса все должно быть в порядке