2013-07-26 2 views
0

Я новичок в прологе. У меня есть файл .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

ответ

1

Попробуйте вместо этого:

assignopT(30246,30244,30210,30247,(+),30248). 

Пишет атом, такие как +, одинарных кавычки ничего не меняет, и ошибка, возможно, из-за свой статус оператора. Предположим, что это так, написав его между(), чтобы исправить возможный конфликт с пользователем при загрузке кода в tuProlog (не Turbo Prolog, я предполагаю!).

+0

Да, это tuProlog. Я сделал то, что вы сказали, но это не сработало. Запись + между() не устраняет проблему, та же ошибка все еще находится на той же строке. – York

+0

Если парсер tuProlog не соответствует официальным и де-факто стандартам Prolog, вам может потребоваться найти альтернативное представление для 5-го аргумента. Btw, использует ли версия tuProlog поддержку предикатов мультифилов? –

+0

Да, он поддерживает многомерные предикаты. Я нашел причину и исправил ее вчера. В файле .pl был символ utf-8. Значение символа utf-8 равно U + FFFF, а tuProlog останавливает синтаксический анализ, когда он встречает U + FFFF, что является причиной синтаксической ошибки в/до строки -1. Но swi-пролог может анализировать U + FFFF, который я до сих пор не понимаю. – York

Смежные вопросы