1
^borrow$ ^\$500$
문자열을 구문 분석하여 [borrow, $500]
목록에 추가해야합니다. 내가 쓴 문법 지금까지 내가 토큰 내부 \$
이 없을 때 작동 어느이스케이프 시퀀스를 구문 분석하기위한 프롤로그 DCG
:- use_module(library(dcg/basics)).
write_list([]).
write_list([H|T]) :- atom_codes(S, H), write(S), nl, write_list(T).
% Grammar.
tags([Tag|Rest]) --> string(_), tag(Tag), tags(Rest).
tags([]) --> string(_).
tag(Tag) --> "^", tag_contents(Tag), "$".
tag_contents(Tag) --> string(Tag).
입니다 :
?- phrase(tags(T), "^pisica$ ^catel$"), write_list(T).
pisica
catel
?- phrase(tags(T), "^borrow$ ^\\$500$"), write_list(T).
borrow
\
프롤로그 DCGS로 이스케이프 시퀀스 이런 종류의 구문 분석을위한 가장 좋은 방법은 무엇입니까?
태그를 사용하여 // 1 태그가 // 1 올바르지 않습니다. – false