我怎么能在prolog中标记单词?

时间:2017-11-12 03:48:07

标签: prolog

我已经在tokenizer中定义了令牌。所以对于标记器,它意味着采用词法和标记。例如,lexeme一个令牌是id。 lexeme = token是equal_sign。所以,如果我输入“? - tokenizer(”a = a“,T)。”它将返回T = id equal_sign id。如果“? - tokenizer(”a = 1 + 2“,T)。”它将返回T = id equal_sign 1 add_op 2.但是,对于我的代码,它只能检查一个lexeme,我相信我的递归有问题。但我不知道它有什么问题。

tokenizer(X, Y) :- token(X, Y).
tokenizer([], []).
tokenizer([H|T], [RH|RT]) :- 
token(H, RH),
tokenizer(T,RT).
tokenizer([_|T],[_|RT]):-
tokenizer(T,RT).

0 个答案:

没有答案