Есть ли способ сделать вывод SWI Prolog на любой синтаксис или ошибки анализа? Я пишу тесты и запускаю их автоматически, и я не всегда замечаю сообщения об ошибках, если у меня есть синтаксические ошибки.Выход из всех ошибок в SWI Prolog
2
A
ответ
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.
Смежные вопросы
- 1. SWI-Prolog - аргументы ошибок не достаточно конкретизированные
- 2. Constraint - SWI-Prolog Queries
- 3. Структура SWI-PROLOG
- 4. "strptime" в SWI-Prolog
- 5. Пересечение в SWI-Prolog
- 6. Prolog Список SWI создание
- 7. SWI-Prolog Func пакет
- 8. SWI-Prolog, запись назад
- 9. SWI Prolog secure_loaded error
- 10. Loop in SWI-PROLOG
- 11. Раскрашенная выход в swipl выигрыше (SWI-Prolog) окно
- 12. SWI Prolog escape quotes
- 13. Swi Prolog Relation
- 14. Prolog (SWI): строка интерполяция
- 15. SWI Prolog - Упрощение выражений
- 16. Interprolog и SWI-Prolog
- 17. SWI-Prolog условные операторы
- 18. SWI-Prolog ошибка asserta
- 19. SWI-Prolog Puzzle
- 20. SWI Prolog - условный NOT?
- 21. SWI Prolog ODBC ошибка
- 22. SWI-Prolog: «false» где?
- 23. База данных SWI Prolog
- 24. Экспертная система в SWI Prolog
- 25. SWI-Prolog в swipl-окне
- 26. Понимание расщепления в Swi-prolog
- 27. программа SWI Prolog найти логарифм
- 28. Решатель уравнений в SWI-Prolog
- 29. Принудительные элементы в SWI-Prolog
- 30. SWI-Prolog - Сбой в Утверждают
Спасибо, это сработало для меня, с 'consult/1' и' sure_loaded/1'. Я счел нужным использовать ': - initialization (обеспечить_loaded (some_file)).' Вместо просто:: - sure_loaded (some_file) .', иначе hook не вызывался (SWI 7.2.3). Кроме того, в документах SWI для ['message_hook/3'] (http://www.swi-prolog.org/pldoc/doc_for?object=message_hook/3) говорится, что он должен быть определен как динамический, так и многоточечный. – tangle