上下文敏感的语法序言

时间:2017-09-11 16:59:16

标签: prolog dcg

我正在尝试在Prolog中编写DCG语法来执行此操作:

kkk ... k --> N * (k)

k可以是任何地方(例如“a”,“ab”,“abc”)。

左边是我想要消费的东西,右边是我想要生成的东西。

这对DCG来说是否可能?

我试图用一个字母来做最简单的情况,如下:

s(N) --> a(N).
a(0) --> [].
a(R) --> [R], [*], [a].
a(M) --> [a], a(N), {M is N + 1}.

eval(X) :-
   s(_, X, []).

但我不确定这是正确的方法。

感谢您的帮助。

0 个答案:

没有答案