Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
什么';这个OCaml代码有什么问题?_Ocaml_Syntax Error_If Statement - Fatal编程技术网

什么';这个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 pcvm.cur_pc分号的优先级低于if-else,因此,当您需要在
if
中包含由分号分隔的两个或多个语句块时,您需要将它们括在括号中或
开始…结束
块中(两者等效):

else如果vm.cur\u pcvm.cur_pc分号的优先级低于if-else,因此,当您需要在
if
中包含由分号分隔的两个或多个语句块时,您需要将它们括在括号中或
开始…结束
块中(两者等效):

else如果vm.cur\u pcvm.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