退出SWI Prolog中的所有错误

时间:2016-11-27 03:33:01

标签: prolog swi-prolog

有没有办法让SWI Prolog退出任何语法或解析错误?我正在编写测试并自动运行它们,如果我有语法错误,我也不会总是注意到错误消息。

1 个答案:

答案 0 :(得分:2)

假设您的意思是源文件编译错误,load_files/2谓词错过了在第一个错误时停止的选项。可能的解决方案是在语法错误的情况下定义message_hook/3谓词以调用abort/0halt/1。类似的东西:

:- multifile user:message_hook/3.

user:message_hook(syntax_error(Culprit), _, _) :-
    % maybe print Culprit for some debugging information
    abort.