什么';这个OCaml代码有什么问题?
这个代码怎么了什么';这个OCaml代码有什么问题?,ocaml,syntax-error,if-statement,Ocaml,Syntax Error,If Statement,这个代码怎么了 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.len
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
让虚拟机运行虚拟机=
让guard=ref为真
虽然卫道
如果vm.cur\u pc=-1&¬(Stack.empty vm.call\u Stack),那么vm\u pop\u ar vm
否则,如果vm.cur_pc=-1,则guard:=false
否则,如果vm.cur\u pc vm.cur_pc分号的优先级低于if-else,因此,当您需要在if
中包含由分号分隔的两个或多个语句块时,您需要将它们括在括号中或开始…结束
块中(两者等效):
else如果vm.cur\u pc vm.cur_pc分号的优先级低于if-else,因此,当您需要在if
中包含由分号分隔的两个或多个语句块时,您需要将它们括在括号中或开始…结束
块中(两者等效):
else如果vm.cur\u pc vm.cur_pc谢谢,这是一个困难的问题:)因此它试图在预期的结束之前解析if正文的结尾,找到未配对的else。。愚蠢的事。现在清楚了!谢谢,这是一个困难的问题:)因此它试图在预期的结束之前解析if正文的结尾,找到未配对的else。。愚蠢的事。现在清楚了!
else if vm.cur_pc < Array.length vm.cur_code then begin
execute vm Array.get vm.cur_code vm.cur_pc;
vm.cur_pc <- vm.cur_pc + 1
end
else vm_pop_ar vm