0
我是序言新手。我有一个通常在swi-prolog上咨询的.pl文件,但是当我在tu-prolog上咨询它时,总会发生疯狂的事情。这里是我的代码的一部分。tuprolog语法错误。在/行-1之前的语法错误
:- dynamic(assignopT/6).
:- multifile(assignopT/6).
assignopT(30246,30244,30210,30247,+,30248).
当我咨询它TU-序言,它表示语法错误在/线12219,这是上面第三行之前。它在swi-prolog上运行正常。然后我想可能是+有问题,所以我改变了它。
assignopT(30246,30244,30210,30247,'+',30248).
这一次,它说在第-1行/之前的语法错误。我真的没有得到这个,什么-1甚至假设意思。该特等命名swi2tu.pl是https://drive.google.com/folderview?id=0B4KCEwRVmr_yWjQwOEp3LWpYdk0&usp=sharing
是的,这是tuProlog。我已经完成了你所说的,但没有成功。在()之间写入+不能解决问题,同样的错误仍然在同一行。 – York
如果tuProlog解析器不符合官方和事实上的Prolog标准,则可能需要为第5个参数找到替代表示法。顺便说一下,你使用的tuProlog版本是否支持多文件谓词? –
是的,它支持多文件谓词。我找到了原因并在昨天修复了它。在.pl文件中有一个utf-8字符。 utf-8字符的值是U + FFFF,并且tuProlog在遇到U + FFFF时停止解析,这是语法错误在/ -1行之前的原因。但swi-prolog可以解析器U + FFFF,我仍然不明白。 – York