我正在寻找扩展的DCG测试用例。手段 检查DCG正常运行的测试用例 处理器在结果的行为方面 转换的规则,而不是它的desugaring 能力。
我想我曾经在网上看过一些这样的测试用例。 但我忘记了他们。现在我只找到以下内容 测试用例:
http://www.sju.edu/~jhodgson/wg17/Drafts/DCGs/test_cases
(同样在这里:http://www.sju.edu/~jhodgson/wg17/dcgs.pdf)
但它们只是以非超常和内涵的方式,即 他们测试脱离,转换是否成功 或者给出错误。他们甚至没有显示转换的内容 结果应该是,因为我没有打扰我 无论如何寻找扩展的DCG测试用例。
欢迎任何指示。
再见
P.S:
这个显示转换,但它仍然是内涵
而不是伸展的:
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中的否定等。因此,扩展测试套件会 更方便。
答案 0 :(得分:2)
刚刚完成了几个extensional DCG test cases。测试用例 请填写以下内容:
谓词。 / 4:终端
谓词( - >)/ 2:非终端
谓词(,)/ 4:连词
谓词(;)/ 4:分离
谓语( - >)/ 4:含义
谓词(+)/ 3:Negatio为失败
谓词! / 2:切
谓词{} / 3:辅助条件
一些测试用例检查坚定性。总数 测试用例是:56。
测试用例不包括DCG内部的回送和元调用。 测试用例在这里使用@ / 3,这样当使用listing / [0,1]时 看到原始的DCG代码,而不是它的扩展。 @ / 3 定义如下:
@(X) --> X.
测试案例的灵感来自: Moura,P。ed。 (2010):Prolog,第3部分:明确的条款语法规则,草案,ISO / IEC DTR 13211 3:2006,2010年4月1日