2013-07-26 4 views
0

전 프롤로그를 처음 사용했습니다. 나는 보통 swi-prolog에서 .pl 파일을 컨설팅하고있다. 그러나 tu-prolog에서 그것을 참조하면 미친 일들이 항상 일어난다. 여기 내 코드의 일부입니다. I는 TU-발단에이를 때상의tuprolog 구문 오류. 줄 앞/옆의 구문 오류 -1

:- dynamic(assignopT/6). 
    :- multifile(assignopT/6). 
    assignopT(30246,30244,30210,30247,+,30248). 

, 그것은 상기 구문 오류/위의 세번째 라인 선 12,219 전에. 그것은 swi-prolog에서 제대로 작동합니다. 그렇다면 아마 +가 잘못된 것 같아서 이걸로 바꿨습니다.

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 (터보 프롤로그가 아닌 것으로 가정)에서 코드를로드 할 때 가능한 연산자 충돌을 해결해야합니다.

+0

예, tuProlog입니다. 나는 네가 한 말대로했지만 그 일은 잘 풀리지 않았다. 사이에 +를 쓰는 것은 문제를 해결하지 못했지만 동일한 오류는 여전히 같은 줄에 있습니다. – York

+0

tuProlog 구문 분석기가 공식 및 사실상 Prolog 표준을 준수하지 않는 경우 5 번째 인수에 대한 대체 표현을 찾아야 할 수 있습니다. Btw, 사용중인 tuProlog 버전이 다중 파일 술어를 지원합니까? –

+0

네, 다중 파일 술어를 지원합니다. 그 이유를 찾았고 어제 그것을 고쳤습니다. .pl 파일에 utf-8 문자가 있습니다. utf-8 문자의 값은 U + FFFF이고 tuProlog는 U + FFFF를 충족 할 때 구문 분석을 중지합니다. 이는 줄 -1 앞/뒤에 구문 오류가있는 이유입니다. 그러나 swi-prolog는 여전히 이해할 수없는 U + FFFF를 파싱 할 수 있습니다. – York

관련 문제