Я новичок в Gerrit и Prolog, и мне трудно создать мое правило. С помощью rules.pl, который у меня есть, он останавливается, когда я пытаюсь открыть окно Gerrit после запуска команды push.Gerrit Prolog Rule - Требовать определенный тип файла
Я хотел бы сделать правило, что при каждом нажатии на удаленный компьютер должен присутствовать файл .txt в списке измененных файлов. Я видел подобное правило в поваренной книге Prolog, но мое еще не совсем правильно. Вот то, что я в настоящее время (внесли некоторые изменения в последнем 24 часов):
submit_rule(S) :-
gerrit:default_submit(X),
X = .. [submit | Ls],
my_rule(Ls,R),
S = .. [submit | R].
my_rule(S1,T) :-
gerrit:commit_delta('\\.txt$),
T = label('Text-File-Must-Be-Present',ok(T)).
my_rule(S1,[label('Text-File-Must-Be-Present',need(_)) | S1]).
Я думаю, что я до сих пор не хватает что-то в my_rule. Я должен быть уверен, что commit_delta вернулась. Если нет, тогда он должен вернуть false и заблокировать нажатие на дистанционное репо. Нужно ли мне нечто подобное?
gerrit:commit_delta('\\.txt$),
T \= false, !,
T = label('Text-File-Must-Be-Present',ok(T)).
для возврата в случае, если возвращается ложное сообщение? Еще раз спасибо!
Спасибо за ваши комментарии. Я обновил оригинальный пост с некоторыми изменениями, которые предложил знакомый Пролог. Однако я не понимаю ваш первый комментарий. Разве запятая не говорит, чтобы продолжить проверку? – tennis
нет, запятая - разделитель аргументов - оператор «и» (при использовании в предикате) - разделитель элементов списка. Я не могу вспомнить другое использование ... – CapelliC