Я новичок в прологе. У меня есть файл .pl, обычно консультирующийся по swi-proog, но когда я консультирую его по tu-proog, сумасшедшие вещи всегда случаются. Вот часть моих кодов.Ошибка синтаксиса tuprolog.Syntax error at/before line -1
:- dynamic(assignopT/6).
:- multifile(assignopT/6).
assignopT(30246,30244,30210,30247,+,30248).
Когда я консультировался его на том-Прологе, он говорит, ошибка синтаксиса в/перед строкой 12219, которая является третьей строкой выше. Он работает правильно на swi-прологе. Тогда я подумал, может быть, что-то не так с +, поэтому я изменил его на это.
assignopT(30246,30244,30210,30247,'+',30248).
На этот раз указанная синтаксическая ошибка в/до строки -1. Я действительно не понимаю, какую строку -1 можно даже предположить. .pl имени swi2tu.pl на https://drive.google.com/folderview?id=0B4KCEwRVmr_yWjQwOEp3LWpYdk0&usp=sharing
Да, это tuProlog. Я сделал то, что вы сказали, но это не сработало. Запись + между() не устраняет проблему, та же ошибка все еще находится на той же строке. – York
Если парсер tuProlog не соответствует официальным и де-факто стандартам Prolog, вам может потребоваться найти альтернативное представление для 5-го аргумента. Btw, использует ли версия tuProlog поддержку предикатов мультифилов? –
Да, он поддерживает многомерные предикаты. Я нашел причину и исправил ее вчера. В файле .pl был символ utf-8. Значение символа utf-8 равно U + FFFF, а tuProlog останавливает синтаксический анализ, когда он встречает U + FFFF, что является причиной синтаксической ошибки в/до строки -1. Но swi-пролог может анализировать U + FFFF, который я до сих пор не понимаю. – York