Что не так с этим кодом?Что случилось с этим кодом OCaml?
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).
Я думаю, что это что-то маленькое, но не имеют никаких ключей, в соответствии со спецификацией синтаксиса должно быть нормально
Спасибо, что было трудным :) Так он пытался разобрать окончание, если тела до намеченного конца найти «чужое» неспаренное ... глупое дело. Теперь это понятно! – Jack