gpt4 book ai didi

使用测试工具调试 Forth

转载 作者:行者123 更新时间:2023-11-28 20:38:29 25 4
gpt4 key购买 nike

我想使用一个简单的测试工具在调试期间使用与 Forth test harness 相同的方法来测试我的代码由 John Hayes 开发。

这个概念是定义一个函数,比如 my+,然后定义简单的代码片段,当 Tdebug 开启时将测试代码。

Tdebug if T{ 1 1 my+ -> 2 }T else

真的像包含tester.f那么简单吗?并将 {> 更改为 T{ 并将 } 更改为 }T?

如果大小有问题,我计划在生产版本中省略 tester.f

编辑:

debug if ... then 不起作用,因为它在编译之外...

现在我需要帮助!

如果 debug 为真,tester.f 运行良好。

如果 debug 为 false,t{}t 必须像 ( ... ) 注释一样工作。我该如何编码?

0 constant debug
: t{
debug if
( as defined in tester.fr )
else
( what goes here? )
then
;
: }t
debug if
( as defined in tester.fr )
else
( and what goes here? )
then
;

最佳答案

唯一的方法是解析输入源流直到}t。如果 t{ 可以嵌套,它会变得有点棘手 — 请参阅 reference implementation [ELSE] 字。

作为引用,t{ 单词在标准 Forth 中用于简单(非嵌套)情况的生产模式定义:

: t{ ( "ccc }t" -- ) \ skip up to '}t'
begin
begin parse-name dup while S" }t" compare 0= until exit then 2drop
refill 0=
until
;


虽然,我建议将测试放入单独的文件中,并有条件地包含这些文件(“规范”文件)。在这种情况下,您根本不需要 t{ 词的另一个(生产模式)定义。

关于使用测试工具调试 Forth,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43845430/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com