我正在寻找扩展 DCG 测试用例。是指测试用例,根据生成的转换规则的行为而不是根据其脱糖能力来检查 DCG 处理器的正确功能。
我想我曾经在网上看到过一些这样的测试用例。但我失去了他们的踪迹。现在我只找到以下测试用例:
http://www.sju.edu/~jhodgson/wg17/Drafts/DCGs/test_cases
(此处相同:http ://www.sju.edu/~jhodgson/wg17/dcgs.pdf )
但它们只是外延和内涵的,即它们测试脱糖、转换是否成功或出错。他们甚至没有显示转换结果应该是什么,这并不困扰我,因为我无论如何都在寻找扩展 DCG 测试用例。
欢迎任何指点。
再见
PS:这个显示转换,但它仍然是内涵而不是外延:
http
:
//www.sju.edu/~jhodgson/wg17/GRIND.TXT 它有例如:
expand(( a(4)-->[98] ),
(a(4, S0, S1):- 'C'( S0,98, S1))).
expand(( a(28)--> \+b,c ),
(a(28,_608,_609):-(b(_608,_619)->fail;_617=_608),c(_617,_609))).
但是许多 Prolog 系统在 DCG 中对终端、否定等使用不同的方法。所以扩展测试套件会更方便。