有没有办法让SWI Prolog退出任何语法或解析错误?我正在编写测试并自动运行它们,如果我有语法错误,我也不会总是注意到错误消息。
答案 0 :(得分:2)
假设您的意思是源文件编译错误,load_files/2
谓词错过了在第一个错误时停止的选项。可能的解决方案是在语法错误的情况下定义message_hook/3
谓词以调用abort/0
或halt/1
。类似的东西:
:- multifile user:message_hook/3.
user:message_hook(syntax_error(Culprit), _, _) :-
% maybe print Culprit for some debugging information
abort.